Verification of gate-level arithmetic circuits by function extraction

The paper presents an algebraic approach to functional verification of gate-level, integer arithmetic circuits. It is based on extracting a unique bit-level polynomial function computed by the circuit directly from its gate-level implementation. The method can be used to verify the arithmetic function computed by the circuit against its known specification, or to extract the arithmetic function implemented by the circuit. Experiments were performed on arithmetic circuits synthesized and mapped onto standard cells using ABC system. The results demonstrate scalability of the method to large arithmetic circuits, such as multipliers, multiply-accumulate, and other elements of arithmetic datapaths with up to 512-bit operands and over 2 Million gates. The procedure has linear runtime and memory complexity, measured by the number of logic gates.

[1]  Axel Jantsch,et al.  System level verification of digital signal processing applications based on the polynomial abstraction technique , 2005, ICCAD-2005. IEEE/ACM International Conference on Computer-Aided Design, 2005..

[2]  Priyank Kalla,et al.  Taylor Expansion Diagrams: A Canonical Representation for Verification of Data Flow Designs , 2006, IEEE Transactions on Computers.

[3]  Markus Wedler,et al.  STABLE: A new QF-BV SMT solver for hard verification problems combining Boolean reasoning with computer algebra , 2011, 2011 Design, Automation & Test in Europe.

[4]  R. Bryant,et al.  Verification of Arithmetic Functions with Binary Moment Diagrams , 1994 .

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

[6]  Jacob A. Abraham,et al.  Automatic Verification of Arithmetic Circuits in RTL Using Stepwise Refinement of Term Rewriting Systems , 2007, IEEE Transactions on Computers.

[7]  André Rossi,et al.  Arithmetic Bit-Level Verification Using Network Flow Model , 2013, Haifa Verification Conference.

[8]  Emmanuel Boutillon,et al.  Optimization of Data-Flow Computations Using Canonical TED Representation , 2009, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[9]  Mate Soos,et al.  Enhanced Gaussian Elimination in DPLL-based SAT Solvers , 2010, POS@SAT.

[10]  N. S. Barnett,et al.  Private communication , 1969 .

[11]  Deepak Kapur,et al.  Mechanical Verification of Adder Circuits using Rewrite Rule Laboratory , 1998, Formal Methods Syst. Des..

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

[13]  Israel Koren Computer arithmetic algorithms , 1993 .

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

[15]  Kwang-Ting Cheng,et al.  Using word-level ATPG and modular arithmetic constraint-solvingtechniques for assertion property checking , 2001, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

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

[17]  Hans Schönemann,et al.  SINGULAR: a computer algebra system for polynomial computations , 2001, ACCA.

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

[19]  Rolf Drechsler,et al.  RTL-datapath verification using integer linear programming , 2002, Proceedings of ASP-DAC/VLSI Design 2002. 7th Asia and South Pacific Design Automation Conference and 15h International Conference on VLSI Design.

[20]  André Rossi,et al.  Function Extraction from Arithmetic Bit-Level Circuits , 2014, 2014 IEEE Computer Society Annual Symposium on VLSI.

[21]  Sujeet Kumar,et al.  Automatic verification of Floating Point Units , 2014, 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC).

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

[23]  Anna Slobodová,et al.  Replacing Testing with Formal Verification in Intel CoreTM i7 Processor Execution Engine Validation , 2009, CAV.

[24]  Kurt Keutzer,et al.  Functional vector generation for HDL models using linear programming and 3-satisfiability , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[25]  Zhihong Zeng,et al.  Functional test generation based on word-level SAT , 2005, J. Syst. Archit..

[26]  Florian Enescu,et al.  Equivalence Verification of Polynomial Datapaths Using Ideal Membership Testing , 2007, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.