- 120 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about ' Process Variation' - gabriel-merritt

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Prime Indicants: A Synthesis Method for Indicating Combinational Logic BlocksWill TomsSchool of Computer ScienceUniversity of Manchester

Process Variation

- Process Variation at 45nm:
- Transistor Delay: 20-23%
- Interconnect Delay: 10%
- Self-Timed circuits more robust to variations in propagation delay
- No external timing assumptions
- Indication - status of internal signals can be determined by the outputs of the gates

Indicating Combinational Logic

- Validity must be encoded into the datapath
- DI (unordered) encoding (dual-rail/m-of-n)
- Each data word transmitted explicitly
- Need to return to known state (Four-phase/RTZ)
- Functions difficult to specify:
- Functions completely specified
- All minterms must be enumerated
- Impractical for large datapath operations

Desynchronisation

- Can construct large indicating datapaths from synchronous circuits by expanding gates into dual-rail equivalents

Desynchronisation

- Desynchronised networks can be optimised by reducing indication:
- Relaxation (Jeong, Zhou):
- Removing redundant indication (fanout of gates)
- Relative-Timing (Chelcea):
- Applying timing constraints to avoid indication
- Validity (NCL-X):
- Adding additional signals for indication

Desynchronisation

- Properties of self-timed datapaths differ from conventional datapaths:
- Invertions are free (in 1-of-N codes)
- N-input complex gates (approximately) same cost as N-input simple gate
- Mapping desynchronised networks to DI-codes other than dual-rail (possibly 1-of-4) expensive

Block-Level Approach

- Self-timed datapaths constructed from complex function-blocks:
- Small blocks consisting of up to 10 binary inputs and outputs

Block-Level Approach

- Existing optimisations applied between function blocks
- Distribute indication between the outputs of function blocks
- Can use any encoding between function blocks

Block-Level Approach

- How to synthesise arbitrary indicating function blocks?

Indication

- In four-phase indicating logic, transitions between spacer and data-values form allowed-transition sets (ATS):
- Each ATS describes all the possible states of the inputs (or outputs) within the transition

0000 0101 = {0000,0100,0001,0101}

Indication

- The adjacent transitions of an ATS are the states distance 1 from final state
- Each adjacent transition has an associated variable ε that transitions

0000 0101 = {0100(x4),0001(x2)}

- Function f indicates the input transitions of an ATS if for each adjacent transition f is dependent on variable ε

f(ε=0) ≠ f(ε=1)

Indication

- In order for a function block to be indicating for each adjacent transition in each ATS, at least one output function must be dependent on variable ε
- Checking Indication is expensive:
- 8 input/8 output-function block has 256 ATS each with 8 adjacent transitions = 16,384 (256*8*8) dependency checks to verify an implementation

Indication Architecture

- Need an architecture that is correct by construction
- Implement each output function as a sum-of-products where each product is given by ε(a,b) (the inputs that transition in ATS (a-b))
- Each product implemented by a C-element to cover return-to-zero transitions

Indication Architecture

- Each term ε(a,b) is mutually-exclusive and so function indicates all of its input transitions.

a0

C

C

b0

ci0

f

a0

C

b1

ci1

Indication Architecture

- Large
- Slow
- As function block has several outputs, the number of outputs that indicate each transition is often >1
- Can optimise architecture by reducing the number of outputs that indicate each input transition

Prime Implicants

- Implicant of a function, f, is a function p where:

p f

- A Prime Implicant is an implicant not contained in any other
- Minimum cost Sum-of-Products implementation must always consist of a sum of prime implicants

1

0

1

0

100

110

0

010

0

0

0

000

0

0

101

1

1

111

001

1

1

0

011

0

_

_

f = x1x2x3 + x1x2x3 + x1x2x3

Prime Implicants- Prime Implicants generated from minterms by consensus:

f = x1x2 + x2x3

Prime Implicants

- Function constructed by minimum cost covering of prime implicants
- Unate Covering Problem (UCP)

Optimisation of Indicating Logic

- Removing literals from function terms reduces indication
- Optimising one function can prevent further optimisations of other functions
- Need to consider all functions together
- May not be possible to construct indicating solution from prime implicants

Optimisation of Indicating Logic

- Two phase approach:
- Construct minimum cost indicating cover for each function
- Determine un-indicated input transitions and reduce existing function terms to cover them

Indicant

- In indicating function terms have two roles:
- Implicate AND Indicate
- An indicant is an implicant that indicates the transitions on its literals
- The indicants of a function must be mutually-exclusive
- A function block constructed from indicant covers of its functions will indicate all internal transitions and some input transitions
- Minimum cost implementation of Function Block

Indicant Cover

- Construct the lowest cost mutually-exclusive cover for each function
- Unate Covering Problem:
- Determine prime implicants of each function
- Enumerate all the expanded implicants
- Determine non-overlapping cover

Unindicated Inputs

- Can easily determine unindicated input transitions
- Literals not present in the indicants of any function
- Reduce Indicants by re-inserting the literals
- Partitions Indicant into multiple indicants
- All functions must remain unate
- Need to ensure that new indicants:
- Cover exactly the same minterms
- Are mutually-exclusive

Unindicated Literals

- Indicant a0 covers 6 minterms:

a0b0c0, a0b0c1, a0b0c2, a0b1c0, a0b1c0, a0b1c1, a0b1c2

- Reducing by literal b0 results in two indicants

a0b0: {a0b0c0, a0b0c1, a0b0c2}

a0b1: {a0b1c0, a0b1c1, a0b1c2}

- Reducing by literal c0 results in three indicants

a0c0: {a0b0c0, a0b1c0}, a0c1: {a0b0c1, a0b1c1}

a0c2: {a0b0c2, a0b1c2}

Unindicated Literals

- Reducing the indicants by more than one literal multiplies the number of indicants
- Reducing Indicant a0 by b0and c0 gives 6 indicants:

a0b0c0, a0b0c1, a0b0c2, a0b1c0, a0b1c0, a0b1c1, a0b1c2

Unindicated Literals

- Use UCP to determine the lowest cost reductions that will cover all of the unindicated inputs
- Cost of a reduction can change depending on selection of other reductions
- Eliminates several reduction strategies
- But distributes the reductions between functions

Offset Optimisation

- Initial function implementations use C-elements
- Can distribute the indication of the RTZ transitions throughout the indicants
- Can use conventional UCP
- A range of strategies introduced that target generalised C-elements or AND-gates

Results

- Use clustering algorithm to create suitable-sized function blocks from ISCAS Benchmarks
- Results show the effectiveness of optimisation
- Literal Count
- Not a direct comparison with desynchronisation techniques
- Techniques fit into desynchronisation framework

Summary

- Developed new technique to synthesis arbitrarily encoded indicating function blocks
- Large reduction in literal count over initial specification
- Can be employed within desynchronisation framework

VERDAD

- New project to look at incorporating verification techniques in self-timed synthesis operations
- Inconjunction with Newcastle University.
- Funded by EPSRC
- PhD Studentship available

Download Presentation

Connecting to Server..