Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "1 Logic design of asynchronous circuits Part III: Advanced topics on synthesis."— Presentation transcript:

1

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

3 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits2 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,...

4 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits3 Specification (STG) State Graph SG with CSC Next-state functions Decomposed functions Gate netlist Reachability analysis State encoding Boolean minimization Logic decomposition Technology mapping Design flow

5 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits4 No Hazards a b c x 0 abcx 1000 1100 b+ 0100 a- 0110 c+ 1 1 0 0 1 1 0 1 0 1 0 0

6 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits5 Decomposition May Lead to Hazards abcx 1000 1100 b+ 0100 a- 0110 c+ a b z c x 1 0 0 0 0 1000 1100 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

7 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits6 Decomposition Acknowledgement Global acknowledgement Generating candidates Hazard-free signal insertion –Event insertion –Signal insertion

8 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits7 Global acknowledgement a b c z a b d y d-b+d+y+a-y-c+d- c-d+z-b-z+c+a+c-

9 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits8 a b c z a b d y How about 2-input gates ? d-b+d+y+a-y-c+d- c-d+z-b-z+c+a+c-

10 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits9 a b c z a b d y d-b+d+y+a-y-c+d- c-d+z-b-z+c+a+c- How about 2-input gates ?

11 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits10 a b c z a b d y 0 0 d-b+d+y+a-y-c+d- c-d+z-b-z+c+a+c- How about 2-input gates ?

12 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits11 a b c z a b d y d-b+d+y+a-y-c+d- c-d+z-b-z+c+a+c- How about 2-input gates ?

13 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits12 c z d y a b d-b+d+y+a-y-c+d- c-d+z-b-z+c+a+c- How about 2-input gates ?

14 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits13 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)

15 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits14 y- z-w- y+x+ z+ x- w+ 10011011 1000 1010 0001 00000101 00100100 01100111 0011 y- y+ x- x+ w+ w- z+ z- w- z- y+ x+ Decomposition example

16 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits15 yz=1 yz=0 10011011 1000 1010 0001 00000101 00100100 01100111 0011 y- y+ x- x+ w+ w- z+ z- w- z- y+ x+ 10011011 1000 1010 0001 00000101 00100100 01100111 0011 y- y+ x- x+ w+ w- z+ z- w- z- y+ x+ C C x y x y w z x y z y z w z w z y Decomposition example

17 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits16 s- s+ s- s=1 s=0 10011011 1000 1010 0111 0011 y+ x- w+ z+ z- 0001 00000101 00100100 0110 x+ w- z- y+ x+ 1001 1000 1010 y+ z- 0111 C C x y x y w z x y z w z w z y s y- Decomposition example

18 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits17 y- z-w- y+x+ z+ x- w+ s- s+ s- s+ s- s=1 s=0 10011011 1000 1010 0111 0011 y+ x- w+ z+ z- 0001 00000101 00100100 0110 x+ w- z- y+ x+ 1001 1000 1010 y+ z- 0111 y- Decomposition example

19 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits18 C C x y x y w z x y z y z w z w z y yz=1yz=0 10011011 1000 1010 0001 00000101 00100100 01100111 0011 y- y+ x- x+ w+ w- z+ z- w- z- y+ x+ 1011 1000 1010 0001 00000101 00100100 01100111 0011 y- y+ x- x+ w+ w- z+ z- w- z- y+ x+ 1001 Decomposition example

20 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits19 s- s+ s=1 s=0 1001 1011 0111 0011 x- w+ z+ 0001 00000101 00100100 0110 x+ w- z- y+ x+ 1001 1000 1010 y+ z- 0111 y- z-w- y+x+ z+ x- w+ s- s+ z- is delayed by the new transition s- ! Decomposition example

21 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits20 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 00000101 00100100 0110 x+ w- z- y+ x+ 1001 1000 1010 y+ z- 0111 y- Decomposition example

22 F C Sr D Decomposition (Algebraic, Boolean relations) Hazard-free ? (Event insertion) NO YES C C C C Sr D D

