PathFinder: A Negotiation-Based Performance-Driven Router for FPGAs

Routing FPGAs is a challenging problem because of the relative scarcity of routing resources, both wires and connection points. This can lead either to slow implementations caused by long wiring paths that avoid congestion or a failure to route all signals. This paper presents PathFinder, a router that balances the goals of performance and routability. PathFinder uses an iterative algorithm that converges to a solution in which all signals are routed while achieving close to the optimal performance allowed by the placement. Routability is achieved by forcing signals to negotiate for a resource and thereby determine which signal needs the resource most. Delay is minimized by allowing the more critical signals a greater say in this negotiation. Because PathFinder requires only a directed graph to describe the architecture of routing resources, it adapts readily to a wide variety of FPGA architectures such as Triptych, Xilinx 3000 and mesh-connected arrays of FPGAs. The results of routing ISCAS benchmarks on the Triptych FPGA architecture show an average increase of only 4.5% in critical path delay over the optimum delay for a placement. Routes of ISCAS benchmarks on the Xilinx 3000 architecture show a greater completion rate than commercial tools, as well as 11% faster implementations.

[1]  Mikael Palczewski Plane parallel A* maze router and its application to FPGAs , 1992, [1992] Proceedings 29th ACM/IEEE Design Automation Conference.

[2]  Carl Ebeling,et al.  Placement and routing tools for the Triptych FPGA , 1995, IEEE Trans. Very Large Scale Integr. Syst..

[3]  Nils J. Nilsson,et al.  A Formal Basis for the Heuristic Determination of Minimum Cost Paths , 1968, IEEE Trans. Syst. Sci. Cybern..

[4]  Dwight D. Hill,et al.  A CAD system for the design of field programmable gate arrays , 1991, 28th ACM/IEEE Design Automation Conference.

[5]  Ralph Linsker,et al.  An Iterative-Improvement Penalty-Function-Driven Wire Routing System , 1984, IBM J. Res. Dev..

[6]  Joseph L. Ganley,et al.  An architecture-independent approach to FPGA routing based on multi-weighted graphs , 1994, EURO-DAC '94.

[7]  Robert J. Smith,et al.  Performance of Interconnection Rip-Up and Reroute Strategies , 1981, 18th Design Automation Conference.

[8]  Jonathan Rose,et al.  A detailed router for field-programmable gate arrays , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[9]  Carl Ebeling,et al.  The Triptych FPGA architecture , 1995, IEEE Trans. Very Large Scale Integr. Syst..

[10]  C. Y. Lee An Algorithm for Path Connections and Its Applications , 1961, IRE Trans. Electron. Comput..

[11]  Carl Ebeling,et al.  TRIPTYCH: An FPGA Architecture with Integrated Logic and Routing , 1992 .

[12]  Jon Frankle,et al.  Iterative and adaptive slack allocation for performance-driven layout and FPGA routing , 1992, [1992] Proceedings 29th ACM/IEEE Design Automation Conference.

[13]  Ravi Nair,et al.  A Simple Yet Effective Technique for Global Wiring , 1987, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[14]  Rob A. Rutenbar,et al.  KOAN/ANAGRAM II: new tools for device-level analog placement and routing , 1991 .

[15]  Larry McMurchie,et al.  Emerald - An Architecture-Driven Tool Compiler for FPGAs , 1996, Fourth International ACM Symposium on Field-Programmable Gate Arrays.

[16]  Edsger W. Dijkstra,et al.  A note on two problems in connexion with graphs , 1959, Numerische Mathematik.