Integrated retiming and placement for field programmable gate arrays

Retiming is a synchronous circuit transformation that can optimize the delay of a synchronous circuit by moving registers across combinational circuit elements. The combinational structure remains unchanged and the observable behavior of the circuit is identical to the original.In this paper, we address the problem of applying retiming techniques to circuits implemented in Field Programmable Gate Arrays (FPGAs). FPGAs contain prefabricated and configurable routing elements that allow us to easily implement a variety of circuits. However this interconnect contributes greatly to the overall delay in the implemented circuit. If a circuit is retimed prior to the placement and routing phases of the CAD flow, then it has no information about the delays introduced by the configurable interconnect. Our fundamental experiment is to determine whether there are any gains in tightly coupling retiming and placement so that the retiming algorithm has some estimate of the routing delays.Specifically, we introduce a post-placement retiming algorithm that understands how to take advantage of FPGA architectural features. This retiming algorithm may introduce extra registers into the circuit. These new registers need to be placed in some location in the FPGA. Retiming register placement is accomplished by a novel incremental clustering and placement algorithm. The incremental algorithm builds upon the placement of the non-retimed circuit to intelligently sift in the newly-introduced registers.In addition, we explore making the placement algorithms "retiming aware." These placement algorithms try to place logic blocks in such a way that the subsequent retiming produces better speed results. These techniques include the identification of retiming-critical cycles during placement.Our experiments show that the integration of retiming with placement results in 19% better clock periods in comparison to the application of retiming before the place and route steps.

[1]  Charles E. Leiserson,et al.  Optimizing synchronous systems , 1981, 22nd Annual Symposium on Foundations of Computer Science (sfcs 1981).

[2]  Jason Cong,et al.  Physical planning with retiming , 2000, IEEE/ACM International Conference on Computer Aided Design. ICCAD - 2000. IEEE/ACM Digest of Technical Papers (Cat. No.00CH37140).

[3]  Vaughn Betz,et al.  Architecture and CAD for Deep-Submicron FPGAS , 1999, The Springer International Series in Engineering and Computer Science.

[4]  Narendra V. Shenoy,et al.  Efficient implementation of retiming , 1994, ICCAD.

[5]  Andrew V. Goldberg,et al.  Negative-cycle detection algorithms , 1996, Math. Program..

[6]  Peichen Pan Continuous retiming: algorithms and applications , 1997, Proceedings International Conference on Computer Design VLSI in Computers and Processors.

[7]  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..

[8]  Sachin S. Sapatnekar,et al.  Efficient retiming of large circuits , 1998, IEEE Trans. Very Large Scale Integr. Syst..

[9]  Marios C. Papaefthymiou Understanding retiming through maximum average-weight cycles , 1991, SPAA '91.

[10]  C. L. Liu,et al.  Optimal clock period clustering for sequential circuits with retiming , 1997, Proceedings International Conference on Computer Design VLSI in Computers and Processors.

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

[12]  Chih-Liang Eric Cheng RISA: accurate and efficient placement routability modeling , 1994, ICCAD.