A universal macro block mapping scheme for arithmetic circuits

A macro block is a functional unit that can be re-used in circuit designs. The problem of general macro block mapping is to identify such embedded parts, whose I/O signals are unknown, from the netlist that may have been optimized in various ways. The mapping results can then be used to ease the functional verification process or for replacement by more advanced intellectual property (IP) macros. In the past literatures, the mapping problem is mostly limited to the identification of a single adder or multiplier with I/O signals given, which is already NP-hard. However, in today's typical arithmetic circuits (like digital signal processing (DSP) applications), it is not unusual to have combinations of arithmetic operators implemented as macro blocks for performance gain. To solve this new practical mapping problem, we propose a flow to identify and build a forest of one-bit-adder trees using structural information and formal verification techniques, followed by algorithms that locate macro boundaries and I/O signal orders. Experimental results show that our algorithm is highly practical and scalable. It is capable of identifying any combinations of arbitrary adders and multipliers such as (a + b) × c and a × b + c × d +e × f, where each operand is a multi-bit constant or variable. Most of the benchmarks in ICCAD 2013 CAD Contest [1] can be well handled by our algorithm.

[1]  Priyank Kalla,et al.  Efficient Gröbner Basis Reductions for Formal Verification of Galois Field Arithmetic Circuits , 2013, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[2]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[3]  Masahiro Fujita,et al.  Polynomial datapath synthesis and optimization based on vanishing polynomial over Z2m and algebraic techniques , 2012, Tenth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMCODE2012).

[4]  Ted Stanion Implicit verification of structurally dissimilar arithmetic circuits , 1999, Proceedings 1999 IEEE International Conference on Computer Design: VLSI in Computers and Processors (Cat. No.99CB37040).

[5]  Kwang-Ting Cheng,et al.  Induction-based gate-level verification of multipliers , 2001, IEEE/ACM International Conference on Computer Aided Design. ICCAD 2001. IEEE/ACM Digest of Technical Papers (Cat. No.01CH37281).

[6]  Duen-Jeng Wang,et al.  Optimal complex operator mapping , 1997, Proceedings. Tenth Annual IEEE International ASIC Conference and Exhibit (Cat. No.97TH8334).

[7]  André Rossi,et al.  Algebraic approach to arithmetic design verification , 2011, 2011 Formal Methods in Computer-Aided Design (FMCAD).

[8]  Jiunn-Chern Chen,et al.  Equivalence checking of integer multipliers , 2001, Proceedings of the ASP-DAC 2001. Asia and South Pacific Design Automation Conference 2001 (Cat. No.01EX455).

[9]  Randal E. Bryant,et al.  Verification of Arithmetic Circuits with Binary Moment Diagrams , 1995, 32nd Design Automation Conference.

[10]  Dominik Stoffel,et al.  Verification of integer multipliers on the arithmetic bit level , 2001, IEEE/ACM International Conference on Computer Aided Design. ICCAD 2001. IEEE/ACM Digest of Technical Papers (Cat. No.01CH37281).

[11]  Robert K. Brayton,et al.  Using SAT for combinational equivalence checking , 2001, Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001.

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

[13]  Michael Quayle,et al.  Complex operator synthesis , 1994, Proceedings 1994 IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[14]  Kei-Yong Khoo,et al.  Improving Constant-Coefficient Multiplier Verification by Partial Product Identification , 2008, 2008 Design, Automation and Test in Europe.

[15]  Jason Cong,et al.  Cut ranking and pruning: enabling a general and efficient FPGA mapping solution , 1999, FPGA '99.

[16]  Giovanni De Micheli,et al.  Polynomial circuit models for component matching in high-level synthesis , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[17]  Giovanni De Micheli,et al.  Application of symbolic computer algebra in high-level data-flow synthesis , 2003, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[18]  Masahiro Fujita,et al.  Arithmetic Circuits Verification without Looking for Internal Equivalences , 2008, 2008 6th ACM/IEEE International Conference on Formal Methods and Models for Co-Design.

[19]  Gordon L. Smith,et al.  Boolean Comparison of Hardware and Flowcharts , 1982, IBM J. Res. Dev..