Browse Prior Art Database

# Procedure and Design to Facilitate Self Timed Implementations of Combinational Logic

IP.com Disclosure Number: IPCOM000112526D
Original Publication Date: 1994-May-01
Included in the Prior Art Database: 2005-Mar-27
Document File: 4 page(s) / 107K

IBM

## Related People

Klim, PJ: AUTHOR [+1]

## Abstract

To self-time a logic partition it is normally necessary to carefully evaluate the logic time of flight to identify data dependent slow paths that can lead to logic hazards or faults. Insertion of designed delay elements solves the general problem without introducing excessive additional complexity.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Procedure and Design to Facilitate Self Timed Implementations of
Combinational Logic

To self-time a logic partition it is normally necessary to
carefully evaluate the logic time of flight to identify data
dependent slow paths that can lead to logic hazards or faults.
Insertion of designed delay elements solves the general problem

Fig. 1 shows a typical latch bounded combinational logic
partition called a logic group, which consists of an input register
that holds the data and a set of logic circuits that decode or
otherwise modify the data, in this case differential cascode voltage
switch, DCVS.  Implied is that there is another register on the
output side, which forms the input register for another logic group.
One will notice that the logic blocks have been arranged in columns,
or 'stages', where Stage 1 are all the blocks that are driven by the
register, Stage 2 are the blocks that are driven either by the
register or Stage 1 blocks, etc.  One can readily see that the data
at either the stage boundaries or the output have differing
propogation times, due to differing numbers of logic stages and

If one desires to form a self-timed version of the same logic
one needs to be able to bound subsets of the logic into groupings
where the propogation time from the register to the output side of
any of the stages is the same on all the data crossing that stage
line.  Again, from Fig. 1 it is apparent that it would be difficult
to self-time this representative logic since one can readily see that
some stage 2 blocks are driven by the register, disallowing a timing
partition to be made from Stage 1, for instance, since the arrival
time of the stage 1 outputs will be considerably different than the
outputs of the register fed directly to the Stage 2 blocks.  If this
logic additionally is pipelined, as might be the case, then the data
in the register might have changed from that which was driven into
Stage 1 by the time the Stage 1 outputs are clocked out.

The solution to the problem is to insert dummy circuit blocks
inline with the data that crosses stage lines, as shown in Fig. 2,
where these dummy latches are indicated with the dashed blocks.  One
can see that there are an equal number of blocks to propogate through
from the register data source to the output.  One can see that if the
logic initi...