Formal verification in hardware design: a survey
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Modular Verification of SRT Division
Formal Methods in System Design
A Mechanically Checked Proof of Correctness of the AMD K5 Floating Point Square Root Microcode
Formal Methods in System Design
Formalization of Cadence SPW Fixed-Point Arithmetic in HOL
IFM '02 Proceedings of the Third International Conference on Integrated Formal Methods
Design of a high-speed, low-noise CMOS data output buffer
Integration, the VLSI Journal
Formalization of fixed-point arithmetic in HOL
Formal Methods in System Design
Design of a high-speed, low-noise CMOS data output buffer
Integration, the VLSI Journal
Hi-index | 0.00 |
Many modern microprocessors implement floating point square root hardware using subtractive algorithms. Such processors include the HP PA7200, the MIPS R4400, and the Intel Pentium. The Intel Pentium division bug highlights the importance of verifying such implementations. In this paper we discuss the verification of a radix-2 square root unit similar to that used in the MIPS R4400. The verification is done by theorem proving to bridge the gap between the algorithm and the implementation. At the top level, we verify that a subtractive, non-restoring algorithm correctly calculates the square root function. We then show a series of optimizing transformations that refine the top level algorithm into the hardware implementation. Each transformation can be verified. We show the transformation of the top level proof to a level that is closer to the hardware implementation. The implementation is at the RTL level, and consists of a structural description of the hardware including an adder/subtracter, simple combinational hardware and some registers.