1 / 30

Randy J. Chen Feb. 18, 2013

Randy J. Chen Feb. 18, 2013. Cyclic Node Merging Outline. Motivation Problem Formulation Cyclic Substitute Node (CSN) Added Cyclic Substitute Node (ACSN) Multiple Loops Handling Proposed Flow Future Work. Cyclic Node Merging Motivation (1/5). Yung- Chih Chen (2009):

karyn-glenn
Download Presentation

Randy J. Chen Feb. 18, 2013

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Randy J. Chen Feb. 18, 2013

  2. Cyclic Node Merging Outline • Motivation • Problem Formulation • Cyclic Substitute Node (CSN) • Added Cyclic Substitute Node (ACSN) • Multiple Loops Handling • Proposed Flow • Future Work

  3. Cyclic Node Merging Motivation (1/5) • Yung-Chih Chen (2009): Mergers can be efficiently found by logic implications. a (0,X) v4 (1,0) v1 1. Compute MAs (T = sa0) 2. Compute MAs (T = sa1) 3. Sustitude_Node nodes having different values in MAs (T = sa0) and MAs (T = sa1), and not in the transitive fanout cone of T (1,1) b (1,1) v2 (0,0) v5 (1,0) c (1,0) v3 (1,0) d MAs(T=sa0): {v3=1, c=0, d=1, v2=1, v5=1,b=1,v1=1, v4=0} MAs(T=sa1): {v3=0, v5=0,v2=1, c=0, b=1, d=0, v1=0}

  4. Cyclic Node Merging Motivation (2/5) • Is it possible that we merge T with S which is in the transitive fanout cone (TFC) of T? a (0,X) v4 (1,0) v1 (1,1) b (1,1) v2 (0,0) v5 (1,0) c (1,0) v3 (1,0) d Replacing v3 with v5?

  5. Cyclic Node Merging Motivation (3/5) • Sharad Malik (1995): Cyclic circuits may be produced inadvertently during design. a a opc opc 1 0 0 1 b c always @ * begin if (opc==0) f = (a + b) << c; else f = (a << c) + b; end << + 0 1 opc f

  6. Cyclic Node Merging Motivation (4/5) • Marc D. Riedel (2003): Introducing feedback in substitution phase can further reduce the area. • a • d • c • g • a = x1c + c’d • b = x0’(x1d + c) • c = x0x2x3’ + x2’(x0’x1’ + d) • d = x1’x2’x3 + x3’(x1x2’ + x2(x0’ + x1’)) • e = b + x3’cd • f = x1’x2’ + a’c + de’ • g = a + b’f • a = x1’c + x0’x3’c’ • b = x0’e • c = x0x2x3’ + x2’(x1’x3 + e) • d = x1e+ (x2 + x3)a • e = x3’f’ +x2’(x0’ + x1)f • f = x3’a’ + (x2’ + x0’x1’)g • g = a + x3’b’ • b • f • d • a • e • e • f • b • c • g • Acyclicform of 7-segment display • with literal count = 37 • Cyclicform of 7-segment display • with literal count = 34

  7. Cyclic Node Merging Motivation (5/5) • But their approach spends large amount of time on trial and error. • f1 = x2’x3+ f2’f3 • f2= x1f3’ + x3’f1’ • f3= f1f2’ + x2’x3’ f1 f1 f1 … • f1 = x2’x3+ f2’f3 • f2= x1f3’ + x3’f1’ • f3 = x1’f1 + x2’x3’ cost 12 cost 13 cost 12 f3 f3 f3 f2 f2 f2

  8. Cyclic Node Merging Problem Formulation • Given: a combinational circuit • Derive: an area-optimized circuit • By means of: merging a target node and a substitute node in its transitive fanout cone • With: efficient logic implications

  9. Cyclic Node Merging Cyclic Substitute Node (1/7) • The most important factor of the cyclic combinational circuit is that all loops in the circuit are false. c b a 2 3 5 1 4 6 a(b+c) b+ac c(a+b) a+bc b(a+c) c+ab

  10. Cyclic Node Merging Cyclic Substitute Node (2/7) • If both D and D’ can NOT be propagated from T to S, then the circuit after merging T and S will still be combinational. Proof: 1. As D and D’ cannot be propagated from T to S, for any input assignment, S evaluates to a definite Boolean value other than D and D’, which means S does not depend onT.

  11. Cyclic Node Merging Cyclic Substitute Node (3/7) • If both D and D’ can NOT be propagated from T to S, then the circuit after merging T and S will still be combinational. Proof: 2. Thus even if we replace T with S, S will still evaluate to a definite Boolean value (1 or 0), so do all the nodes originally depend on T. 3. Then the circuit after merging T and S will still be combinational since all the nodes have definite outputs for any input assignment.

  12. Cyclic Node Merging Cyclic Substitute Node (4/7) D and D’ can NOT be propagated from T to S Still combinational Nodes having different values in MAs (T = sa0) and MAs (T = sa1) Identical behavior 1. (T = D & S = 1) and (T = D’ & S = 0) 2. (T = D & S = 0) and (T = D’ & S = 1) Functionally equivalent

  13. Cyclic Node Merging Cyclic Substitute Node (5/7) • Finding MAs when T is stuck-at 0. a b 1 1 0 1 8 0 0 0 b a c 1 3 1 D S f 1 1 T d D D 1 a 1 D’ 2 D 0 5 9 D’ c 0 0 1 0 1 c b 1 7 0 e 0 b 1 6 a 1 1 0 4 0 0 c MAs(T=sa0): {a=1, b=0, c=1, n1=0, n2=D’, n3=D, n4=0, n5=0, n6=1, n7=0, n8=0, n9=0, S=1}

  14. Cyclic Node Merging Cyclic Substitute Node (6/7) • Finding MAs when T is stuck-at 1. a b 1 0 8 0 b a c 1 3 D S f 0 T d D D’ a D 2 D 5 9 D c 1 c b 7 e b 1 6 a 4 c MAs(T=sa1): {b=0, n1=0, n2=D, n3=D, S=0}

  15. Cyclic Node Merging Cyclic Substitute Node (7/7) • Replacing T with S dose not change the functionality. a b 1 8 b a c 3 S f T d a 2 5 9 c c b 7 e b 6 a 4 c MAs(T=sa0): {a=1, b=0, c=1, n1=0, n2=D’, n3=D, n4=0, n5=0, n6=1, n7=0, n8=0, n9=0, S=1} MAs(T=sa1): {b=0, n1=0, n2=D, n3=D,S=0}

  16. Cyclic Node Merging Added Cyclic Substitute Node (1/4) • Though few cyclic substitute nodes exist in practice, there are still potential cyclic substitute nodes. 1 8 3 10 T 2 5 9 (D,D’) (D,0) 7 6 (D’,1) 4

  17. Cyclic Node Merging Added Cyclic Substitute Node (2/4) • These potential cyclic substitute nodes can be further divided into 2 types. 1 8 3 10 T 2 5 9 (D,D’) (D,0) 7 6 (D’,1) 4 Zero-masked One-masked

  18. Cyclic Node Merging Added Cyclic Substitute Node (3/4) • For one-masked nodes, we can let it drive an added node with no inverter to produce a masked zero. (D’,1) (1,D’) (D,1) (1,D’) (1,D) (D,1) (D’,1) (1,D) S S S S S S S S (1,0) (1,0) (0,1) (1,0) (1,0) (0,1) (0,1) (0,1) A A A A A A A A M M M M M M M M (1,0) (1,0) (0,1) (1,0) (0,1) (0,1) (1,0) (0,1)

  19. Cyclic Node Merging Added Cyclic Substitute Node (4/4) • For zero-masked nodes, we can let it drive an added node with an inverter to produce a masked one. (D’,0) (0,D’) (D,0) (0,D’) (0,D) (D,0) (D’,0) (0,D) S S S S S S S S (1,0) (1,0) (0,1) (1,0) (1,0) (0,1) (0,1) (0,1) A A A A A A A A M M M M M M M M (1,0) (1,0) (0,1) (1,0) (0,1) (0,1) (1,0) (0,1)

  20. Cyclic Node Merging Multiple Loops Handling (1/9) • Once the first set of loops is constructed, we definitely want more loops. x0 x1 x2 x3 T1 S1

  21. Cyclic Node Merging Multiple Loops Handling (2/9) • But how can we guarantee the second set of loops will not destroy the previous one? x0 x1 x2 x3 S2 ? T2

  22. Cyclic Node Merging Multiple Loops Handling (3/9) • Method 1: identifying candidate CSNs and testing the combinationality by the SAT-based approach. Original Adding dummy variables

  23. Cyclic Node Merging Multiple Loops Handling (4/9) • Method 1: identifying candidate CSNs and testing the combinationality by the SAT-based approach. Adding dummy variables Making all variables dual-rail

  24. Cyclic Node Merging Multiple Loops Handling (5/9) • Method 1: identifying candidate CSNs and testing the combinationality by the SAT-based approach. • Approximately 3 times more variables and 6 times more clauses would be used. a b f = ab 3 variables 3 clauses f a1 a0 b1 b0 f1 f0 f1= a1b1+ a0b1b0’ f0 = a0b0+ a1b1’b0 10 variables 20 clauses

  25. Cyclic Node Merging Multiple Loops Handling (6/9) • The information we need is the influence when T and S have different values. • Since the previous proved condition only guarantees that T and S always have the same value when T can be observed at POs, it does not contain information when T and S have inconsistent values. • Thus we need to come up with a method to observe the effect on the SCC inputs caused by the inconsistent values of T and S.

  26. Cyclic Node Merging Multiple Loops Handling (7/9) • Method 2: marking the strongly connected component nodes (i.e. SCC1 and SCC2). SCC1 n3 n4 n2 S n1 n6 T SCC2 n5

  27. Cyclic Node Merging Multiple Loops Handling (8/9) • Method 2: identifying SCC inputs in the transitive fanout of T (i.e. n3, n5, and n6). SCC1 n3 n4 n2 S n1 n6 T SCC2 n5

  28. Cyclic Node Merging Multiple Loops Handling (9/9) • Method 2: to see if it is possible that the value of a SCC input changes from controlling value to non-controlling value when T and S are inconsistent. 01? SCC1 n3 S=(0, 1) n4 n2 S n1 01? n6 T SCC2 n5 T=(1, 0) 01?

  29. Cyclic Node Merging Proposed Flow Target node Ti Derive MAs of Ti Find a cyclic substitute node Ci YES Found? NO Find an added cyclic substitute node Ci YES Merge Ti and Ci Found? NO YES More Ti? NO Termination

  30. Cyclic Node Merging Future Work • Thinking about how to implement method 2 for handling multiple loops. • Or is there any better approach?

More Related