1 Logic design of asynchronous circuits Part III: Advanced topics on synthesis.

80
1 Logic design of asynchronous circuits Part III: Advanced topics on synthesis
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    221
  • download

    0

Transcript of 1 Logic design of asynchronous circuits Part III: Advanced topics on synthesis.

1

Logic design ofasynchronous circuits

Part III:

Advanced topics on synthesis

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 2

Outline

• Logic decomposition– Hazard-free decomposition

– Signal insertion

– Technology mapping

• Optimization based on timing information– Relative timing

– Timing assumptions and constraints

• Other synthesis paradigms– HDLs, CSP, burst-mode, ...

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 3

Specification(STG)

State Graph

SG withCSC

Next-state functions

Decomposed functions

Gate netlist

Reachability analysis

State encoding

Boolean minimization

Logic decomposition

Technology mapping

Design flow

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 4

No Hazards

abc

x 0

abcx1000

1100

b+

0100

a-

0110

c+

1

1

0

0

1

1

0

1

0

1

0

0

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 5

Decomposition May Lead to Hazards

abcx1000

1100

b+

0100

a-

0110

c+

a

bz

cx

1

0

0

0

0

1000

11001100

0100

0110

1

1

0

0

0

1

1

1

0

0

0

1

1

0

0

0

1

1

1

1

0

1

0

1

0

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 6

Decomposition

• Acknowledgement

• Global acknowledgement

• Generating candidates

• Hazard-free signal insertion

– Event insertion

– Signal insertion

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 7

Global acknowledgement

abc

z

abd

y

d- b+ d+ y+ a- y- c+ d-

c- d+ z- b- z+ c+ a+ c-

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 8

abc

z

abd

y

How about 2-input gates ?

d- b+ d+ y+ a- y- c+ d-

c- d+ z- b- z+ c+ a+ c-

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 9

a

bc

z

abd

y

d- b+ d+ y+ a- y- c+ d-

c- d+ z- b- z+ c+ a+ c-

How about 2-input gates ?

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 10

a

bc

z

abd

y

00

d- b+ d+ y+ a- y- c+ d-

c- d+ z- b- z+ c+ a+ c-

How about 2-input gates ?

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 11

abc

z

a

bd

y

d- b+ d+ y+ a- y- c+ d-

c- d+ z- b- z+ c+ a+ c-

How about 2-input gates ?

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 12

cz

dy

a

b

d- b+ d+ y+ a- y- c+ d-

c- d+ z- b- z+ c+ a+ c-

How about 2-input gates ?

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 13

Strategy for logic decomposition

• Each decomposition defines a new internal signal

• Method: Insert new internal signals such that– After resynthesis, some large gates are decomposed– The new specification is hazard-free

• Generate candidates for decomposition using standard logic factorization techniques:

– Algebraic factorization– Boolean factorization (boolean relations)

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 14

y-

z- w-

y+ x+

z+

x-

w+

1001 1011

1000

1010

0001

0000 0101

0010 0100

0110 0111

0011

y-

y+

x-

x+w+

w-

z+

z-

w-

w-

z-

z-y+

y+

x+

x+

Decomposition example

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 15

yz=1yz=0

1001 1011

1000

1010

0001

0000 0101

0010 0100

0110 0111

0011

y-

y+

x-

x+w+

w-

z+

z-

w-

w-

z-

z-y+

y+

x+

x+

1001 1011

1000

1010

0001

0000 0101

0010 0100

0110 0111

0011

y-

y+

x-

x+w+

w-

z+

z-

w-

w-

z-

z-y+

y+

x+

x+

C

C

x

y

x

y

w

z

xyz

y

zw

z

w

z

y

Decomposition example

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 16

s-

s+

s-

s-

s=1

s=0

1001 1011

1000

1010

0111

0011y+

x-

w+

z+

z-

0001

0000 0101

0010 0100

0110

x+

w-

w-

w-

z-

z-y+

y+

x+

x+

1001

1000

1010

y+

z-

0111

C

C

x

y

x

y

w

z

x

y

z

w

z

w

z

y

sy-

Decomposition example

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 17

y-

z- w-

y+ x+

z+

x-

w+

s-

s+

s-

s+

s-

s-

s=1

s=0

1001 1011

1000

1010

0111

0011y+

x-

w+

