Self-referential verification for gate-level implementations of arithmetic circuits

Verification of gate-level implementations of arithmetic circuits is challenging for a number of reasons: the existence of some hard-to-verify arithmetic operators, the use of different operand ordering, the incorporation of merged arithmetic with cross-operator implementations, and the employment of circuit transformations based on arithmetic relations. It is hence a peculiar problem that does not fit well within the existing register-transfer-level-to-gate equivalence-checking methodology. We propose a self-referential functional verification approach which uses the gate-level implementation of the arithmetic circuit under verification to verify itself. The verification task is decomposed into a sequence of equivalence-checking subproblems, each of which compares structurally similar circuit pairs derived from the implementation under verification. These equivalence-checking subproblems represent the functional equations that uniquely define the intended arithmetic function. Based on these self-referential functional equations, a decomposition heuristic using structural information is employed to guide the verification process for better efficiency. Experimental results on a number of implementations of the multipliers, the multiply-add units, and the inner product units with different architectures demonstrate the versatility of this approach.

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

[2]  Shi-Yu Huang,et al.  Formal Equivalence Checking and Design Debugging , 1998 .

[3]  Thomas Kropf,et al.  Introduction to Formal Hardware Verification , 1999, Springer Berlin Heidelberg.

[4]  Kwang-Ting Cheng,et al.  Self-referential verification for gate-level implementations of arithmetic circuits , 2004, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[5]  Randal E. Bryant,et al.  On the Complexity of VLSI Implementations and Graph Representations of Boolean Functions with Application to Integer Multiplication , 1991, IEEE Trans. Computers.

[6]  Steven M. German Introduction to the Special Issue on Verification of Arithmetic Hardware , 1999, Formal Methods Syst. Des..

[7]  Fabio Somenzi,et al.  CUDD: CU Decision Diagram Package Release 2.2.0 , 1998 .

[8]  Alan L. Migdall,et al.  Correlated‐Photon Metrology Without Absolute Standards , 1999 .

[9]  Taewhan Kim,et al.  Arithmetic optimization using carry-save-adders , 1998, DAC.

[10]  Shinji Kimura Residue BDD and Its Application to the Verification of Arithmetic Circuits , 1995, 32nd Design Automation Conference.

[11]  Robert K. Brayton The future of logic synthesis and verification , 2001 .

[12]  Zheng Zhou,et al.  Equivalence Checking of Datapaths Based on Canonical Arithmetic Expressions , 1995, 32nd Design Automation Conference.

[13]  Rolf Drechsler,et al.  Polynomial formal verification of of multipliers , 1997, Proceedings. 15th IEEE VLSI Test Symposium (Cat. No.97TB100125).

[14]  Rolf Drechsler,et al.  Polynomial Formal Verification of Multipliers , 2003, Formal Methods Syst. Des..

[15]  Jiunn-Chern Chen,et al.  Equivalence checking of integer multipliers , 2001, ASP-DAC '01.

[16]  Behrooz Parhami,et al.  Computer arithmetic - algorithms and hardware designs , 1999 .

[17]  David L. Dill,et al.  Self-Consistency Checking , 1996, FMCAD.

[18]  In-Ho Moon,et al.  Simplifying Circuits for Formal Verification Using Parametric Representation , 2002, FMCAD.

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

[20]  Miodrag Potkonjak,et al.  Optimizing resource utilization using transformations , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[21]  Taewhan Kim,et al.  Optimal allocation of carry-save-adders in arithmetic optimization , 1999, 1999 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (Cat. No.99CH37051).

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

[23]  Masahiro Fujita,et al.  Verification of Arithmetic Circuits by Comparing Two Similar Circuits , 1996, CAV.

[24]  Shuzo Yajima,et al.  Efficient construction of binary moment diagrams for verifying arithmetic circuits , 1995, ICCAD.

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

[26]  E. Swartzlander Merged Arithmetic , 1980, IEEE Transactions on Computers.

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

[28]  Daniel Brand Verification of large synthesized designs , 1993, ICCAD.

[29]  Carl-Johan H. Seger,et al.  CLEVER: Divide and Conquer Combinational Logic Equivalence VERification with False Negative Elimination , 2001, CAV.