FPGA Routing and Routability Estimation

Guaranteeing or even estimating the routability of a portion of a placed field programmable gate array (FPGA) remains difficult or impossible in most practical applications. In this paper, we develop a novel formulation of both routing and routability estimation that relies on a rendering of the routing constraints as a single large Boolean equation. Any satisfying assignment to this equation specifies a complete detailed routing. By representing the equation as a binary decision diagram (BDD), we represent all possible routes for all nets simultaneously. Routability estimation is transformed to Boolean satisfiability, which is trivial for BDD's. We use the technique in the context of a perfect routability estimator for a global router. Experimental results from a standard FPGA benchmark suite suggest the technique is feasible for realistic circuits, but refinements are needed for very large designs.

[1]  Malgorzata Marek-Sadowska,et al.  Graph based analysis of FPGA routing , 1993, EURO-DAC.

[2]  Rob A. Rutenbar,et al.  Performance-Driven Simultaneous Place and Route for Row-Based FPGAs , 1994, 31st Design Automation Conference.

[3]  R. Rudell Dynamic variable ordering for ordered binary decision diagrams , 1993, ICCAD 1993.

[4]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[5]  Jochen Bern,et al.  Efficient OBDD-Based Boolean Manipulation in CAD Beyond Current Limits , 1995, 32nd Design Automation Conference.

[6]  Rob A. Rutenbar,et al.  FPGA routing and routability estimation via Boolean satisfiability , 1997, FPGA '97.

[7]  Jonathan Rose,et al.  A detailed router for field-programmable gate arrays , 1992, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[8]  A. Kahng,et al.  A new approach to effective circuit clustering , 1992, 1992 IEEE/ACM International Conference on Computer-Aided Design.

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

[10]  Yao-Wen Chang,et al.  A New Global Routing Algorithm For FPGAs , 1994, IEEE/ACM International Conference on Computer-Aided Design.

[11]  Gabriele Saucier,et al.  Synthesis and floorplanning for large hierarchical FPGAs , 1997, FPGA '97.

[12]  Srinivas Devadas,et al.  Optimal layout via Boolean satisfiability , 1989, 1989 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[13]  Yao-Wen Chang,et al.  Algorithms for an FPGA switch module routing problem with application to global routing , 1997, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[14]  Randal E. Bryant,et al.  Efficient implementation of a BDD package , 1991, DAC '90.

[15]  Martine D. F. Schlag,et al.  On Routability Prediction for Field-Programmable Gate Arrays , 1993, 30th ACM/IEEE Design Automation Conference.

[16]  C. L. Berman Ordered binary decision diagrams and circuit structure , 1989, Proceedings 1989 IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[17]  Karem A. Sakallah,et al.  GRASP—a new search algorithm for satisfiability , 1996, ICCAD 1996.

[18]  Rob A. Rutenbar,et al.  FPGA routing and routability estimation via Boolean satisfiability , 1998, IEEE Trans. Very Large Scale Integr. Syst..

[19]  Dinesh Bhatia,et al.  Performance driven floorplanning for FPGA based designs , 1997, FPGA '97.

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

[21]  Rob A. Rutenbar,et al.  Performance-driven simultaneous place and route for island-style FPGAs , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[22]  Sinan Kaptanoglu,et al.  Segmented channel routing , 1991, DAC '90.