z+

z-

0001

0000 0101

0010 0100

0110

x+

w-

w-

w-

z-

z-y+

y+

x+

x+

1001

1000

1010

y+

z-

0111

y-

Decomposition example

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 18

C

C

x

y

x

y

w

z

xyz

y

zw

z

w

z

y

yz=1yz=0

1001 1011

1000

1010

0001

0000 0101

0010 0100

0110 0111

0011

y-

y+

x-

x+w+

w-

z+

z-

w-

w-

z-

z-y+

y+

x+

x+

1011

1000

1010

0001

0000 0101

0010 0100

0110 0111

0011

y-

y+

x-

x+w+

w-

z+

z-

w-

w-

z-

z-y+

y+

x+

x+

1001

Decomposition example

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 19

s-

s+

s=1

s=0

1001 1011

0111

0011

x-

w+

z+

0001

0000 0101

0010 0100

0110

x+

w-

w-

w-

z-

z-y+

y+

x+

x+

1001

1000

1010

y+

z-

0111

y-y-

z- w-

y+ x+

z+

x-

w+

s-

s+

z- is delayed by the new transition s- !

Decomposition example

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 20

C

C

x

y

x

y

w

z

x

y

z

w

z

w

z

yyyyyyy

s-

s+

s=1

s=0

1001 1011

0111

0011

x-

w+

z+

0001

0000 0101

0010 0100

0110

x+

w-

w-

w-

z-

z-y+

y+

x+

x+

1001

1000

1010

y+

z-

0111

y-

Decomposition example

FC

Sr

D

Decomposition(Algebraic, Boolean relations)

Hazard-free ?(Event insertion)

NO YES

C

C

C

C

SrSr

D

D

FC

Sr

D

Hazard-free ?(Event insertion)

NO YES

CC

Sr

D

until no more progress

Decomposition(Algebraic, Boolean relations)

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 23

Signal insertion for function F

State Graph

F=0 F=1

Insertion by input borders

F-

F+

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 24

Event insertion

a b

ER(x)

c

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 25

Event insertion

a b

ER(x)

cx x x x

b

SR(x)

a

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 26

Properties to preserve

a

a

b

b

a

a

b

b

a

a

b

b

xx

a

a

b

b

a

a

b

b

ba

a

b

b

xx

xx

a ispersistent

a is disabled by b

= hazards

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 27

Boolean decomposition

Fx1

xn

f H Gx1

xn

h1

hm

f

f = F (x1,…,xn) f = G(H(x1,…,xn))

Our problem: Given F and G, find H

Ch1

h2

f

state f next(f) (h1,h2)

s1 0 0 (0,-) (-,0) s2 0 1 (1,1) s3 1 0 (0,0) s4 1 1 (-,1) (1,-) dc - - (-,-)This is a Boolean Relation

y-

a+ c-

d-

a-

c+

a+

y+

a-c-

d+

c+

y

acd Facd y c d ( )

Rsy

R

S

y-

a+ c-

d-

a-

c+

a+

y+

a-c-

d+

c+

y

acd acd y c d ( )

Rsy

acdc

d

y-

a+ c-

d-

a-

c+

a+

y+

a-c-

d+

c+

y

acd acd y c d ( )

Rsy

cd yc

a

y-

a+ c-

d-

a-

c+

a+

y+

a-c-

d+

c+

y

acd acd y c d ( )

Rsya

Ddc

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 33

Technology mapping

• Merging small gates into larger gates introduces no new hazards

• Standard synchronous technique can be applied, e.g. BDD-based boolean matching

• Handles sequential gates and combinational feedbacks

• Due to hazards there is no guarantee to find correct mapping (some gates cannot be decomposed)

• Timing-aware decomposition can be applied in these rare cases

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 34

Specification(STG)

State Graph

SG withCSC

Next-state functions

Decomposed functions

Gate netlist

Reachability analysis

State encoding

Boolean minimization

Logic decomposition

Technology mapping

Design flow

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 35

Timing assumptions in design flow

• Speed-independent: wire delays after a forksmaller than fan-out gate delays

• Burst-mode: circuit stabilizes betweentwo changes at the inputs

• Timed circuits: Absolute bounds on gate / environment delays are known a priori (before physical design)

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 36

Relative Timing Circuits

