Verification of Floating-Point Adders

In this paper, we present a “black box” version of verification of FP adders. In our approach, FP adders are verified by an extended word-level SMV using reusable specifications without knowing the circuit implementation. Wordlevel SMV is improved by using Multiplicative Power HDDs (PHDDs), and by incorporating conditional symbolic simulation as well as a short-circuiting technique. Based on a case analysis, the adder specification is divided into several hundred implementation-independent sub-specifications. We applied our system and these specifications to verify the IEEE double precision FP adder in the Aurora III Chip from the University of Michigan. Our system found several design errors in this FP adder. Each specification can be checked in less than 5 minutes. A variant of the corrected FP adder was created to illustrate the ability of our system to handle different FP adder designs. For each adder, the verification task finished in 2 CPU hours on a Sun UltraSPARC-11 server.

[1]  Olivier Coudert,et al.  A unified framework for the formal verification of sequential circuits , 1990, ICCAD 1990.

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

[3]  E.M. Clarke,et al.  Hybrid decision diagrams. Overcoming the limitations of MTBDDs and BMDs , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[4]  Koichiro Mashiko,et al.  Leading-zero anticipatory logic for high-speed floating point addition , 1995 .

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

[6]  Carl-Johan H. Seger,et al.  The formal verification of a pipelined double-precision IEEE floating-point multiplier , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[7]  Olivier Coudert,et al.  A unified framework for the formal verification of sequential circuits , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[8]  Miriam Leeser,et al.  Verification of a subtractive radix-2 square root algorithm and implementation , 1995, Proceedings of ICCD '95 International Conference on Computer Design. VLSI in Computers and Processors.

[9]  Michael J. Flynn,et al.  Design And Implementation Of The Snap Floating-Point Adder , 1991 .

[10]  Randal E. Bryant,et al.  *PHDD: an efficient graph representation for floating point circuit verification , 1997, 1997 Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[11]  Paul S. Miner,et al.  Specification of the ieee-854 floating-point standard in hol and pvs , 1995 .

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

[13]  R. Bryant,et al.  PHDD: an efficient graph representation for floating point circuit verification , 1997, ICCAD 1997.

[14]  Randal E. Bryant,et al.  Formal hardware verification by symbolic ternary trajectory evaluation , 1991, 28th ACM/IEEE Design Automation Conference.

[15]  Michael L. Schmit Floating-Point Math , 1995 .

[16]  Ganesh Gopalakrishnan,et al.  Efficient symbolic simulation-based verification using the parametric form of Boolean expressions , 1994, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[17]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[18]  Masahiro Fujita,et al.  Spectral Transforms for Large Boolean Functions with Applications to Technology Mapping , 1993, 30th ACM/IEEE Design Automation Conference.

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

[20]  Edmund M. Clarke,et al.  Word level model checking—avoiding the Pentium FDIV error , 1996, DAC '96.

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

[22]  Natarajan Shankar,et al.  Modular Verification of SRT Division , 1996, CAV.

[23]  Thomas Richard Huff,et al.  Architectural and Circuit Issues for a High Clock Rate Floating-Point Processor. , 1995 .

[24]  Bishop Brock,et al.  ACL2 Theorems About Commercial Microprocessors , 1996, FMCAD.

[25]  Rolf Drechsler,et al.  K*BMDs: a new data structure for verification , 1996, Proceedings ED&TC European Design and Test Conference.

[26]  Shuzo Yajima,et al.  Efficient construction of binary moment diagrams for verifying arithmetic circuits , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).