1 / 29

Logic Restructuring for Timing Optimization

Logic Restructuring for Timing Optimization. Outline: Definitions and problem statement Overview of techniques (motivated by adders) Tree height reduction (THR) Generalized bypass transform (GBX) Generalized select transform (GST) Partial collapsing (?). Timing Optimization.

nuri
Download Presentation

Logic Restructuring for Timing Optimization

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. Logic Restructuring for Timing Optimization Outline: • Definitions and problem statement • Overview of techniques (motivated by adders) • Tree height reduction (THR) • Generalized bypass transform (GBX) • Generalized select transform (GST) • Partial collapsing (?)

  2. Timing Optimization Factors determining delay of circuit: • Underlying circuit technology • Circuit type (e.g. domino, static CMOS, etc.) • Gate type • Gate size • Logical structure of circuit • Length of computation paths • False paths • Buffering • Parasitics • Wire loads • Layout

  3. Problem Statement Given: • Initial circuit function description • Library of primitive functions • Performance constraints (arrival/required times) Generate: an implementation of the circuit using the primitive functions, such that: • performance constraints are met • circuit area is minimized

  4. Current Design Process Behavioral description Behavior Optiization (scheduling) Logic and latches Partitioning (retiming) Logic equations • Logic synthesis • Technology independent • Technology mapping • Gate library • Perf. Constraints • Delay models Gate netlist Timing driven place and route Layout

  5. Technology mapping for delay Function tree Buffer tree

  6. Overview of Solutions for delay • Circuit re-structuring • Rescheduling operations to reduce time of computation • Implementation of function trees (technology mapping) • Selection of gates from library • Minimum delay (load independent model - Kukimoto) • Minimize delay and area (Jongeneel, DAC’00) (combines Lehman-Watanabe and Kukimoto) • Implementation of buffer trees • Touati (LT-trees) • Singh • Resizing Focus here on circuit re-structuring

  7. Circuit re-structuring Approaches: Local: • Mimic optimization techniques in adders • Carry lookahead (THR tree height reduction) • Conditional sum (GST transformation) • Carry bypass (GBX transformation) Global: • Reduce depth of entire circuit • Partial collapsing • Boolean simplification

  8. Re-structuring methods Performance measured by • levels, • sensitizable paths, • technology dependent delays • Level based optimizations: • Tree height reduction (Singh ‘88) • Partial collapsing and simplification (Touati ‘91) • Generalized select transform (Berman ‘90) • Sensitizable paths • Generalized bypass transform (Mcgeer ‘91)

  9. Re-structuring for delay: tree-height reduction 6 n’ Collapsed Critical region 5 Critical region n 5 5 Duplicated logic 1 l m m 1 1 1 4 1 k 2 4 k 0 0 i j 3 i j 3 h h 0 0 0 0 0 0 2 0 0 0 0 0 0 2 a b c d e f g a b c d e f g

  10. Restructuring for delay: path reduction 4 New delay = 5 n’ 3 n’ Collapsed Critical region 5 5 2 Duplicated logic 1 m m 1 1 1 1 1 1 2 4 2 4 k k 0 0 0 i j i j 3 3 0 h h 0 0 0 0 0 0 0 0 2 0 0 0 0 2 a b c d e f g a b c d e f g Singh ‘88

  11. Generalized bypass transform (GBX) • Make critical path false • Speed up the circuit • Bypass logic of critical path(s) fm=f fm+1 … fn=g McGeer ‘91 fm =f fm+1 … fn=g 0 g’ 1 dg __ df Boolean difference s-a-0 redundant

  12. GBX and KMS transform GBX gives little area increase, BUT have now created an untestable fault (on control input to multiplexor) KMS transform:(remove false paths without increasing delay) • fk is last node on false path that fans out. • Duplicate false path {f1,…, fk} -> {f’1, … , f’k} • f’j fans out to every fanout of fjexcept fj+1, and fj just fans out to fj+1 • Set f0 input to f1 to controlling value and propagate constant (can do because path is false and does not fanout) KMS results • Function of every node, except f1, … ,fk is unchanged • Added k-1 nodes • Area added in linear in size of length of false paths; in practice small area increase.

  13. KMS (Keutzer, Malik, Saldanha ‘90) fm fm+1 fk fk+1 … fn Delay is not increased f’m f’m+1 … f’k fm fm+1 fk fk+1 … fn 0

  14. End of lecture 20

  15. Generalized select transform (GST) a out Late signal feeds multiplexor b c d e f g Berman ‘90 a=0 0 b out c d e f g a=1 1 b a c d e f g

  16. a=0 out GST 0 b c d e f g 1 a=1 b c d e f g a c 0/1 g GST vs GBX h … 0 g’ b GBX 1 a c 0/1 dh __ da g GBX h … 0 g’ b 1 a a=0 b c d e f g a=1 b c d e f g

  17. GST vs GBX • Select transform appears to be more area efficient • But Boolean difference generally more efficiently formed in practice • No delay/speedup advantage for either transform • Need • one MUX perfanout in GST, • only one MUX in GBX out2 GST 0 1 a out1 a=0 0 b c d e f g 1 a=1 b c d e f g a

  18. Technology independent delay reductions Generally THR, GBX, GST (critical path based methods) work OK, butnot great Why are technology independent delay reductions hard? Lack of fast and accurate delay models • # levels, fast but crude • # levels + correction term (fanout, wires,… ): a little better, but still crude (what coefficients to use?) • Technology mapped: reasonable, but very slow • Place and route: better but extremely slow • Silicon: best, but infeasibly slow (except for FPGAs) s l o w e r b e t t e r

  19. Clustering/partial-collapse Traditional critical-path based methods require • Well defined critical path • Good delay/slack information Problems: • Good delay information comes from mapper and layout • Delay estimates and models are weak Possible solutions: • Better delay modeling at technology independent level • Make speedup, insensitive to actual critical paths and mapped delays

  20. Clustering/partial-collapse Two-level circuits are fast • Collapse circuit to 2-level - but • Huge area penalty • Huge capacitive loading on inputs (can be much slower) To avoid huge area penalty • Identify clusters of nodes • Each cluster has some fixed size • Perform collapse of each cluster • Simplify each node Details • How to choose the clusters? • How to choose cluster size? • How to simplify each node?

  21. Lawler’s clustering algorithm • Optimal in delay: • For a given clustering size • May duplicate nodes (hence possible area penalty) • Not optimal w.r.t duplication • Use a heuristic • Fast: O(m x k) • m = number of edges in network • k = maximum cluster size

  22. Clustering algorithm - overview • Label phase: (k is cluster size) • If node u is an input, label(u) := L := 0 • Else L := max label of fanin of u • If (# nodes in TFI(u) with (label = L) >= k) label(u) := L+1 • Cluster phase: (outputs to inputs) • If node u is an output, L := infinity • Else L := max label of fanouts of u • If (label(u) < L) then create a new cluster with “root” u and with members all the nodes in TFI(u) with label = label(u) • Collapse phase: (order independent) • Collapse all nodes in a cluster into a single node • Note: a node may be in several clusters (causes area increase

  23. 0 1 1 0 0 0 0 1 1 2 0 Example of clustering k = 3 • Result: Lawler’s algorithm • gives minimum depth circuit • Typically, • we decompose initial circuit into 2-input NANDs and invertors. • then cluster size k reflects # 2-input NANDs to be collapsed together. 0 1 0 1 2 0

  24. d(k) I(k) 1 2 k0 Choosing k • I(k): number of levels, given k • d(k): duplication ratio • Number of gates in cluster network divided by number of gates in original network • Determine k0 where k0/d(k0)~2.0 • For every k from 2 to k0, compute d(k), I(k) • Use exhaustive enumeration: label and cluster (without collapse) for each k. • Each iteration is O(|E|k) • Choose k such that • I(k) is minimized • Break ties using d(k) • Minimize d(k)

  25. Area recovery Area increase is due to node duplication - • this occurs when node is in multiple clusters Two solutions: • Break clusters into smaller pieces off critical path • After cluster and collapse, recover area

  26. Relabeling procedure: Attempt to increase node labels without exceeding cluster size In reverse topological order Start : assign Increase label(u) if • new-label(u) <= label(v) for each fanout v and • new-label(u) = new-label(v) for each fanout v only if label(u) = label(v) before relabeling, and • no cluster size is violated

  27. 0 1 1 0 0 0 2 1 0 0 0 0 1 1 2 0 0 1 1 2 0 0 Relabeling example before after

  28. Post-collapse area recovery • Do algebraic factorization, but • Undo factorization if depth increases • Full_simplify • Only consider node v as possible fanin of a node (v introduced by full_simplify using don’t cares) if level of v < level of node. • Redundancy removal

  29. Conclusions • Variety of methods for delay optimization • No single technique dominates (KJ Singh PhD thesis) • When applied to ripple-carry adder get • Carry-lookahead adder (THR) • Carry-bypass adder (GBX) • Carry-select adder (GST) • ? (partial collapse) • All techniques ignore false pathswhen assessing the delay and critical regions • Can use KMS transform to eliminate false paths without increasing delay (area increase however).

More Related