• Assumptions: “a before b” – for concurrent events: reduces reachable state space

– for ordered events: permits early enabling

– both increase don’t care space for logic synthesis => simplify logic (better area and timing)

• “Assume - if useful - guarantee” approach: assumptions are used by the tool to derive a circuit and required timing constraints that must be met in physical design flow

• Applied to design of the Rotating Asynchronous Pentium Processor(TM) Instruction Decoder (K.Stevens, S.Rotem et al. Intel Corporation)

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 37

Speed-independent C-element

Relative Timing Asynchronous Circuits

a- before b-Timing assumption (on environment):

ab c

RT C-element: faster,smaller; correct only under timing constraint: a- before b-

ab c

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 38

State Graph (Read cycle)

DSr+

DSr+

DSr+

DTACK-

DTACK-

DTACK-

LDS-LDS-LDS-

LDTACK- LDTACK- LDTACK-

D-

DSr-DTACK+

D+

LDTACK+

LDS+

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 39

Lazy Transition Systems

ER (LDS+)ER (LDS+)

ER (LDS-)ER (LDS-)

LDS-LDS-

LDS+

LDS-DTACK- FR (LDS-)FR (LDS-)

Event LDS- is lazy: firing = subset of enabling

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 40

Timing assumptions

• (a before b) for concurrent events: concurrency reduction for firing and enabling

• (a before b) for ordered events: early enabling

• (a simultaneous to b wrt c) for triples of events: combination of the above

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 41

Speed-independent Netlist

LDS+ LDTACK+ D+ DTACK+ DSr- D-

DTACK-

LDS-LDTACK-

DSr+

DTACKD

DSr

LDS

LDTACK

csc

map

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 42

Adding timing assumptions (I)

LDS+ LDTACK+ D+ DTACK+ DSr- D-

DTACK-

LDS-LDTACK-

DSr+

DTACKD

DSr

LDS

LDTACK

csc

map

LDTACK- before DSr+

FAST

SLOW

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 43

Adding timing assumptions (I)

DTACKD

DSr

LDS

LDTACK

csc

map

LDS+ LDTACK+ D+ DTACK+ DSr- D-

DTACK-

LDS-LDTACK-

DSr+

LDTACK- before DSr+

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 44

State space domain

LDTACK- before DSr+

LDTACK-

DSr+

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 45

State space domain

LDTACK- before DSr+

LDTACK-

DSr+

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 46

State space domain

LDTACK- before DSr+

LDTACK-

DSr+

Two more unreachable states

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 47

Boolean domain

DTACKDSrD

LDTACK 00 01 11 10

00

01

11

10

DTACKDSrD

LDTACK 00 01 11 10

00

01

11

10

LDS = 0 LDS = 1

0 1-0

0 0 0 0 0 0/1?

1

111

-

-

-

---

- - - -

-

- ---

- - -

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 48

Boolean domain

DTACKDSrD

LDTACK 00 01 11 10

00

01

11

10

DTACKDSrD

LDTACK 00 01 11 10

00

01

11

10

LDS = 0 LDS = 1

0 1-0

0 0 - 0 0 1

1

111

-

-

-

---

- - - -

-

- ---

- - -

One more DC vector for all signals One state conflict is removed

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 49

Netlist with one constraint

LDS+ LDTACK+ D+ DTACK+ DSr- D-

DTACK-

LDS-LDTACK-

DSr+

DTACKD

DSr

LDS

LDTACK

csc

map

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 50

Netlist with one constraint

LDS+ LDTACK+ D+ DTACK+ DSr- D-

DTACK-

LDS-LDTACK-

DSr+

DTACK D

DSr LDS

LDTACK

LDTACK- before DSr+

TIMING CONSTRAINT

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 51

Timing assumptions

• (a before b) for concurrent events: concurrency reduction for firing and enabling

• (a before b) for ordered events: early enabling

• (a simultaneous to b wrt c) for triples of events: combination of the above

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 52

Ordered events: early enabling

a

c

b

a

a

c

b

a

bb

c cF G

Logic for gate c may change

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 53

Adding timing assumptions (II)

LDS+ LDTACK+ D+ DTACK+ DSr- D-

DTACK-

LDS-LDTACK-

DSr+

DTACKD

DSr LDS

LDTACK

D- before LDS-

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 54

State space domain

LDS-

