Automated Design of FPGAs Facilitated by Cycle-Free Routing

As device technology advances into the sub-10nm era, the design costs of Field Programmable Gate Arrays (FPGAs) built out of fully-custom, hand-layout blocks have increased dramatically. At the same time, Embedded FPGAs (eFPGAs) are picking up steam in heterogeneous system-on-chip designs, in which case supporting customizable FPGA architectures and reducing design costs are more crucial than squeezing the last bit of performance out of the transistors. To reduce the cost and complexity of FPGA designs, prior works have proposed to build FPGAs using Electronic Design Automation (EDA) tools and standard-cell libraries. Though functionally viable, this approach faces two challenges: 1) An accurate timing model is crucial for FPGA implementation tools to produce correct and optimal results. However, post-layout Static Timing Analysis (STA) with EDA tools is error-prone on FPGAs, because the typical FPGA routing graphs contain many cycles at design time. 2) Conventional FPGA design relies heavily on iterative/empirical improvements to achieve optimal floorplanning and time-budgeting. Without such insights, blocks may be shaped and constrained sub-optimally. This work addresses the first challenge by proposing an algorithm to derive cycle-free sub-graphs. A cycle-free subgraph is achieved by logically ranking the routing tracks and selectively removing some switch block connections. Each subgraph enables accurate, per-switch, post-layout STA, and the union of multiple sub-graphs covers all the timing arcs of the FPGA. Furthermore, our proposed approach addresses the second challenge by enabling the creation of intrinsically cycle-free FPGAs that facilitate a flat multi-block or full-chip design flow. By blending the blocks, the EDA tools can exploit more optimization opportunities and automatically adapt to heterogeneous blocks. Our experiments show that the routability of cycle-free routing graphs is comparable to conventional FPGA routing graphs, and the Quality of Results (QoR) of the FPGA layout is superior to the result of previous approaches.

[1]  Chak-Kuen Wong,et al.  Universal switch modules for FPGA design , 1996, TODE.

[2]  Steven J. E. Wilton,et al.  Architectures and algorithms for field-programmable gate arrays with embedded memory , 1997 .

[3]  The Turn Model for Adaptive Routing , 1998, 25 Years ISCA: Retrospectives and Reprints.

[4]  Charles E. Stroud,et al.  Using embedded FPGAs for SoC yield improvement , 2002, DAC '02.

[5]  Jonathan Rose,et al.  Design, layout and verification of an FPGA using automated tools , 2005, FPGA '05.

[6]  Resve A. Saleh,et al.  A "soft++" eFPGA physical design approach with case studies in 180nm and 90nm , 2006, IEEE Computer Society Annual Symposium on Emerging VLSI Technologies and Architectures (ISVLSI'06).

[7]  Scott Hauck,et al.  Reconfigurable Computing: The Theory and Practice of FPGA-Based Computation , 2007 .

[8]  Holger Blume,et al.  Design flow for embedded FPGAs based on a flexible architecture template , 2008, 2008 Design, Automation and Test in Europe.

[9]  James C. Hoe,et al.  Single-Chip Heterogeneous Computing: Does the Future Include Custom Logic, FPGAs, and GPGPUs? , 2010, 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture.

[10]  Hao Jun Liu,et al.  Archipelago - An Open Source FPGA with Toolflow Support , 2014 .

[11]  Sen Wang,et al.  VTR 7.0: Next Generation Architecture and CAD System for FPGAs , 2014, TRETS.

[12]  Jason Helge Anderson,et al.  Synthesizable FPGA fabrics targetable by the Verilog-to-Routing (VTR) CAD flow , 2015, 2015 25th International Conference on Field Programmable Logic and Applications (FPL).

[13]  Steven Trimberger,et al.  Three Ages of FPGAs: A Retrospective on the First Thirty Years of FPGA Technology , 2015, Proceedings of the IEEE.

[14]  Yu Wang,et al.  Going Deeper with Embedded FPGA Platform for Convolutional Neural Network , 2016, FPGA.

[15]  Giovanni De Micheli,et al.  FPGA-SPICE: A Simulation-Based Architecture Evaluation Framework for FPGAs , 2019, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[16]  D. Wentzlaff,et al.  PRGA: An Open-source Framework for Building and Using Custom FPGAs , 2019 .

[17]  Prashanth Mohan,et al.  A Top-Down Design Methodology for Synthesizing FPGA Fabrics Using Standard ASIC Flow , 2020, FPGA.