Trading quality for compile time: ultra-fast placement for FPGAs

The demand for high-speed FPGA compilation tools has occured for three reasons: first, as FPGA device capacity has grown, the computation time devoted to placement and routing has grown more dramatically than the compute power of the available computers. Second, there exists a subset of users who are willing to accept a reduction in the quality of result in exchange for a high-speed compilation. Third, high-speed compile has been a long-standing desire of users of FPGA-based custom computing machines, since their compile time requirements are ideally closer to those of regular computers. This paper focuses on the placement phase of the compile process, and presents an ultra-fast placement algorithm targeted to FPGAs. The algorithm is based on a combination of multiple-level, bottom-up clustering and hierarchical simulated annealing. It provides superior area results over a known high-quality placement tool on a set of large benchmark circuits, when both are restricted to a short run time. For example, it can generate a placement for a 100,000-gate circuit in 10 seconds on a 300 MHz Sun UltraSPARC workstation that is only 33% worse than a high-quality placement that takes 524 seconds using a pure simulated annealing implementation. In addition, operating in its fastest mode, this tool can provide an accurate estimate of the wirelength achievable with good quality placement. This can be used, in conjunction with a routing predictor, to very quickly determine the routability of a given circuit on a given FPGA device.

[1]  Vaughn Betz,et al.  A fast routability-driven router for FPGAs , 1998, FPGA '98.

[2]  Yaska Sankar,et al.  Ultra-fast automatic placement for FPGAs , 1999 .

[3]  Carl Sechen,et al.  VLSI Placement and Global Routing Using Simulated Annealing , 1988 .

[4]  Victor Lee,et al.  The RAW benchmark suite: computation structures for general purpose computing , 1997, Proceedings. The 5th Annual IEEE Symposium on Field-Programmable Custom Computing Machines Cat. No.97TB100186).

[5]  Stephan W. Gehring,et al.  Fast integrated tools for circuit design with FPGAs , 1998, FPGA '98.

[6]  Pierre Marchal,et al.  Field-programmable gate arrays , 1999, CACM.

[7]  Jonathan Rose,et al.  The Transmogrifier-2: a 1 million gate rapid prototyping system , 1997, FPGA '97.

[8]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[9]  Jonathan Rose,et al.  Temperature measurement and equilibrium dynamics of simulated annealing placements , 1990, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[10]  Carl Sechen,et al.  Efficient and effective placement for very large circuits , 1993, ICCAD.

[11]  Jonathan Rose,et al.  Generation of synthetic sequential benchmark circuits , 1997, FPGA '97.

[12]  A. Sangiovanni-Vincentelli,et al.  The TimberWolf placement and routing package , 1985, IEEE Journal of Solid-State Circuits.

[13]  Jason Cong,et al.  FlowMap: an optimal technology mapping algorithm for delay optimization in lookup-table based FPGA designs , 1994, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[14]  John Wawrzynek,et al.  Fast module mapping and placement for datapaths in FPGAs , 1998, FPGA '98.

[15]  Brian W. Kernighan,et al.  A Procedure for Placement of Standard-Cell VLSI Circuits , 1985, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[16]  Georg Sigl,et al.  GORDIAN: VLSI placement by quadratic programming and slicing optimization , 1991, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[17]  Jordan S. Swartz A High-Speed Timing-Aware Router for FPGAs , 1998 .

[18]  Vaughn Betz Architecture and CAD for speed and area optimization of FPGAs , 1998 .

[19]  Russell Tessier,et al.  Fast place and route approaches for fpgas , 1999 .

[20]  David M. Lewis,et al.  Procedural texture mapping on FPGAs , 1999, FPGA '99.

[21]  Carl Sechen,et al.  A timing driven N-way chip and multi-chip partitioner , 1993, Proceedings of 1993 International Conference on Computer Aided Design (ICCAD).

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

[23]  Pinaki Mazumder,et al.  VLSI cell placement techniques , 1991, CSUR.