D-

Reachable space is unchanged

For LDS- enabling can be changed in one state

D- before LDS-

Potential enabling for LDS-

DSr-

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 55

Boolean domain

DTACKDSrD

LDTACK 00 01 11 10

00

01

11

10

DTACKDSrD

LDTACK 00 01 11 10

00

01

11

10

LDS = 0 LDS = 1

0 1-0

0 0 - 0 0 1

1

111

-

-

-

---

- - - -

-

- ---

- - -

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 56

Boolean domain

DTACKDSrD

LDTACK 00 01 11 10

00

01

11

10

DTACKDSrD

LDTACK 00 01 11 10

00

01

11

10

LDS = 0 LDS = 1

0 1-0

0 0 - 0 0 1

1

11-

-

-

-

---

- - - -

-

- ---

- - -

One more DC vector for one signal: LDSIf used: LDS = DSr, otherwise: LDS = DSr + D

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 57

Before early enabling

LDS+ LDTACK+ D+ DTACK+ DSr- D-

DTACK-

LDS-LDTACK-

DSr+

DTACKD

DSr LDS

LDTACK

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 58

Netlist with two constraints

LDS+ LDTACK+ D+ DTACK+ DSr- D-

DTACK-

LDS-LDTACK-

DSr+

LDTACK- before DSr+and D- before LDS-

TIMING CONSTRAINTSDTACKD

DSr LDS

LDTACK

Both timing assumptions are used for optimization and become constraints

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 59

Value of Relative Timing

• RT circuits provides up to 2-3x (1.3-2x) delay&area reduction with respect to SI circuits synthesized without (with) concurrency reduction

• Automatic generation of timing assumptions => foundation for automatic synthesis of RT circuits with area/performance comparable/better than manual

• Back-annotation of timing constraints => minimal required timing information for the back-end tools

• Timing-aware state encoding allows significant area/performance optimization

Specification(STG + user assumptions)

Lazy State Graph

Lazy SG withCSC

Next-state functions

Decomposed functions

Gate netlist

Reachability analysis

Timing-aware state encoding

Boolean minimization

Logic decomposition

Technology mapping

Design Flow with TimingDesign Flow with Timing

Required Timing Constraints

Automatic Timing Assumptions

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 61

FIFO example

FIFOli

lo

ro

ri

li-

li+

lo+

lo-

ro+

ro-

ri+

ri-

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 62

Speed-Independent Implementation

without concurrency reduction 3 state signals are required

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 63

SI implementation with concurrency reduction

li

lo ro

ri

xli-

li+

lo+

lo-

ro+

ro-

ri+

ri-

x+

x-

+gCgC +-

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 64

RT implementation

li

lo ro

ri

xli-

li+

lo+

lo-

ro+

ro-

ri+

ri-

x+

x-

OR

li-

li+

lo+

lo-

ro+

ro-

ri+

ri-

x+

x-

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 65

RT implementation

li

lo ro

ri

xli-

li+

lo+

lo-

ro+

ro-

ri+

ri-

x+

x-

OR

li-

li+

lo+

lo-

ro+

ro-

ri+

ri-

x+

x-

To satisfy the constraint: Delay(x- ) < Delay (ri+ ) andDelay(lo+) + Delay(x- ) < Delay(ro+ ) + Delay (ri+ ) All constraints are either satisfied by default oreasy to satisfy by sizing

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 66

Other synthesis paradigms: outline

• Synthesis from HDL (Verilog) [Lavagno et al, Async00]

– Subset for asynchronous specification

– Data-path/control partitioning

– Circuit architecture. Control generation

• Synthesis from asynchronous HDL (CSP, Tangram)

– CSP for control generation [A. Martin et al, Caltech]

– Tangram for silicon compilation [K. van Berkel et al, Philips]

• Control synthesis using FSMs [K. Yun, S. Nowick]

– Burst-mode machines

– Comparison with STGs

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 67

Motivation

• Language-based design key enabler to synchronous logic success

• Use HDL as single language for• specification• logic simulation and debugging• synthesis• post-layout simulation

• HDL must support multiple levels of abstraction

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 68

• Splitting of asynchronous control and synchronous data path

• Automated insertion of bundling delays

CONTROLUNIT

DATAPATH

delay

request

acknowledge

Control-data partitioning