23 F C D Hazard-free ? (Event insertion) NO YES C C Sr D until no more progress Decomposition (Algebraic, Boolean relations)

24 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits23 Signal insertion for function F State Graph F=0F=1 Insertion by input borders F- F+

25 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits24 Event insertion a b ER(x) c

26 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits25 Event insertion a b ER(x) c x x x x b SR(x) a

27 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits26 Properties to preserve a a b b a a b b a a b b x a a b b a a b b b a a b b x x a is persistent a is disabled by b = hazards

28 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits27 Boolean decomposition F x1x1 xnxn f HG x1x1 xnxn h1h1 hmhm f f = F (x 1,…,x n )f = G(H(x 1,…,x n )) Our problem: Given F and G, find H

29 C h1h1 h2h2 f state f next(f) (h 1,h 2 ) s 1 0 0 (0,-) (-,0) s 2 0 1 (1,1) s 3 1 0 (0,0) s 4 1 1 (-,1) (1,-) dc - - (-,-) This is a Boolean Relation

30 y- a+c- d- a- c+ a+ y+ a- c- d+ c+ y a c d F Rs y R S

31 y- a+c- d- a- c+ a+ y+ a- c- d+ c+ y a c d Rs y a c d c d

32 y- a+c- d- a- c+ a+ y+ a- c- d+ c+ y a c d Rs ya

33 y- a+c- d- a- c+ a+ y+ a- c- d+ c+ y a c d Rs ya D d c

34 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits33 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

35 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits34 Specification (STG) State Graph SG with CSC Next-state functions Decomposed functions Gate netlist Reachability analysis State encoding Boolean minimization Logic decomposition Technology mapping Design flow

36 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits35 Timing assumptions in design flow Speed-independent: wire delays after a fork smaller than fan-out gate delays Burst-mode: circuit stabilizes between two changes at the inputs Timed circuits: Absolute bounds on gate / environment delays are known a priori (before physical design)

37 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits36 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)

38 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits37 Speed-independent C-element Relative Timing Asynchronous Circuits a- before b- Timing assumption (on environment): a b c RT C-element: faster,smaller; correct only under timing constraint: a- before b- a b c

39 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits38 State Graph (Read cycle) DSr+ DTACK- LDS- LDTACK- D- DSr-DTACK+ D+ LDTACK+ LDS+

40 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits39 Lazy Transition Systems ER (LDS+) ER (LDS-) LDS- LDS+ LDS- DTACK- FR (LDS-) Event LDS- is lazy: firing = subset of enabling

41 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits40 Timing assumptions (a before b) for concurrent events: concurrency reduction for firing and enabling (a before b) f or ordered events: early enabling (a simultaneous to b wrt c) for triples of events: combination of the above

42 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits41 Speed-independent Netlist LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ DTACK D DSr LDS LDTACK csc map

43 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits42 Adding timing assumptions (I) LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ DTACK D DSr LDS LDTACK csc map LDTACK- before DSr+ FAST SLOW

44 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits43 Adding timing assumptions (I) DTACK D DSr LDS LDTACK csc map LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ LDTACK- before DSr+

45 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits44 State space domain LDTACK- before DSr+ LDTACK- DSr+

46 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits45 State space domain LDTACK- before DSr+ LDTACK- DSr+

47 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits46 State space domain LDTACK- before DSr+ LDTACK- DSr+ Two more unreachable states

48 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits47 Boolean domain DTACK DSr D LDTACK 00011110 00 01 11 10 DTACK DSr D LDTACK 00011110 00 01 11 10 LDS = 0 LDS = 1 01-0 000000/1? 1 111 - - - --- ---- - ---- ---

49 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits48 Boolean domain DTACK DSr D LDTACK 00011110 00 01 11 10 DTACK DSr D LDTACK 00011110 00 01 11 10 LDS = 0 LDS = 1 01-0 00-001 1 111 - - - --- ---- - ---- --- One more DC vector for all signalsOne state conflict is removed

50 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits49 Netlist with one constraint LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ DTACK D DSr LDS LDTACK csc map

