Presentation is loading. Please wait.

Presentation is loading. Please wait.

It Is Better to Run Iterative Resynthesis on Parts of the Circuit Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical University.

Similar presentations


Presentation on theme: "It Is Better to Run Iterative Resynthesis on Parts of the Circuit Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical University."— Presentation transcript:

1 It Is Better to Run Iterative Resynthesis on Parts of the Circuit Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical University in Prague fiserp@fit.cvut.cz, schmidt@fit.cvut.cz

2 IWLS’102 Outline Preliminaries Iterative resynthesis Motivation Circuit resynthesis by parts Experiments Conclusions

3 IWLS’103 Preliminaries Synthesis (optimization) of circuits (networks) will be discussed Just for simplicity: Combinational circuits are assumed Mapping into arbitrary 2-input gates Cost (optimality criterion, quality) = # of gates

4 IWLS’104 Iterative Resynthesis Iterative resynthesis = improving the result quality by repetitive application of a single synthesis process, in order to improve the result quality Possible assumption: the synthesis process cannot make the circuit worse Needs not be always true

5 IWLS’105 Iterative Resynthesis in ABC ABC naturally supports iterative resynthesis Emphasized by “choices” Many possible processes Suggested: repeating {choice; map} Superchoice: fraig_store; resyn fraig_store; resyn2 fraig_store; resyn2rs fraig_store; share fraig_store; fraig_restore

6 IWLS’106 Iterative Resynthesis in ABC

7 IWLS’107 How Many Iterations suffice? 228 of IWLS’93 benchmarks examined Iterations to converge# of cases < 20194 20 – 10027 100 – 5004 500 – 10001 (t481) > 10002 (seq, too_large)

8 IWLS’108 Motivation Imagine: e64 IWLS’93 circuit (65 inputs, 65 outputs, 649 2-input gates) Case 1 – synthesis of the circuit, as it is: 530 gates 2.33s runtime Case 2 – split the circuit into two halves, synthesize them separately, then merge the results 522 gates 1.73s total runtime Where is the problem? What’s wrong?

9 IWLS’109 Circuit Resynthesis by Parts Resynthesize(Network N, opt) { do { (W, N R ) = Extract_Window(N, opt); W’ = resynthesize_by_ABC(W); N’ = N R  W’; if (cost(N’) ≤ cost(N)) N = N’; } while (!end()); }

10 IWLS’1010 Window Extraction

11 IWLS’1011 Window Extraction Connected circuits are always extracted Method 0 – Random selection 1. 1. Randomly select one “pivot” gate 2. 2. Incrementally add randomly selected adjoining gates Method 1 – Minimize_fanin 1. 1. Randomly select one “pivot” gate 2. 2. Incrementally add adjoining gates, so that the number of window primary inputs is minimized (in a greedy way) Method 2 – Minimize_fanout 1. 1. Randomly select one “pivot” gate 2. 2. Incrementally add adjoining gates, so that the number of window primary outputs is minimized (in a greedy way) Method 3 – Minimize_fanin+fanout 1. 1. Randomly select one “pivot” gate 2. 2. Incrementally add adjoining gates, so that the sum of numbers of window primary inputs and outputs is minimized (in a greedy way) These methods allow for arbitrary window size scaling

12 IWLS’1012 Window Extraction Method 4 – RadiusSelect 1. 1. Randomly select one “pivot” gate 2. 2. Add all adjoining gates (i.e., all fan-in and fan-out gates) 3. 3. For each gate in the window, do (2.), up to the given radius Method 5 – Windowing-like selection Similar to the window selection algorithm in the resubstitution process in ABC 1. 1. Randomly select one “pivot” gate 2. 2. Find the minimum level of its transitive fan-in to a given depth 3. 3. Generate transitive fan-out of the pivot, to a given depth 4. 4. For these fan-out nodes, include all transitive fan-in nodes up to the computed level into the window The window size is partially determined by the circuit structure

13 IWLS’1013 Experimental Setup 228 of IWLS’93 benchmarks processed Resynthesis using ABC, using the “superchoice” script, followed by technology mapping into 2-input gates Iterated 1000-times (recall – this should be more than enough) 100% circuit resynthesis yielded 19.97% improvement in the average

14 IWLS’1014 Comparison of Methods Gates (size 20%) Time (size 20%)

15 IWLS’1015 Comparison of Methods

16 IWLS’1016 Results Method 0 (Random select), improvement vs. ABC iterated 1000-times

17 IWLS’1017 Results Method 4 (Radius select), improvement vs. ABC iterated 1000-times

18 IWLS’1018 Why This Happens - Example Cases Behavior of one of the “good for us” circuits (e64) Method 0 (random selection)

19 IWLS’1019 Why This Happens - Example Cases Behavior of one of the “bad for us” circuits (clip) Method 0 (random selection)

20 IWLS’1020 Convergence, Maybe?

21 IWLS’1021 Convergence, Maybe?

22 IWLS’1022 Conclusions Sometimes it is better to resynthesize circuits by parts, rather than as whole In cases where not, probably it is due to random fluctuations caused by random part selections Resynthesis by parts converges slower, but yields better results Why?

23 IWLS’1023 Questions Discussion Stoning to death…


Download ppt "It Is Better to Run Iterative Resynthesis on Parts of the Circuit Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical University."

Similar presentations


Ads by Google