Design flow

Control/datasplitting

STG(control)

HDLspecification

SynthesizableHDL (data)

Synthesis(petrify)

Timing analysis(Synopsys)

HDLimplementation

Synthesis(Synopsys)

Logicimplementation

Delayinsertion

Logic delays

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 70

Asynchronous Verilog subset by example

always begin

wait(start);R = SMP * 3;RES = SMP * 4 + R;if(RES[7] == 1) RES = 0;else begin if(RES[6] == 1) RES = 1;end;done = 1;wait(!start);done = 0;

end

RRES

SMP

donestart

RES

C.U.

• begin-end for sequencing, fork-join for concurrency, if-else for input choice• Only structured mix of sequencing, concurrency and choice can be specified

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 71

Synthesis from asynchronous HDL

• CSP based languages• CSP = communicating sequential processes

[Hoare]• Two synthesis techniques

– based on program transformations [Caltech]

– based on direct compilation [Philips]

• Tools are more mature than for asynchronous synthesis from standard HDL

• Complete shift in design methodology is required

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 72

Using CSP for control generation

• After li goes high do full handshake at the right, then complete handshake at the left and iterate.

li+ ro+ ri+ ro- ri- lo+ li- lo-

ro

ri

li

lo

Q element

*[[li];ro+;[ri];ro-;[not ri];lo+;[not li];lo-]

• “;” = sequencing operator• ro+ = ro goes high; ro- = ro goes low• [li] = wait until li is high; [not li] = wait until li is low

CSP:

STG:

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 73

Using CSP for control generation

*[[li];ro+;[ri];ro-;[not ri];lo+;[not li];lo-]

• Conflict: ro+ and ro- are not mutually exclusive (since ri+ and li+ are not)

• Eliminate conflict by state signal insertion (= CSC)

CSP:

Production rules:li -> ro+; ri -> ro-not ri -> lo+; not li -> lo-

ri

li

ro

weak

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 74

Conflict elimination

*[[li];ro+;[ri];x+;[x];ro-;[not ri];lo+;[not li];x-;[not x];lo-]CSP:

Production rules:not x and li -> ro+; x or not li -> ro-x and not ri -> lo+; not x or ri -> lo-ri -> x+; not li -> x-

FFx not x

li

lo ri

ro

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 75

Buffer example in Tangram(a?byte & b!byte)begin

x0: var byte | forever do

a?x0 ; b!x0od

end

Buffer

*

xa bT

;

T

a b

passive port

active port Each circle mapped to a netlist

Data path

Q element

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 76

Summary

• Tangram program is partitioned into data path and control

• Data path is implemented as dual or single rail

• Control is mapped to composition of standard elements (“;” “||” etc)

• Each standard element is mapped to a circuit

• Post-optimization is done

• Composing islands of control elements and re-synthesis with STG can give more aggressive optimization

• Philips made a few chips using Tangram, including a product: 8051 micro-controller in low-power pager Muna (25 wks battery life from one AAA battery)

• Similar approach used in Balsa (Manchester Univ.)

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 77

Burst mode FSM

s1

s2

s3

s4

b-/x-a+b+/y+

a-/x+y-

c+/y-c-/y+

• Close to synchronous FSMs with binary encoded I/O

• Work in bursts:– Input transitions fire

– Output transitions fire

– State signals change

• Mostly limited to fundamental mode: next input burst cannot arrive before stabilization at the outputs

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 78

Extended Burst mode

s1

s2

s3

s4

b-/x-

a+b*/y+<b+>a-/x+y-

<b+>c+/y-c-/y+

• Directed don’t cares (b*): some concurrency is allowed for input transitions that do not influence an output burst

• Conditional guards <b+> = “if b=1 then …”

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 79

Synthesis of XBM

• Next state and output functions free of functional and logic hazards

• Sequential feedbacks should not introduce new hazards• State assignment

– one state of the BM spec to one layer of Karnaugh map

– compatible layers are merged

– layers are compatible if merging does not introduce CSC violations or hazards

– Layers are encoded using race free encoding

ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits 80

XBM and STG

s1

s2

s3

s4

b-/x-

a+b*/y+<b+>a-/x+y-

<b+>c+/y-c-/y+

x-

a+

y+

b+

eps

c-

a- c+

y-

y+

x+ y-

b-