Abstract
This paper presents the formal verification of all sub-circuits in a floating-point arithmetic unit (FPU) from an Intel microprocessor using a word-level model checker. This work represents the first large-scale application of word-level model checking techniques. The FPU can perform addition, subtraction, multiplication, square root, division, remainder, and rounding operations; verifying such a broad range of functionality required coupling the model checker with a number of other techniques, such as property decomposition, property-specific model extraction, and latch removal. We will illustrate our verification techniques using the Weitek WTL3170/3171 Sparc floating point coprocessor as an example. The principal contribution of this paper is a practical verification methodology explaining what techniques to apply (and where to apply them) when verifying floating-point arithmetic circuits. We have applied our methods to the floating-point unit of a state-of-the-art Intel microprocessor, which is capable of extended precision (64-bit mantissa) computation. The success of this effort demonstrates that word-level model checking, with the help of other verification techniques, can verify arithmetic circuits of the size and complexity found in industry.
Preview
Unable to display preview. Download preview PDF.
References
D. E. Atkins. Higher-radix division using estimates of the divisor and partial remainders. IEEE Transactions on Computers, C-17(10):925–934, October 1968.
R.E. I. Beer, S. Ben-David, C. Eisner, and Avner Landver. Rulebase: an industry-oriented formal verification tool. In Proceedings of the 33rd Design Automation Conference. IEEE Computer Society Press, June 1996.
R. E. Bryant and Y. A. Chen. Verification of arithmetic functions with binary moment diagrams. In Proceedings of the 32nd ACM/IEEE Design Automation Conference, pages 535–541. IEEE Computer Society Press, June 1995.
R. E. Bryant. On the complexity of vlsi implementations and graph representations of boolean functions with application to integer multiplication. IEEE Transactions on Computers, 40(2):205–213, 1991.
R.E. Bryant. Bit-level analysis of an srt divider circuit. Technical report, Carnegie Mellon University, 1995.
M. Birman, A. Samuels, G. Chu, T. Chuk, L. Hu, J. McLeod, and J. Barnes. Developing the wtl3170/3171 sparc floating-point coprocessors. IEEE Micro, pages 55–64, February 1990.
J. Bannur and A. Varma. The vlsi implementation of a square root algorithm. In Proceedings of the 7th Symposium on Computer Arithmetic, pages 159–165. IEEE Computer Society Press, 1985.
E. M. Clarke, M. Fujita, and X. Zhao. Hybrid decision diagrams — overcoming the limitations of mtbdds and bmds. In Proceedings of the 1995 Proceedings of the IEEE International Conference on Computer Aided Design, pages 159–163. IEEE Computer Society Press, November 1995.
E. M. Clarke, M. Khaira, and X. Zhao. Word level symbolic model checking — a new approach for verifying arithmetic circuits. In Proceedings of the 33rd ACM/IEEE Design Automation Conference. IEEE Computer Society Press, June 1996.
E. M. Clarke, K. McMillan, X. Zhao, M. Fujita, and J. Yang. Spectral transforms for large boolean functions with applications to technology mapping. In Proceedings of the 30th ACM/IEEE Design Automation Conference, pages 54–60. IEEE Computer Society Press, June 1993.
T. Coe. Inside the pentium fdiv bug. Dr. Dobbs Journal, 20(4):129–135, April 1995.
C. V. Frieman. Statistical analysis of certain arithmetic binary division algorithms. IRE Transaction, pages 91–103, January 1961.
K. Hamaguchi, A. Morita, and S. Yajima. Efficient construction of binary moment diagrams for verifying arithmetic circuits. In Proceedings of the 1995 IEEE International Conference on Computer Aided Design, pages 78–82, November 1995.
J. L. Hennessy and D. A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, 1996.
R. P. Kurshan and L. Lamport. Verification of a multiplier: 64 bits and beyond. In C. Courcoubetis, editor, Proceedings of the Fifth Workshop on Computer-Aided Verification, June/July 1993.
K. L. McMillan. Symbolic Model Checking. Kluwer Academic Publishers, 1993.
J. O'Leary, M. Leeser, J. Hickey, and M. Aagaard. Non-restoring integer square root: a case study in design by principled optimization. In Proceedings of the Theorem Provers in Circuit Design '94, volume 901 of Lecture Notes in Computer Science. Springer-Verlag, 1995.
R. Rudell. Dynamic variable ordering for ordered binary decision diagrams. In Intl. Conf. on Computer Aided Design, Santa Clara, Ca., November 1993.
H. P. Sharangpani and M. L. Barton. Statistical analysis of floating point flaw in the pentium processor(1994). Technical report, Intel Corporation, November 1994.
D. Verkest, L. Claesen, and H. De Man. A proof of the nonrestoring division algorithm and its implementation on an alu. Formal Methods in System Design, 4:5–31, January 1994.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chen, YA. et al. (1996). Verification of all circuits in a floating-point unit using word-level model checking. In: Srivas, M., Camilleri, A. (eds) Formal Methods in Computer-Aided Design. FMCAD 1996. Lecture Notes in Computer Science, vol 1166. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0031797
Download citation
DOI: https://doi.org/10.1007/BFb0031797
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61937-6
Online ISBN: 978-3-540-49567-3
eBook Packages: Springer Book Archive