370 likes | 812 Views
Match and Replace – A Functional ECO Engine for Multi-Error Circuit Rectification. Speaker: Ching -Yi Huang Date : 2011/12/23 Shao-Lun Huang Wei- Hsun Lin Chung-Yang ( Ric ) Huang. Design Verification Lab Dept. EE/ Graduate Institute of Electronics Engineering
E N D
Match and Replace – A Functional ECO Engine for Multi-Error Circuit Rectification Speaker: Ching-Yi Huang Date: 2011/12/23 Shao-Lun Huang Wei-Hsun Lin Chung-Yang (Ric) Huang Design Verification Lab Dept. EE/ Graduate Institute of Electronics Engineering National Taiwan University, Taiwan
Outline • Introduction to ECO problem • Motivation & Contribution • Definition • Rectification Pairs • Algorithm • Rectification Pair Identification • Rectification Pair Selection • Patch Minimization • Experimental Results • Conclusions
VLSI Design Flow • New RTL Design Change Specification • Fixed Design • Golden Gate Netlist • Patch Front End Functional ECO Back End Functional & Timing ECO
ECO Problems • ECO problems • Timing ECO: • Meet timing requirement • Buffer Insertion, Gate Sizing, … • Functional ECO: • Handle functional changes • Gate-Level Diff Minimization, Spare Cell Selection, … • Gate-Level Difference Minimization • Minimize netlist difference between the original netlist and the golden specification.
Gate-Level Difference Minimization • Original netlist • Optimized / Placed netlist • Golden netlist • Golden netlist with spec. changes or bug fixes • Objective • Realize new spec. through patching original netlist. • Minimize additional patch netlist.
Synthesis-based ECO rectification node Original Golden • Identify a rectification node in original netlist. • Re-synthesize this node. • Pros. • Does not depend on structural similarity. • Cons. • Patches are large and unpredictable. • Difficult to diagnose rectification nodes.
Sweeping-based ECO [1] Output-side match Patch Input-side match Original Golden [1] S. Krishnaswamy, et al, “DeltaSyn: an efficient logic difference optimizerfor ECO synthesis”,ICCAD’09 • Match equivalence netlist • Replace non-equivalent netlist • Pros. • Functional corrections are often small and local change. • Input-side matching is mature (FRAIG, SAT-sweeping). • How to perform quality output-side matching?
BackwardBoolean Matching • P-equivalent • F=ab+c • G = p + qr
Contribution [2] C.-F. Lai, J.-H.R Jing, and K.-H, Wang, “BooM: A Decision Procedure for Boolean Matching with Abstraction and Dynamic Learning”,DAC’10 • Matching phase:rectification pair identification • Locate output-side matching boundaries. • Cut matching for ECO engine(extended [2]) • Replacement phase: rectification pair selection • Multi-error rectification • SAT-based patch selector
Outline • Introduction to ECO problem • Motivation & Contribution • Definition • Rectification Pairs • Algorithm • Rectification Pair Identification • Rectification Pair Selection • Patch Minimization • Experimental Results • Conclusions
Definition: Rectification Pairs Rectification Pair: {(h, i)}, {(f, c)} A group of pairs in two netlists. Replacing all no by ng makes revised netlist functionally equivalent to golden.
An Example of Match & Replace ECO Original Golden Patch size =0
Outline • Introduction to ECO problem • Motivation & Contribution • Definition • Rectification Pair • Algorithm • Rectification Pair Identification • Rectification Pair Selection • Patch Minimization • Experimental Results • Conclusions
Rectification Pair Identification Rectification Pairs: (po1, po1’) (po2, po2’)…. (cut1, cut1’) (cut2, cut2’)… candidates Cut Matching match cut Original Golden 1: Push all PO pairs into RectifyPairs 2: FOR_EACH pair (p, p’) in RectifyPairs 3: CutPairCutMatching(p, p’); 4: IF( CutPair !=empty ) 5: Push all match pairs into RectifyPairs
Rectification Pair Identification (1/4) Rectification Pair: (k, k)(l, l) (b, b) (c, g2) Match on (k, k)
Rectification Pair Identification (2/4) Rectification Pair: (k, k)(l, l)(c, g2) (f1, f2) (g1, c) (e, e)
Rectification Pair Identification (3/4) Rectification Pair: (k, k)(l, l)(c, g2)(g1, c)
Rectification Pair Identification (4/4) Rectification Pair: (k, k)(l, l)(c, g2)(g1, c)
Cut Matching Algorithm Sum <= 1 Sum >= 1 candidates Sum == 1 cut a1 a2 a3 . . . am 1 Cut nodes New candidates Original Golden b1 b2 b3 b4 . . . . . bn Candidate nodes BooM (DAC’10)[2] P-equivalent M-input cut nodes in original N candidates in golden M-by-N Matrix + Equivalence Checking Original Golden
Rectification Pair Selection • Determine a set of rectification pairs for repairing original netlist • Many rectification pairs are dominated. • Rectification Pair Selector • An incremental equivalence checker • Miter + 2-input MUXs
Rectification Pair Selector 1: Insert MUX gates 2: Assign all Control Signal 1 4: FOR_EACH MUX gate 4: Assign Control Signal 0 5: IFPair Selector is SAT 6: Assign Control Signal 1 7: FOR_EACHControl Signal 8: IF( Signal ==1 ) Replace 1 0 1 1
Decision Order • Finding optimal solution is NP-hard • Structural Heuristic • The later pairs dominate the former pairs • Breadth-first searching from POs to PIs
Patch Minimization • Map useless gates locally • If small wire reconnect is acceptable
Further Improvements on he Patch Size 1. Merging equivalent signals 2. Reiterating M&R ECO process
Outline • Introduce to ECO problem • Motivation & Contribution • Definition • Rectification Pair • Algorithm • Rectification Pair Identification • Rectification Pair Selection • Patch Minimization • Experimental Results • Conclusions
Exp 1: Cube Modification • Wu et.al., "A Robust Functional ECO Engine by SAT Proof Minimization and Interpolation Techniques," ICCAD.10. • MiniSAT SAT engine • Linux workstation with 32GB RAM and 2.5GHx Intel Xeon CPU • 42 testcases from ISCAS’89 benchmarks
Exp 2: Structural Changes Swapping two nodes(NS) Inserting inverters(INV) Changing gate types(TC) Replace functions(FR)
Conclusions • M&R ECO • more flexible and more efficient. • smaller patches in experiments. • Rectification pair matching algorithm • identify functional relations between netlists. • Patch selector • determine patches for multi-error rectification.