220 likes | 312 Views
A Routing Technique for Structured Designs which Exploits Regularity. Sabyasachi Das Intel Corporation Sunil P. Khatri Univ. of Colorado, Boulder. Motivation Our routing approach Extracting Net-Clusters Selecting a representative bit-slice Routing same-bit and cross-bit nets
E N D
A Routing Technique for Structured Designs which Exploits Regularity Sabyasachi Das Intel Corporation Sunil P. Khatri Univ. of Colorado, Boulder
Motivation Our routing approach Extracting Net-Clusters Selecting a representative bit-slice Routing same-bit and cross-bit nets Route Propagation Advantages of our approach Experimental results Conclusions & future work Outline
Motivation • Datapath designs • Characterized by regularity across bit-slices • One of the more critical parts of the design • Commonly found in microprocessors, DSP, graphic ICs. • Effective exploitation of regularity is crucial for efficient datapath design automation • Datapath placement techniques are available • Not many results are available on datapath routing
Regularity in Datapath Circuits • Note vertical bit-slices • Goal: exploit this regularity and thereby efficiently route the datapath design
Net-Cluster Extraction • A net-cluster is a collection of nets (spread over multiple bit-slices), in which all nets have similar connections. • net1and net2 are in cluster N if foreach pin pnet1 and q net2: • yp = yq AND |xp – xq| = k * bit_pitch • Our algorithms to extract net-clusters: • Footprint-driven clustering • Instance-driven clustering • Cluster-merging
Footprint-driven Clustering • Computationally inexpensive • Footprints (of a net) are of two types: • Global footprint contains the pin-names (of connecting instances) and master-cell names. • Detailed footprint contains the instance names and the net-name. • The FDC technique has two steps: • Groupsare created such that each net in the group has the same global footprint. • Create net clusters from nets in a group with identical detailed footprints (modulo bit-slice index)
Footprint-driven Clustering • Global footprint step: two groups created G1 = {LB[3:0], SB[3:0]} G2 = {SM[3:0]} • Detailed footprint step: three net-clusters are obtained: • From G1: NC1 = {LB[3:0]} NC2 = {SB[3:0]} • From G2: NC3 = {SM[3:0]}
Instance-driven Clustering • For unclustered nets, first apply global footprint step • For each such group • Consider net1 and net2 (p-pin) • Sort the pins by y-coordinate • Insert these in a cluster if: • Sorted y-coordinates of pins all p pins match • Corresponding x-coordinates are k bit-pitches apart • IDC does not rely on uniform net names • In the example, two net-clusters are obtained: • NC1 = {AB, CD, EF, GH} and NC2 = {KL, MN, RS, TV}
Cluster Merging • Net clusters obtained by FDC and IDC may be further merged • In the example: • FDC finds 3 clusters: • NC1 = {LB[3:0]} • NC2 = {SM[1:0]} • NC3 = {SB[3:0]} • IDC finds 1 cluster: • NC4 = {ABC, DEF} • Cluster merging merges NC2 and NC4 • NC-New = {ABC, DEF, SM[1], SM[0]}
Selecting the Representative Bit-Slice • We conceptually extend the datapath to have an infinite number of bit-slices. • Any bit-slice can be chosen as the representative bit-slice for routing. • While routing, we need to account for: • “Same-bit” nets • Backward “cross-bit” nets • Forward “cross-bit” nets
Routing Same-bit Nets • Our routing approach is a combination of pattern-based routing and maze routing • We call our approach strap-based routing. A strap is defined as a straight segment, which can be vertical or horizontal. • Our router utilizes minimal memory, since it loads the design data of one (representative) bit-slice. • As a result, our method is significantly faster than traditional routing approaches in the datapath context.
Routing Same-bit Nets .. 2 • Our router routes nets in a sequential manner: • Nets routed in decreasing order of y-coordinate of their topmost pins. • Longer nets are given preference. • User may specify a different order • Router tries to find direct-routes (only vertical or only horizontal strap or VTH/HTV strap). • If a direct route is unavailable, more complex patterns are attempted. • Rip-up and re-route if there is a conflict. • If strap-based router cannot find a route, maze router is used.
Routing Cross-Bit Nets • We model a single cross-bit net (spread over multiple bit-slices), as a combination of multiple smaller sub-nets • Each confined within a single bit-slice. • We virtually instantiate these sub-nets into the representative bit-slice. • If maximum backward/forward connectivity is k, then we need to find k different routes • This ensures that the k distinct routes do not conflict in the real design • In practice, the value of k is not very high.
Propagating the Routes • After routing nets in the representative bit-slice, these routes are propagated to other bit-slices (for other nets in same net-cluster). • There are two cases: • For same-bit nets: The original route is propagated by simple coordinate translation • For cross-bit nets: If maximum degree of forward/backward connectivity is k: • For the nth net in the net cluster, we propagate the (n%k)th route (of the k routes we obtained in the previous step) • This ensures that the propagated routes do not conflict
Advantages of Our Approach • Speed of Routing: • A small fraction of nets are routed, the rest are propagated. • Lower memory requirement: • Since only one bit-slice is routed • Predictable Routes: • Wiring parasitics are similar for different nets in a net-cluster. • Better Debuggability : • Easy to find and fix poorly routed nets since (similarly routed) nets would typically all fail timing • Easy Incremental Routing: Rip-up all the routes for a given net-cluster and again route them identically. This can be done multiple times.???
Experimental Results (Circuits Utilized) • We utilized industrial 32 and 64-bit datapath circuits
Experimental Results (Run-time) • Our router is at least 7X faster
Experimental Results (Wire-length) • Average wire-length reduction for our method is minimal
Experimental Results (Via-count) • Our router utilizes fewer vias since it is strap-based.
Conclusions and Future Work • Our regular routing technique is a useful component in a total datapath design automation flow • Results in significant speed-up • Routes are highly regular • In future, we plan to focus on • Cross-talk aware datapath routing • Handling irregular net connectivity