1 / 22

A Routing Technique for Structured Designs which Exploits Regularity

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

ozzie
Download Presentation

A Routing Technique for Structured Designs which Exploits Regularity

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. A Routing Technique for Structured Designs which Exploits Regularity Sabyasachi Das Intel Corporation Sunil P. Khatri Univ. of Colorado, Boulder

  2. 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

  3. 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

  4. Regularity in Datapath Circuits • Note vertical bit-slices • Goal: exploit this regularity and thereby efficiently route the datapath design

  5. Overall Routing Flow

  6. 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

  7. 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)

  8. 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]}

  9. 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}

  10. 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]}

  11. 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

  12. 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.

  13. 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.

  14. 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.

  15. 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

  16. 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.???

  17. Experimental Results (Circuits Utilized) • We utilized industrial 32 and 64-bit datapath circuits

  18. Experimental Results (Run-time) • Our router is at least 7X faster

  19. Experimental Results (Wire-length) • Average wire-length reduction for our method is minimal

  20. Experimental Results (Via-count) • Our router utilizes fewer vias since it is strap-based.

  21. 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

  22. Thank You!

More Related