dr cu 2 0 a scalable detailed routing framework
play

Dr. CU 2.0: A Scalable Detailed Routing Framework with - PowerPoint PPT Presentation

Dr. CU 2.0: A Scalable Detailed Routing Framework with Correct-by-Construction Design Rule Satisfaction Haocheng Li , Gengjie Chen, Bentian Jiang, Jingsong Chen, Evangeline F. Y. Young Source code is available at


  1. Dr. CU 2.0: A Scalable Detailed Routing Framework with Correct-by-Construction Design Rule Satisfaction ∗ Haocheng Li , Gengjie Chen, Bentian Jiang, Jingsong Chen, Evangeline F. Y. Young ∗ Source code is available at htps://github.com/cuhk-eda/dr-cu. 1 / 26

  2. Outline Introduction Preliminary Algorithms Experimental Results Conclusion 2 / 26

  3. Outline Introduction Preliminary Algorithms Experimental Results Conclusion 3 / 26

  4. Detailed Routing ◮ 1M nets in 20K × 20K × 10 grid points, hardly routed by ILP-based a or SAT-based b methods. ◮ Complicated design rules: ◮ Parallel run length (PRL) spacing c . ◮ End-of-line (EOL) spacing. ◮ EOL spacing with parallel edges d . ◮ Corner-to-corner (C2C) spacing e . a [Kahng, Wang, and Xu 2018] b [Park et al. 2019] c [Qi, Cai, and Zhou 2015] d [Yu et al. 2015] e [Côté, Pierrat, and Hurat 2004] Figure 1: Qad-Core Design [Liu et al. 2019]. 3 / 26

  5. Problem Formulation Given ◮ technology node and design rules, ◮ placement result with netlist, ◮ routing tracks and blockages, and ◮ route guides generated from global routing, route all nets minimizing a weighted sum of ◮ total wire-length and via count, ◮ out-of-guide, off-track, wrong-way usage, and ◮ design rule violations. 4 / 26

  6. Contributions Access Point Assignment ◮ Compute valid access points of each pin and create off-track vias if no same-layer access For Each Rip-up and Reroute Iteration point is valid. ◮ Handle end-of-line spacing with parallel edges Multi-threaded Maze Routing in a correct-by-construction manner. ◮ Fix corner-to-corner spacing violations in Multi-threaded Via Selection post-processing. ◮ Develop a lookup-table-based via insertion method and select violation-free via types from Post-routing Re fi nement the cell library. Figure 2: Detailed Routing Flow. 5 / 26

  7. Outline Introduction Preliminary Algorithms Experimental Results Conclusion 6 / 26

  8. Two-Level Sparse Data Structures local grid graph routing region of a net routing topology maze route record cache query edge usage global grid graph Figure 3: Global and Local Grid Graph. 6 / 26

  9. Parallel Run Length Spacing w 2 R2 The parallel run length (PRL) s t R2 l t spacing requirements between two s m wires of different nets depend on s b both width and PRL of the two w 1 R1 wires. l b R2 Figure 4: Parallel Run Length Spacing. 7 / 26

  10. End-of-line Spacing Figure 5: Example of Triple Paterning Layout Decomposition † . eolWithin parWithin parSpace Metal Metal Parallel eolWidth eolWidth Edge Region eolWithin eolWithin EOL Spacing EOL Spacing eolSpace eolSpace Figure 7: EOL Spacing with Parallel Edges. Figure 6: EOL Spacing without Parallel Edges. † [Yu et al. 2015] 8 / 26

  11. <latexit sha1_base64="Xjl2NlYS/IYscB7kNQ47CiBlpoA=">AB+XicbVBNS8NAEN34WetX1KOXxVbwVJe7LHgxWMF+wFtKJvNpF262Q27m0oJ/SdePCji1X/izX/jts1BWx8MPN6bYWZemHKmjed9O1vbO7t7+6WD8uHR8cmpe3be0TJTFNpUcql6IdHAmYC2YZDL1VAkpBDN5zcLfzuFJRmUjyaWQpBQkaCxYwSY6Wh61af8IADBsm7LDLj6tCteDVvCbxJ/IJUIHW0P0aRJmCQhDOdG673upCXKiDKMc5uVBpiEldEJG0LdUkAR0kC8vn+Nrq0Q4lsqWMHip/p7ISaL1LAltZ0LMWK97C/E/r5+ZuBHkTKSZAUFXi+KMYyPxIgYcMQXU8JklhCpmb8V0TBShxoZVtiH46y9vk695ns1/6FeaTaKOEroEl2hG+SjW9RE96iF2oiKXpGr+jNyZ0X5935WLVuOcXMBfoD5/MHLd6Sqw=</latexit> <latexit sha1_base64="Xjl2NlYS/IYscB7kNQ47CiBlpoA=">AB+XicbVBNS8NAEN34WetX1KOXxVbwVJe7LHgxWMF+wFtKJvNpF262Q27m0oJ/SdePCji1X/izX/jts1BWx8MPN6bYWZemHKmjed9O1vbO7t7+6WD8uHR8cmpe3be0TJTFNpUcql6IdHAmYC2YZDL1VAkpBDN5zcLfzuFJRmUjyaWQpBQkaCxYwSY6Wh61af8IADBsm7LDLj6tCteDVvCbxJ/IJUIHW0P0aRJmCQhDOdG673upCXKiDKMc5uVBpiEldEJG0LdUkAR0kC8vn+Nrq0Q4lsqWMHip/p7ISaL1LAltZ0LMWK97C/E/r5+ZuBHkTKSZAUFXi+KMYyPxIgYcMQXU8JklhCpmb8V0TBShxoZVtiH46y9vk695ns1/6FeaTaKOEroEl2hG+SjW9RE96iF2oiKXpGr+jNyZ0X5935WLVuOcXMBfoD5/MHLd6Sqw=</latexit> <latexit sha1_base64="tTCwZFMox0LwI3sFQk9NA4SxyU=">AB9XicbVA9SwNBEN3zM8avqKXNYiJYhbs0pKAjWUE8wHJGfb25pIle7vH7p4hHPkfNhaK2Ppf7Pw3bpIrNPHBwO9GWbmBQln2rjut7OxubW9s1vYK+4fHB4dl05O21qmikKLSi5VNyAaOBPQMsxw6CYKSBxw6ATj27nfeQKlmRQPZpqAH5OhYBGjxFjpsTLBNxgk7DQjCqDUtmtugvgdeLlpIxyNAelr34oaRqDMJQTrXuemxg/I8owymFW7KcaEkLHZAg9SwWJQfvZ4uoZvrRKiCOpbAmDF+rviYzEWk/jwHbGxIz0qjcX/N6qYnqfsZEkhoQdLkoSjk2Es8jwCFTQA2fWkKoYvZWTEdEWpsUEUbgrf68jp16qeW/Xua+VGPY+jgM7RBbpCHrpGDXSHmqiFKFLoGb2iN2fivDjvzseydcPJZ87QHzifP/WzkXc=</latexit> <latexit sha1_base64="tTCwZFMox0LwI3sFQk9NA4SxyU=">AB9XicbVA9SwNBEN3zM8avqKXNYiJYhbs0pKAjWUE8wHJGfb25pIle7vH7p4hHPkfNhaK2Ppf7Pw3bpIrNPHBwO9GWbmBQln2rjut7OxubW9s1vYK+4fHB4dl05O21qmikKLSi5VNyAaOBPQMsxw6CYKSBxw6ATj27nfeQKlmRQPZpqAH5OhYBGjxFjpsTLBNxgk7DQjCqDUtmtugvgdeLlpIxyNAelr34oaRqDMJQTrXuemxg/I8owymFW7KcaEkLHZAg9SwWJQfvZ4uoZvrRKiCOpbAmDF+rviYzEWk/jwHbGxIz0qjcX/N6qYnqfsZEkhoQdLkoSjk2Es8jwCFTQA2fWkKoYvZWTEdEWpsUEUbgrf68jp16qeW/Xua+VGPY+jgM7RBbpCHrpGDXSHmqiFKFLoGb2iN2fivDjvzseydcPJZ87QHzifP/WzkXc=</latexit> Corner-to-Corner Spacing w ≤ eolWidth <latexit sha1_base64="Xjl2NlYS/IYscB7kNQ47CiBlpoA=">AB+XicbVBNS8NAEN34WetX1KOXxVbwVJe7LHgxWMF+wFtKJvNpF262Q27m0oJ/SdePCji1X/izX/jts1BWx8MPN6bYWZemHKmjed9O1vbO7t7+6WD8uHR8cmpe3be0TJTFNpUcql6IdHAmYC2YZDL1VAkpBDN5zcLfzuFJRmUjyaWQpBQkaCxYwSY6Wh61af8IADBsm7LDLj6tCteDVvCbxJ/IJUIHW0P0aRJmCQhDOdG673upCXKiDKMc5uVBpiEldEJG0LdUkAR0kC8vn+Nrq0Q4lsqWMHip/p7ISaL1LAltZ0LMWK97C/E/r5+ZuBHkTKSZAUFXi+KMYyPxIgYcMQXU8JklhCpmb8V0TBShxoZVtiH46y9vk695ns1/6FeaTaKOEroEl2hG+SjW9RE96iF2oiKXpGr+jNyZ0X5935WLVuOcXMBfoD5/MHLd6Sqw=</latexit> <latexit sha1_base64="Xjl2NlYS/IYscB7kNQ47CiBlpoA=">AB+XicbVBNS8NAEN34WetX1KOXxVbwVJe7LHgxWMF+wFtKJvNpF262Q27m0oJ/SdePCji1X/izX/jts1BWx8MPN6bYWZemHKmjed9O1vbO7t7+6WD8uHR8cmpe3be0TJTFNpUcql6IdHAmYC2YZDL1VAkpBDN5zcLfzuFJRmUjyaWQpBQkaCxYwSY6Wh61af8IADBsm7LDLj6tCteDVvCbxJ/IJUIHW0P0aRJmCQhDOdG673upCXKiDKMc5uVBpiEldEJG0LdUkAR0kC8vn+Nrq0Q4lsqWMHip/p7ISaL1LAltZ0LMWK97C/E/r5+ZuBHkTKSZAUFXi+KMYyPxIgYcMQXU8JklhCpmb8V0TBShxoZVtiH46y9vk695ns1/6FeaTaKOEroEl2hG+SjW9RE96iF2oiKXpGr+jNyZ0X5935WLVuOcXMBfoD5/MHLd6Sqw=</latexit> w ≤ eolWidth w > eolWidth <latexit sha1_base64="tTCwZFMox0LwI3sFQk9NA4SxyU=">AB9XicbVA9SwNBEN3zM8avqKXNYiJYhbs0pKAjWUE8wHJGfb25pIle7vH7p4hHPkfNhaK2Ppf7Pw3bpIrNPHBwO9GWbmBQln2rjut7OxubW9s1vYK+4fHB4dl05O21qmikKLSi5VNyAaOBPQMsxw6CYKSBxw6ATj27nfeQKlmRQPZpqAH5OhYBGjxFjpsTLBNxgk7DQjCqDUtmtugvgdeLlpIxyNAelr34oaRqDMJQTrXuemxg/I8owymFW7KcaEkLHZAg9SwWJQfvZ4uoZvrRKiCOpbAmDF+rviYzEWk/jwHbGxIz0qjcX/N6qYnqfsZEkhoQdLkoSjk2Es8jwCFTQA2fWkKoYvZWTEdEWpsUEUbgrf68jp16qeW/Xua+VGPY+jgM7RBbpCHrpGDXSHmqiFKFLoGb2iN2fivDjvzseydcPJZ87QHzifP/WzkXc=</latexit> <latexit sha1_base64="tTCwZFMox0LwI3sFQk9NA4SxyU=">AB9XicbVA9SwNBEN3zM8avqKXNYiJYhbs0pKAjWUE8wHJGfb25pIle7vH7p4hHPkfNhaK2Ppf7Pw3bpIrNPHBwO9GWbmBQln2rjut7OxubW9s1vYK+4fHB4dl05O21qmikKLSi5VNyAaOBPQMsxw6CYKSBxw6ATj27nfeQKlmRQPZpqAH5OhYBGjxFjpsTLBNxgk7DQjCqDUtmtugvgdeLlpIxyNAelr34oaRqDMJQTrXuemxg/I8owymFW7KcaEkLHZAg9SwWJQfvZ4uoZvrRKiCOpbAmDF+rviYzEWk/jwHbGxIz0qjcX/N6qYnqfsZEkhoQdLkoSjk2Es8jwCFTQA2fWkKoYvZWTEdEWpsUEUbgrf68jp16qeW/Xua+VGPY+jgM7RBbpCHrpGDXSHmqiFKFLoGb2iN2fivDjvzseydcPJZ87QHzifP/WzkXc=</latexit> w > eolWidth Figure 8: C2C spacing does not apply. Figure 9: C2C spacing applies. 9 / 26

  12. Outline Introduction Preliminary Algorithms Experimental Results Conclusion 10 / 26

  13. Local Grid Graph Construction Metal 1 Metal 2 ◮ Expand route guides in preferred routing direction for full connections. ◮ Expand in x - and y -direction for each rip-up-and-reroute iteration. ◮ Extend to adjacent layers if the (a) Before Expansion. (b) Afer Expansion. numbers of violations exceed a threshold. Figure 10: Unconnected Route Guides. 10 / 26

  14. Pin Access ◮ Assign same-layer surrounding grid points as access points by default. ◮ Use diff-layer access points by an off-track via if no valid same-layer access points. ◮ Penalize other nets for using grid points above/below it before it is connected. OBS OBS D D SI SI SE SE Figure 11: No valid same-layer access point. Figure 12: Use off-track via 11 / 26

  15. Via Type Selection Flow LUT Construction For Each Rip-up and Reroute Iteration ◮ Construct via conflict lookup tables (LUTs). ◮ Determine via locations and generate routing Multi-threaded Via Locationing topology for a net. ◮ Perform via type selection for the net. Multi-threaded Type Selection ◮ Finally decide via type globally in a post refinement stage. Post-routing Type Selection Figure 13: Detailed Routing Flow. 12 / 26

  16. Via Conflict Lookup Table M3 track M4 track candidate via using via type 1 ◮ Via-pin/obstacle conflicts. neighboring via using via type 2 ◮ Via-wire conflicts. conflict w.r.t. neighboring via using via type 2 ◮ Via-via conflicts. violation-free locations forbidden locations/region Figure 14: Via-via LUT. 13 / 26

  17. Pessimistic Lookup Table M3 track ◮ Checking every via-type M4 track during routing is candidate via using via type 1 time-consuming. conflict w.r.t. via using via type 1 ◮ Merged LUTs records all conflict w.r.t. via using via type 2 suspicious conflicts. conflict w.r.t. via using via type 3 ◮ Suspicious conflicts can be violation-free locations verified when the via types forbidden regions union are determined. Figure 15: Merged Via-via LUT. 14 / 26

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend