Recurrence Relations Revisited: Scalable Verification of Bit Level Multiplier Circuits

Although a lot of effort has been spent on verifying arithmetic designs, it is still a problem that has no general robust automated solution. One major challenge is verifying large scale multiplier circuits. For this purpose, we revisit the idea of using functional properties of the multiplication function, which can be expressed by recurrence equations. Then, instead of proving the equivalence of the implementation and a specification, the verification task is to show that the implementation satisfies the recurrence equation. We propose an approach which makes this verification task practically feasible for large scale multiplier circuits. Based on a combined add/multiply recurrence equation we can make efficient use of case splitting wrt. The partial products of the multiplier. As a result, the problem is split such that only a small part of the multiplier will be checked in every case, thereby avoiding redundant checks between the cases. Overall, our approach allows to verify a variety of multiplier designs in practical time. We present results for multipliers up to 128 bits.

[1]  H. Sharangpani,et al.  Statistical Analysis of Floating Point Flaw in the Pentium Processor , 1994 .

[2]  André Rossi,et al.  Verification of gate-level arithmetic circuits by function extraction , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[3]  Dominik Stoffel,et al.  Equivalence checking of arithmetic circuits on the arithmetic bit level , 2004, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[4]  Hossam A. H. Fahmy,et al.  Verification of the decimal floating-point square root operation , 2014, 2014 19th IEEE European Test Symposium (ETS).

[5]  Priyank Kalla,et al.  Efficient Gröbner basis reductions for formal verification of galois field multipliers , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[6]  Andreas Kuehlmann,et al.  Equivalence checking using cuts and heaps , 1997, DAC.

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

[8]  John Harrison,et al.  Floating-Point Verification , 2005, J. Univers. Comput. Sci..

[9]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[10]  Farimah Farahmandi,et al.  Groebner basis based formal verification of large arithmetic circuits using Gaussian elimination and cone-based polynomial extraction , 2015, Microprocess. Microsystems.

[11]  Kwang-Ting Cheng,et al.  Self-referential verification for gate-level implementations of arithmetic circuits , 2004, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[12]  N. Cutland Computability: An Introduction to Recursive Function Theory , 1980 .

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

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

[15]  Robert K. Brayton,et al.  ABC: An Academic Industrial-Strength Verification Tool , 2010, CAV.

[16]  R. Brayton,et al.  Improvements to Combinational Equivalence Checking , 2006, 2006 IEEE/ACM International Conference on Computer Aided Design.

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

[18]  Rolf Drechsler,et al.  Advanced Formal Verification , 2004 .

[19]  Sandeep K. Shukla,et al.  Simplification of C-RTL equivalent checking for fused multiply add unit using intermediate models , 2013, 2013 18th Asia and South Pacific Design Automation Conference (ASP-DAC).