Column-wise verification of multipliers using computer algebra

Verifying arithmetic circuits, and most prominently multipliers, is an important problem but in practice still requires substantial manual effort. Recent work tries to solve this issue using techniques from computer algebra. The most effective approach uses polynomial reasoning over pseudo boolean polynomials. In this paper we give a rigorous formalization of this approach and present a new column-wise verification technique for the correctness of gate-level multipliers which does not require the reduction of a full word-level specification. We formally prove soundness and completeness of our technique, making use of our precise formalization. Our experiments show that simple multipliers can be verified efficiently by using off-the-shelf computer algebra tools, while more complex and optimized multipliers require more sophisticated techniques. Further, our paper independently confirms the effectiveness of previous related work. We make all benchmarks and tools publicly available.

[1]  Paliath Narendran,et al.  An Ideal-Theoretic Approach to Work Problems and Unification Problems over Finitely Presented Commutative Algebras , 1985, RTA.

[2]  Rolf Drechsler,et al.  Formal verification of integer multipliers by combining Gröbner basis with logic reduction , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[3]  Armin Biere,et al.  Boolector 2.0 , 2015, J. Satisf. Boolean Model. Comput..

[4]  Armin Biere,et al.  Effective Preprocessing in SAT Through Variable and Clause Elimination , 2005, SAT.

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

[6]  David A. Cox,et al.  Ideals, Varieties, and Algorithms , 1997 .

[7]  Randal E. Bryant,et al.  Verification of arithmetic circuits using binary moment diagrams , 2001, International Journal on Software Tools for Technology Transfer.

[8]  Markus Wedler,et al.  An Algebraic Approach for Proving Data Correctness in Arithmetic Data Paths , 2008, CAV.

[9]  Israel Koren Computer arithmetic algorithms , 1993 .

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

[11]  Malay K. Ganai,et al.  Robust Boolean reasoning for equivalence checking and functional property verification , 2002, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[12]  André Rossi,et al.  Formal Verification of Arithmetic Circuits by Function Extraction , 2016, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[13]  Armin Biere,et al.  Boolector 2 . 0 system description , 2015 .

[14]  Paul Beame,et al.  Towards Verifying Nonlinear Integer Arithmetic , 2017, CAV.

[15]  Armin Biere,et al.  Simulating Circuit-Level Simplifications on CNF , 2011, Journal of Automated Reasoning.

[16]  Armin Biere,et al.  Collection of Combinational Arithmetic Miters Submitted to the SAT Competition 2016 , 2016 .

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

[18]  Tim Pruss,et al.  Equivalence verification of large Galois field arithmetic circuits using word-level abstraction via Gröbner bases , 2014, 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC).

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

[20]  Takafumi Aoki,et al.  Formal Design of Arithmetic Circuits Based on Arithmetic Description Language , 2006, IEICE Trans. Fundam. Electron. Commun. Comput. Sci..

[21]  Edmund M. Clarke,et al.  Verification of All Circuits in a Floating-Point Unit Using Word-Level Model Checking , 1996, FMCAD.

[22]  David Naccache,et al.  Gröbner Basis , 2011, Encyclopedia of Cryptography and Security.

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

[24]  Rolf Drechsler,et al.  Equivalence checking using Gröbner bases , 2016, 2016 Formal Methods in Computer-Aided Design (FMCAD).