Simulation Bounds for Equivalence Verification of Arithmetic Datapaths with Finite Word-Length Operands

This paper addresses simulation-based verification of high-level descriptions of arithmetic datapaths. Instances of such designs are commonly found in DSP for audio, video and multimedia applications, where the word-lengths of input/output bit-vectors are fixed according to the desired precision. Initial descriptions of such systems are usually specified as Matlab/C code. These are then automatically translated into behavioural/RTL descriptions (HDL) for subsequent hardware synthesis. In order to verify that the initial Matlab/C model is bit-true equivalent to the translated RTL, how many simulation vectors need to be applied? This paper explores results from number theory and commutative algebra to show that exhaustive simulation is not necessary for testing their equivalence. In particular, we derive an upper bound on the number of simulation vectors required to prove equivalence or identify bugs. These vectors cannot be arbitrarily generated; we determine exactly those vectors that need to be simulated. Extensive experiments are performed within practical CAD settings to demonstrate the validity and applicability of these results

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

[2]  Károly Jordán Calculus of finite differences , 1951 .

[3]  Joel Moses,et al.  Symbolic integration: the stormy decade , 1966, CACM.

[4]  Daniel Brand Exhaustive simulation need not require an exponential number of tests , 1992, ICCAD '92.

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

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

[7]  Randal E. Bryant,et al.  A methodology for hardware verification based on logic simulation , 1987, JACM.

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

[9]  C. Pomerance,et al.  Prime Numbers: A Computational Perspective , 2002 .

[10]  David Singmaster,et al.  On polynomial functions (mod m) , 1974 .

[11]  Pablo Sanchez,et al.  Formal meaning of coverage metrics in simulation-based hardware design verification , 2005, Tenth IEEE International High-Level Design Validation and Test Workshop, 2005..

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

[13]  Rolf Ernst,et al.  Simulation-based verification for high-level synthesis , 1991, IEEE Design & Test of Computers.

[14]  G. de Micheli,et al.  Polynomial methods for component matching and verification , 1998, 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287).

[15]  Neil J. A. Sloane,et al.  The encyclopedia of integer sequences , 1995 .

[16]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[17]  Helmut Veith,et al.  Executable Protocol Specification in ESL , 2000, FMCAD.

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

[19]  Priyank Kalla,et al.  Equivalence verification of arithmetic datapaths with multiple word-length operands , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[20]  David L. Dill,et al.  Using Formal Specifications for Functional Validation of Hardware Designs , 2002, IEEE Des. Test Comput..

[21]  Adnan Aziz,et al.  Modeling design constraints and biasing in simulation using BDDs , 1999, 1999 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (Cat. No.99CH37051).

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

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

[24]  Zhibo Chen,et al.  On polynomial functions from Zn to Zm , 1995, Discret. Math..

[25]  Donald Ervin Knuth,et al.  The Art of Computer Programming, Volume II: Seminumerical Algorithms , 1970 .

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

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

[28]  Randal E. Bryant,et al.  Formal verification of memory circuits by switch-level simulation , 1991, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[29]  D. Dill,et al.  Deriving a simulation input generator and a coverage metric from a formal specification , 2002, Proceedings 2002 Design Automation Conference (IEEE Cat. No.02CH37324).

[30]  Donald E. Knuth,et al.  The art of computer programming. Vol.2: Seminumerical algorithms , 1981 .