BPR: fast FPGA placement and routing using macroblocks

Numerous studies have shown the advantages of hardware and software co-design using FPGAs. However, increasingly lengthy place-and-route times represent a barrier to the broader adoption of this technology by significantly reducing designer productivity and turns-per-day, especially compared to more traditional design environments offered by competitive technologies such as GPUs. In this paper, we address this challenge by introducing a new approach to FPGA application design that significantly reduces compile times by exploiting the functional reuse common throughout modern FPGA applications, e.g. as shared code libraries and unchanged modules between compiles. To evaluate this approach, we introduce Block Place and Route (BPR), an FPGA CAD approach that modifies traditional placement and routing to operate at a higher-level of abstraction by pre-computing the internal placement and routing of reused cores. By extending traditional place-and-route algorithms such as simulated-annealing placement and negotiated-congestion routing to abstract away the detailed implementation of reused cores, we show that BPR is capable of orders-of-magnitude speedup in place-and-route over commercial tools with acceptably low overhead for a variety of applications.

[1]  Carl Ebeling,et al.  PathFinder: A Negotiation-Based Performance-Driven Router for FPGAs , 1995, Third International ACM Symposium on Field-Programmable Gate Arrays.

[2]  Gerard J. M. Smit,et al.  Towards Software Defined Radios Using Coarse-Grained Reconfigurable Hardware , 2008, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[3]  Scott Hauck,et al.  Runtime and quality tradeoffs in FPGA placement and routing , 2001, FPGA '01.

[4]  Frank Vahid,et al.  A study of the scalability of on-chip routing for just-in-time FPGA compilation , 2005, 13th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'05).

[5]  Andreas Koch Structured Design Implementation - A Strategy for Implementing Regular Datapaths on FPGAs , 1996, Fourth International ACM Symposium on Field-Programmable Gate Arrays.

[6]  Rina Dechter,et al.  Generalized best-first search strategies and the optimality of A* , 1985, JACM.

[7]  Matthew Shelburne,et al.  Wires on Demand: Run-Time Communication Synthesis for Reconfigurable Computing , 2007, 2007 International Conference on Field Programmable Logic and Applications.

[8]  James Coole,et al.  Intermediate fabrics: Virtual architectures for circuit portability and fast placement and routing , 2010, 2010 IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[9]  Brent E. Nelson,et al.  HMFlow: Accelerating FPGA Compilation with Hard Macros for Rapid Prototyping , 2011, 2011 IEEE 19th Annual International Symposium on Field-Programmable Custom Computing Machines.

[10]  André DeHon,et al.  The Density Advantage of Configurable Computing , 2000, Computer.

[11]  Russell Tessier Frontier: A Fast Placement System for FPGAs , 1999, VLSI.

[12]  Frank Vahid,et al.  Energy Advantages of Microprocessor Platforms with On-Chip Configurable Logic , 2002, IEEE Des. Test Comput..

[13]  Neil W. Bergmann,et al.  QUKU: a two-level reconfigurable architecture , 2006, IEEE Computer Society Annual Symposium on Emerging VLSI Technologies and Architectures (ISVLSI'06).

[14]  Frank Vahid,et al.  Dynamic FPGA routing for just-in-time FPGA compilation , 2004, Proceedings. 41st Design Automation Conference, 2004..

[15]  Vaughn Betz,et al.  FPGA routing architecture: segmentation and buffering to optimize speed and density , 1999, FPGA '99.

[16]  Jürgen Becker,et al.  Design and implementation of a coarse-grained dynamically reconfigurable hardware architecture , 2001, Proceedings IEEE Computer Society Workshop on VLSI 2001. Emerging Technologies for VLSI Systems.

[17]  Emil F. Girczyc,et al.  Increasing Design Quality and Engineering Productivity through Design Reuse , 1993, 30th ACM/IEEE Design Automation Conference.

[18]  Vaughn Betz,et al.  VPR: A new packing, placement and routing tool for FPGA research , 1997, FPL.