360 likes | 514 Views
Making Combinational Circuits Cyclifiable. Student: Jui -Hung Chen Advisor: Chun-Yao Wang July 18, 2013. Making Combinational Circuit Cyclifiable Outline. Motivation Problem Formulation Cyclifiable Structure Identification & Creation Cyclic Substitute Node (CSN)
E N D
Making Combinational Circuits Cyclifiable Student: Jui-Hung Chen Advisor: Chun-Yao Wang July 18, 2013
Making Combinational Circuit Cyclifiable Outline • Motivation • Problem Formulation • Cyclifiable Structure Identification& Creation • Cyclic Substitute Node (CSN) • Added Cyclic Substitute Node (ACSN) • Cyclifiable Structure Validation • Intra-SCC Validation • Inter-SCC Validation • Proposed Flow • Experimental Results • Conclusion
Making Combinational Circuit Cyclifiable Motivation (1/5) • Y.-C. Chen (2009): Mergers can be efficiently found by logic implications. a (0,X) v4 1. Compute MAs (nt= sa0) 2. Compute MAs (nt= sa1) 3. Substitute node ns nodes having different values in MAs (nt = sa0) and MAs (nt = sa1), but not in the transitive fanout cone of nt (1,0) v1 (1,1) b (1,1) v2 (0,0) v5 (1,0) c (1,0) v3 (1,0) d MAs(v3=sa0): {v3=1, c=0, d=1, v2=1, v5=1,b=1,v1=1, v4=0} MAs(v3=sa1): {v3=0, v5=0,v2=1, c=0, b=1, d=0, v1=0}
Making Combinational Circuit Cyclifiable Motivation (2/5) • Is it possible that we merge nt=v3 with ns=v5which is in the transitive fanout cone (TFC) of v3? 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?
Making Combinational Circuit Cyclifiable Motivation (3/5) • L. Stok (1992): Cyclic circuits inadvertently produced during design. a a if (op==0) f = (a + b) << c; else f = (a << c) + b; op 1 0 0 1 op b c << + op 0 1 f
Making Combinational Circuit Cyclifiable Motivation (4/5) • M. 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
Making Combinational Circuit Cyclifiable 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
Making Combinational Circuit Cyclifiable Problem Formulation • Given: a combinational circuit C • Derive: an area-optimized circuit C* • By means of: merging a target node nt and a substitute node ns in nt’s transitive fanout cone • With: efficient logic implications
Making Combinational Circuit Cyclifiable Cyclic Substitute Node (1/7) • The most important factor of the cyclic combinational circuit is that all loops in the circuit are false. z = 1 z = 0
Making Combinational Circuit Cyclifiable Cyclic Substitute Node (2/7) Theorem 1: If the value changes on nt are never propagated to ns,Lis combinational.
Making Combinational Circuit Cyclifiable Cyclic Substitute Node (3/7) • For a loop formed by replacing nt with ns, the two nodes have to satisfy not only the combinational requirement but also the functional requirement. Theorem 1: D and D can NOT be propagated from nt to ns Combinationally equivalent Condition 1: Nodes having different values in MAs (nt= sa0) and MAs (nt= sa1) Functionally equivalent
Making Combinational Circuit Cyclifiable Cyclic Substitute Node (4/7) • To efficiently identify cyclic substitute nodes, we can combine some of the combinational requirement with the functional requirement. • How to confirm the other part of combinationality? Condition 2: Functionally equivalent Nodes having different values in MAs (nt= sa0) and MAs (nt= sa1), and ns = (1, 0) or (0, 1)rather than (D, D) or others. Partially combinationally equivalent
Making Combinational Circuit Cyclifiable Cyclic Substitute Node (5/7) • Deriving MAs when nt = n1 is stuck-at 0. MAs(n1=sa0): {x=1, z=1,n1=D, y=0, n3=D, n2=0, n5=D, n7=0, n4=0, n6=1, n8=0, n10=0, n9=0, n11=1}
Making Combinational Circuit Cyclifiable Cyclic Substitute Node (6/7) • Deriving MAs when nt = n1 is stuck-at 1. MAs(n1=sa1): {n1=D, y=0,n3=D, n2=0, n5=D, n11=0}
Making Combinational Circuit Cyclifiable Cyclic Substitute Node (7/7) • Merging n1 with n11 dose not change the functionality. MAs(n1=sa1): {n1=D, y=0,n3=D, n2=0, n5=D, n11=0} MAs(n1=sa0): {x=1, z=1,n1=D, y=0, n3=D, n2=0, n5=D, n7=0, n4=0, n6=1, n8=0, n10=0, n9=0,n11=1}
Making Combinational Circuit Cyclifiable Added Cyclic Substitute Node (1/5) • For some circuits with few CSNs inherently, there are still potential CSNs.
Making Combinational Circuit Cyclifiable Added Cyclic Substitute Node (2/5) • Driven by a blocking node nb, the added node na also satisfies Condition 2. We name naa maskingACSN.
Making Combinational Circuit Cyclifiable Added Cyclic Substitute Node (3/5) • 8 types of masking ACSNs.
Making Combinational Circuit Cyclifiable Added Cyclic Substitute Node (4/5) • If no nb = (1,0) or (0,1) exists, nb=(1,X) can be used instead. In this situation, na is called an induced ACSN. If X1 = 1 implies X2 = 1, then na = (1, 1)(0, 1) = (1, 0) satisfies Condition 2.
Making Combinational Circuit Cyclifiable Added Cyclic Substitute Node (5/5) • 8 types of induced ACSNs.
Making Combinational Circuit Cyclifiable Cyclifiable Structure Validation (1/3) • J. Backes (2008):(a) Figuring out feedback arcs, and cutting them to form an acyclic circuit. Original Adding dummy variables
Making Combinational Circuit Cyclifiable Cyclifiable Structure Validation (2/3) • J. Backes (2008):(b) Extending signals to 2 bits (000, 111, X01 or 10). Adding dummy variables Making all signals dual-rail
Making Combinational Circuit Cyclifiable Cyclifiable Structure Validation (3/3) • J. Backes (2008):(c) Approximately 3 times more variables and 6 times more clauses would be used. f = ab a b 3 variables 3 clauses f a1 a0 b1 b0 f1= a1b1+ a0b1b0’ f0 = a0b0+ a1b1’b0 10 variables 20 clauses f1 f0
Making Combinational Circuit Cyclifiable Intra-SCC Validation (1/2) • To achieve combinationally equivalent, we can examine if the value change on nt propagates to nsbased on Theorem 1.(000, 111, D10, D01) Duplicating ntinto 2 copies
Making Combinational Circuit Cyclifiable Intra-SCC Validation (2/2) • Since the signals are extended to 2-bit signals, the function of nodes has to be modified. f1= a1b1 f0= a0b0+ a1a0b1+ a1b1b0 D AND D is intentionally set to D to detect self-masking fault effects.
Making Combinational Circuit Cyclifiable Inter-SCC Validation (1/5) • n1 and n11 have an observability don’t care when xyz=011.
Making Combinational Circuit Cyclifiable Inter-SCC Validation (2/5) • The observability don’t care may affect the combinationality of the SCC s1.
Making Combinational Circuit Cyclifiable Inter-SCC Validation (3/5) Theorem 2: If DT* ⊆ DT, Sremains combinational after sn+1 is formed.
Making Combinational Circuit Cyclifiable Inter-SCC Validation (4/5) • We identify the SCC part of the circuit and make it dual-rail. Making s1 and s2 dual-rail Identifying s1 and s2
Making Combinational Circuit Cyclifiable Inter-SCC Validation (5/5) • Adding an OR gate driven by the dual-rail instances and assign different value to nt and ns. Adding an OR gate to DR(s1) & DR(s2)
Making Combinational Circuit Cyclifiable Proposed Flow Target node nt Intra-SCC validation Derive MAs of nt Pass? NO Find a CSN ns YES YES Inter-SCC validation Found? NO Pass? Return NO Find a masking ACSN ns NO YES YES Found? Return YES NO Find an induced ACSN ns YES Found? Validate combinationality NO NO Comb.? YES YES More nt? Merge nt and ns NO Termination
Making Combinational Circuit Cyclifiable Experimental Results (1/4) • The effectiveness of identifying and creating cyclifiable structures.
Making Combinational Circuit Cyclifiable Experimental Results (2/4) • Comparing with node merging.
Making Combinational Circuit Cyclifiable Experimental Results (3/4) • The ability to achieve more minimized circuits.
Making Combinational Circuit Cyclifiable Experimental Results (4/4) • The efficiency of our combinationalityvalidation.
Making Combinational Circuit Cyclifiable Conclusion • We propose the first algorithm that synthesizes cyclic combinational circuits by merging two nodes. • We introduce new techniques to validate the cyclifiable structures, which bring more than two orders of magnitude speedup on average. • The proposed identification and validation algorithms are scalable for circuits up to tens of thousands gates.