Equivalence verification of arithmetic datapaths with multiple word-length operands

This paper addresses the problem of equivalence verification of RTL descriptions that implement arithmetic computations (add, mult, shift) over bit-vectors that have differing bit-widths. Such designs are found in many DSP applications where the widths of input and output bit-vectors are dictated by the desired precision. A bit-vector of size n can represent integer values from 0 to 2n - 1; i.e. integers reduced modulo 2n. Therefore, to verify bit-vector arithmetic over multiple word-length operands, we model the RTL datapath as a polynomial function from Z2n1 times Z2n2 times ... Z2nd to Z2m. Subsequently, RTL equivalence f equiv g is solved by proving whether (f - g) equiv 0 over such mappings. Exploiting concepts from number theory and commutative algebra, a systematic, complete algorithmic procedure is derived for this purpose. Experimentally, we demonstrate how this approach can be applied within a practical CAD setting. Using our approach, we verify a set of arithmetic datapaths at RTL where contemporary approaches prove to be in feasible

[1]  Paolo Ienne,et al.  Improved use of the carry-save representation for the synthesis of complex arithmetic circuits , 2004, IEEE/ACM International Conference on Computer Aided Design, 2004. ICCAD-2004..

[2]  Markus Wedler,et al.  Normalization at the arithmetic bit level , 2005, Proceedings. 42nd Design Automation Conference, 2005..

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

[4]  Tatiana Tabirca,et al.  Java concurrent program for the Samarandache function , 2002 .

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

[6]  Priyank Kalla,et al.  Equivalence verification of polynomial datapaths with fixed-size bit-vectors using finite ring algebra , 2005, ICCAD-2005. IEEE/ACM International Conference on Computer-Aided Design, 2005..

[7]  Erich Kaltofen,et al.  Computer algebra handbook , 2002 .

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

[9]  Tiziano Villa,et al.  VIS: A System for Verification and Synthesis , 1996, CAV.

[10]  Harald Ruess,et al.  An Efficient Decision Procedure for the Theory of Fixed-Sized Bit-Vectors , 1997, CAV.

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

[12]  Zhibo Chen,et al.  On polynomial functions from Zn1 × Zn2 × ... × Znr to Zm , 1996, Discret. Math..

[13]  Zhihong Zeng,et al.  Taylor expansion diagrams: a compact, canonical representation with applications to symbolic verification , 2002, Proceedings 2002 Design, Automation and Test in Europe Conference and Exhibition.

[14]  Priyank Kalla,et al.  Exploiting vanishing polynomials for equivalence verification of fixed-size arithmetic datapaths , 2005, 2005 International Conference on Computer Design.

[15]  Paolo Ienne,et al.  Improved use of the carry-save representation for the synthesis of complex arithmetic circuits , 2004, ICCAD 2004.

[16]  Heinz Kredel,et al.  Gröbner Bases: A Computational Approach to Commutative Algebra , 1993 .

[17]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[18]  David L. Dill,et al.  A decision procedure for bit-vector arithmetic , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[19]  Rolf Drechsler,et al.  The K*BMD: A Verification Data Structure , 1997, IEEE Des. Test Comput..

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

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

[22]  Ranga Vemuri,et al.  Automatic data path abstraction for verification of large scale designs , 1998, Proceedings International Conference on Computer Design. VLSI in Computers and Processors (Cat. No.98CB36273).

[23]  Dhiraj K. Pradhan,et al.  MODD: a new decision diagram and representation for multiple output binary functions , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[24]  Florentin Smarandache A Function in the Number Theory , 2004 .

[25]  Trevor Mudge,et al.  MiBench: A free, commercially representative embedded benchmark suite , 2001 .

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

[27]  Oscar H. Ibarra,et al.  Probabilistic Algorithms for Deciding Equivalence of Straight-Line Programs , 1983, JACM.

[28]  K. Keane,et al.  A MATLAB to VHDL Conversion Toolbox for Digital Control , 2000 .

[29]  François Charot,et al.  Automatic floating-point to fixed-point conversion for DSP code generation , 2002, CASES '02.

[30]  Katarzyna Radecka,et al.  Specifying and verifying imprecise sequential datapaths by Arithmetic Transforms , 2002, ICCAD 2002.

[31]  V. J. Mathews,et al.  Polynomial Signal Processing , 2000 .