51 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits50 Netlist with one constraint LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ DTACK D DSr LDS LDTACK LDTACK- before DSr+ TIMING CONSTRAINT

52 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits51 Timing assumptions (a before b) for concurrent events: concurrency reduction for firing and enabling (a before b) f or ordered events: early enabling (a simultaneous to b wrt c) for triples of events: combination of the above

53 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits52 Ordered events: early enabling a c b a a c b a b b c c F G Logic for gate c may change

54 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits53 Adding timing assumptions (II) LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ DTACK D DSr LDS LDTACK D- before LDS-

55 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits54 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-

56 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits55 Boolean domain DTACK DSr D LDTACK 00011110 00 01 11 10 DTACK DSr D LDTACK 00011110 00 01 11 10 LDS = 0 LDS = 1 01-0 00-001 1 111 - - - --- ---- - ---- ---

57 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits56 Boolean domain DTACK DSr D LDTACK 00011110 00 01 11 10 DTACK DSr D LDTACK 00011110 00 01 11 10 LDS = 0 LDS = 1 01-0 00-001 1 11 - - - - --- ---- - ---- --- One more DC vector for one signal: LDS If used: LDS = DSr, otherwise: LDS = DSr + D

58 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits57 Before early enabling LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ DTACK D DSr LDS LDTACK

59 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits58 Netlist with two constraints LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ LDTACK- before DSr+ and D- before LDS- TIMING CONSTRAINTS DTACK D DSr LDS LDTACK Both timing assumptions are used for optimization and become constraints

60 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits59 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

61 Specification (STG + user assumptions) Lazy State Graph Lazy SG with CSC Next-state functions Decomposed functions Gate netlist Reachability analysis Timing-aware state encoding Boolean minimization Logic decomposition Technology mapping Design Flow with Timing Required Timing Constraints Automatic Timing Assumptions

62 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits61 FIFO example FIFO li lo ro ri li- li+ lo+ lo- ro+ ro- ri+ ri-

63 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits62 Speed-Independent Implementation without concurrency reduction 3 state signals are required

64 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits63 SI implementation with concurrency reduction li lo ro ri x li- li+ lo+ lo- ro+ ro- ri+ ri- x+ x- + gC + -

65 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits64 RT implementation li lo ro ri x li- li+ lo+ lo- ro+ ro- ri+ ri- x+ x- OR li- li+ lo+ lo- ro+ ro- ri+ ri- x+ x-

66 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits65 RT implementation li lo ro ri x li- 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+ ) and Delay(lo+) + Delay(x- ) < Delay(ro+ ) + Delay (ri+ ) All constraints are either satisfied by default or easy to satisfy by sizing

67 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits66 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

68 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits67 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

69 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits68 Splitting of asynchronous control and synchronous data path Automated insertion of bundling delays CONTROL UNIT DATA PATH delay request acknowledge Control-data partitioning

70 Design flow Control/data splitting STG (control) HDL specification Synthesizable HDL (data) Synthesis (petrify) Timing analysis (Synopsys) HDL implementation Synthesis (Synopsys) Logic implementation Delay insertion Logic delays

71 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits70 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 R RESRES 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

72 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits71 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

73 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits72 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:

74 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits73 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

75 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits74 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- FF x not x li lo ri ro

76 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits75 Buffer example in Tangram (a?byte & b!byte) begin x0: var byte | forever do a?x0 ; b!x0 od end Buffer * x a b T ; T a b passive port active port Each circle mapped to a netlist Data path Q element

77 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits76 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.)

78 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits77 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

79 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits78 Extended Burst mode s1 s2 s3 s4 b-/x- a+b*/y+ a-/x+y- 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 = “if b=1 then …”

80 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits79 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

81 ASPDAC / VLSI 2002 - Tutorial on Logic Design of Asynchronous Circuits80 XBM and STG s1 s2 s3 s4 b-/x- a+b*/y+ a-/x+y- c+/y- c-/y+ x- a+ y+ b+ eps c- a- c+ y- y+ x+ y- b-


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

Similar presentations


Ads by Google