A fast algorithm for minimizing FPGA combinational and sequential modules

We present a quadratic-time algorithm for minimizing the number of modules in an FPGA with combinational and sequential modules (like the C-modules and S-modules of the ACT2 and ACT3 architectures). The constraint is that a combinational module can be combined with one flip-flop in a single sequential module, only if the combinational module drives no other combinational modules. Our algorithm uses a minimum-cost flow formulation to solve the problem with a significant time improvement over a previous approach that used a general linear program.

[1]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[2]  Pravin M. Vaidya,et al.  Speeding-up linear programming using fast matrix multiplication , 1989, 30th Annual Symposium on Foundations of Computer Science.

[3]  Kenneth Steiglitz,et al.  Combinatorial Optimization: Algorithms and Complexity , 1981 .

[4]  Martin D. F. Wong,et al.  On retiming for FPGA logic module minimization , 1994, Proceedings 1994 IEEE International Conference on Computer Design: VLSI in Computers and Processors.