Download presentation
Presentation is loading. Please wait.
1
The Synthesis of Cyclic Combinational Circuits Marc D. Riedel and Jehoshua Bruck California Institute of Technology Email: {riedel, bruck}@paradise.caltech.edu
2
Combinational Circuits The outputs depend only on the present values of inputs. time t inputs 1 x 2 x m x Combinational Circuit ),,( 11m xxf ),,( 12m xxf ),,( 1mn xxf time (t+Δt) outputs }1,0{}1,0{:, m j fj }1,0{, i xi
3
Generally acyclic (i.e., feed-forward) structures. Combinational Circuits y x y x y x z z z 1 f 2 f
4
Generally acyclic (i.e., feed-forward) structures. Combinational Circuits 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0
5
Circuits With Cycles abc 1 f 2 f 3 f May depend on timing. May have unstable/unknown outputs.
6
Circuits With Cycles 01 1 ? ?? 0: non-controlling for OR 1: non-controlling for AND May depend on timing. May have unstable/unknown outputs.
7
Cyclic Combinational Circuits Cyclic circuits can be combinational. Example due to Rivest (1977): abcabc f1f1 f2f2 f3f3 f4f4 f5f5 f6f6
8
Cyclic Combinational Circuits bcbc f1f1 f2f2 f3f3 f4f4 f5f5 f6f6 1 1 Cyclic circuits can be combinational. Example due to Rivest (1977):
9
Cyclic Combinational Circuits bcbc f1f1 f2f2 f3f3 f5f5 f6f6 1 1 1 Cyclic circuits can be combinational. Example due to Rivest (1977):
10
Cyclic Combinational Circuits bcbc f1f1 f2f2 f3f3 f5f5 f6f6 aa f4f4 Cyclic circuits can be combinational. Example due to Rivest (1977):
11
Cyclic Combinational Circuits bcbc f1f1 f2f2 f3f3 f4f4 f5f5 f6f6 0 0 Cyclic circuits can be combinational. Example due to Rivest (1977):
12
Cyclic Combinational Circuits bcbc f2f2 f3f3 f4f4 f5f5 f6f6 0 0 0 Cyclic circuits can be combinational. Example due to Rivest (1977):
13
Cyclic Combinational Circuits There is feedback is a topological sense, but not in an electrical sense. bcbc f2f2 f3f3 f4f4 f5f5 f6f6 f1f1 aa Cyclic circuits can be combinational. Example due to Rivest (1977):
14
Cyclic Combinational Circuits There is feedback is a topological sense, but not in an electrical sense. bcbcaa )(cba )(bac )(cab cab cba bac Cyclic circuits can be combinational. Example due to Rivest (1977):
15
3 inputs, 6 fan-in two gates. An equivalent acyclic circuit requires 7 fan-in two gates. Cyclic Combinational Circuits bcbcaa )(cba )(bac )(cab cab cba bac Cyclic circuits can be combinational. Example due to Rivest (1977):
16
Cyclic Combinational Circuits bcbcaa )(cba )(bac )(cab cab cba bac Cyclic circuits can be combinational. Example due to Rivest (1977): n inputs, 2n fan-in two gates ( n odd). An equivalent acyclic circuit requires 3n – 2 fan-in two gates.
17
Prior Work F(X)F(X)G(X)G(X) e.g., add e.g., shift Stok (1992) observed cycles in designs that reuse functional units: Malik (1994), Shiple et al. (1996), Edwards (2003) proposed techniques for analyzing cyclic combinational circuits. X G(F(X)) Y F(G(Y))
18
Synthesis of Cyclic Combinational Circuits We propose a general methodology: optimize by introducing cycles in the substitution/minimization phase. We demonstrate that optimizations are significant and applicable to a wide range of circuits.
19
Example: 7 Segment Display Inputs a b c d e f g Output 1001 0001 1110 0110 1010 0010 1100 0100 1000 0000 0123 xxxx 9 8 7 6 5 4 3 2 1 0
20
Example: 7 Segment Display a b c d e f g Output
21
Substitution/Minimization Basic minimization/restructuring operation: express a function in terms of other functions. Substitute b into a: (cost 9) a ))(( 302321320 xxxxxxxxx (cost 8) Substitute c into a: (cost 5) Substitute c, d into a: (cost 4) a )( 323212 bxxxxxbx a cxxcx 321 a dccx 1
22
Acyclic Substitution g f e b a c d Select an acyclic topological ordering: g f e d c b a
23
g f d c b a edcaxx 21 dccx 1 xxxxxxxxx 102213321 ))((dxxxxxx 102320 )(cdxx 10 )( Select an acyclic topological ordering: Cost (literal count): 37 Acyclic Substitution e 3 cxb d ba f
24
Select an acyclic topological ordering: Nodes at the top benefit little from substitution. g f d c b a edcaxx 21 dccx 1 xxxxxxxxx 102213321 ))((dxxxxxx 102320 )(cdxx 10 )( e 3 cxb d ba f
25
Cyclic Substitution Try substituting every other function into each function: Not combinational! Cost (literal count): 30 0 1 ex dccx fba geex bcdx gxaxex egxxax 2 3 321 202 f g f d c b a e
26
Cyclic Substitution g f e d c b a Cost (literal count): 34 Combinational solution: xe 0 bxa 3 gxxxax 1023 )( axxex 321 )( exxxxxx 312320 )( cxxcx 301 xxxfx 1023 )( f
27
Cyclic Substitution Cost (literal count): 34 Combinational solution: topological cycles g f e d c b a xe 0 bxa 3 gxxxax 1023 )( axxex 321 )( exxxxxx 312320 )( cxxcx 301 xxxfx 1023 )( f
28
Inputs x 3, x 2, x 1, x 0 Cost (literal count): 34 ba ga e e e c 1 no electrical cycles Cyclic Substitution g f e d c b a xe 0 bxa 3 gxxxax 1023 )( axxex 321 )( exxxxxx 312320 )( cxxcx 301 xxxfx 1023 )( f = [0,0,1,0]:
29
g f e d c b a Cost (literal count): 34 ba ga e e e c 1 1 1 0 1 1 1 0 Cyclic Substitution no electrical cycles xe 0 bxa 3 gxxxax 1023 )( axxex 321 )( exxxxxx 312320 )( cxxcx 301 xxxfx 1023 )( f Inputs x 3, x 2, x 1, x 0 = [0,0,1,0]:
30
g f e d c b a Cost (literal count): 34 ba ga e e e c 1 1 1 0 1 1 1 0 a b c d e f g Cyclic Substitution xe 0 bxa 3 gxxxax 1023 )( axxex 321 )( exxxxxx 312320 )( cxxcx 301 xxxfx 1023 )( f Inputs x 3, x 2, x 1, x 0 = [0,0,1,0]:
31
g f e d c b a Cost (literal count): 34 ba ga e e e c 1 1 1 0 1 1 1 0 a b c d e f g Cyclic Substitution xe 0 bxa 3 gxxxax 1023 )( axxex 321 )( exxxxxx 312320 )( cxxcx 301 xxxfx 1023 )( f Inputs x 3, x 2, x 1, x 0 = [0,0,1,0]:
32
g f e d c b a Cost (literal count): 34 ba ga e e e c 1 1 1 0 1 1 1 0 a b c d e f g Cyclic Substitution xe 0 bxa 3 gxxxax 1023 )( axxex 321 )( exxxxxx 312320 )( cxxcx 301 xxxfx 1023 )( f Inputs x 3, x 2, x 1, x 0 = [0,0,1,0]:
33
g f e d c b a Cost (literal count): 34 Cyclic Substitution xe 0 bxa 3 gxxxax 1023 )( axxex 321 )( exxxxxx 312320 )( cxxcx 301 xxxfx 1023 )( f Inputs x 3, x 2, x 1, x 0 = [0,1,0,1]:
34
g f e d c b a Cost (literal count): 34 Cyclic Substitution ba a a 1 0 c f xe 0 bxa 3 gxxxax 1023 )( axxex 321 )( exxxxxx 312320 )( cxxcx 301 xxxfx 1023 )( f Inputs x 3, x 2, x 1, x 0 = [0,1,0,1]: no electrical cycles
35
g f e d c b a Cost (literal count): 34 1 0 1 0 1 1 1 Cyclic Substitution ba a a 1 0 c f xe 0 bxa 3 gxxxax 1023 )( axxex 321 )( exxxxxx 312320 )( cxxcx 301 xxxfx 1023 )( f no electrical cycles Inputs x 3, x 2, x 1, x 0 = [0,1,0,1]:
36
g f e d c b a Cost (literal count): 34 a b c d e f g Cyclic Substitution 1 0 1 0 1 1 1 ba a a 1 0 c f xe 0 bxa 3 gxxxax 1023 )( axxex 321 )( exxxxxx 312320 )( cxxcx 301 xxxfx 1023 )( f Inputs x 3, x 2, x 1, x 0 = [0,1,0,1]:
37
g f e d c b a Cost (literal count): 34 Cyclic Substitution 1 0 1 0 1 1 1 ba a a 1 0 c f a b d e f g xe 0 bxa 3 gxxxax 1023 )( axxex 321 )( exxxxxx 312320 )( cxxcx 301 xxxfx 1023 )( f Inputs x 3, x 2, x 1, x 0 = [0,1,0,1]: c
38
Analysis Efficient, symbolic framework for analysis (BDD-based). Analysis is integrated with synthesis phase. For details see: “Cyclic Combinational Circuit: Analysis for Synthesis,” IWLS’03, available at http://www.paradise.caltech.edu/ETR.html
39
Combinationality Analysis: ensure that there are no sensitized cycles. Timing Analysis: find the length of sensitized paths. Analysis
40
Synthesis Strategy: Allow cycles in the substitution phase of logic synthesis. Find lowest-cost combinational solution. 21213 321321 312321 )( )( )( xxxxxc xxxxxxb xxxxxxa Collapsed: Cost: 17 321 1321 323 xxaxc cxxxxb xxbxa Solution: Cost: 13
41
“Break-Down” approach Exclude edges Search performed outside space of combinational solutions cost 12 cost 13 cost 12 cost 13 combinational cost 14 Branch and Bound
42
“Build-Up” approach Include edges Search performed inside space of combinational solutions cost 17 cost 16 cost 15 not combinational cost 14 Branch and Bound cost 13 best solution
43
Implementation: CYCLIFY Program Incorporated synthesis methodology in a general logic synthesis environment (Berkeley SIS package). Trials on wide range of circuits –randomly generated –benchmarks –industrial designs. Consistently successful at finding superior cyclic solutions.
44
Benchmark Circuits Cost (literals in factored form) of Berkeley SIS Simplify vs. Cyclify Circuit# Inputs# OutputsBerkeleySimplifyCaltechCyclifyImprovement dc147393412.80% ex6811857610.60% p825141049013.50% t41281098918.30% bbsse11 11810610.20% sse11 11810610.20% 5xp171012310911.40% s38611 13111313.70% dk17101116013615.00% apla101218513129.20% tms81618515814.60% cse11 21217716.50% clip9521318911.30% m281623120710.40% s510251326022712.70% t1212327320624.50% ex1132430927610.70% exp81832026218.10% (best examples)
45
Benchmarks Example: EXP circuit Cyclic Solution (Caltech CYCLIFY ): cost 262 Acyclic Solution (Berkeley SIS ): cost 320 cost measured by the literal count in the substitute/minimize phase
46
Discussion Should think of combinational circuits as cyclic, in general. Most circuits can be optimized with cycles. Optimizations are significant. General methodology for synthesis. Efficient, symbolic framework for analysis. Cyclic Combinational Circuits: Paradigm shift:
47
Future Directions Extend ideas to a decomposition and technology mapping phases of synthesis. Address optimization of cyclic circuits for delay, power, fault tolerance.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.