Centaur Technology Media Unit Verification

Case Study: Floating-Point Addition
  • Warren A. HuntJr.
  • Sol Swords
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5643)

Abstract

We have verified floating-point addition/subtraction instructions for the media unit from Centaur’s 64-bit, X86-compatible microprocessor. This unit implements over one hundred instructions, with the most complex being floating-point addition/subtraction. This media unit can add/subtract four pairs of floating-point numbers every clock cycle with an industry-leading two-cycle latency.

Using the ACL2 theorem proving system, we model the media unit by translating its Verilog design into an HDL that we have deeply embedded in the ACL2 logic. We specify the addition/subtraction instructions as integer-based ACL2 functions. Using a combination of AIG- and BDD-based symbolic simulation, case splitting, and theorem proving, we produce a mechanically checked theorem in ACL2 for each instruction examined stating that the hardware model yields the same result as the instruction specification.

In pursuit of these verifications, we implemented a formal HDL and symbolic simulation framework, including formally verified BDD and AIG operators, within the ACL2 theorem proving system. The HDL includes an extensible interpreter capable of performing concrete and symbolic simulations as well as non-functional analyses. We know of no other symbolic simulation-based floating-point verification that is performed within a single formal system and produces a theorem in that system without relying on unverified external tools.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Kaufmann, M., Moore, J.S., Boyer, R.S.: ACL2 version 3.4 (2009), http://www.cs.utexas.edu/~moore/acl2/
  2. 2.
    Davis, J.: VL Verilog translator (unpublished)Google Scholar
  3. 3.
    Krug, R.: Correctness proof of ACL2 floating-point addition specification (unpublished)Google Scholar
  4. 4.
    Hunt Jr., W.A., Swords, S.: Use of the E language. In: Hardware design and Functional Languages (2009)Google Scholar
  5. 5.
    Aagaard, M.D., Jones, R.B., Seger, C.J.H.: Formal verification using parametric representations of boolean constraints. In: Proceedings of the 36th Design Automation Conference, pp. 402–407 (1999)Google Scholar
  6. 6.
    Jones, R.B.: Symbolic Simulation Methods for Industrial Formal Verification. Kluwer Academic Publishers, Dordrecht (2002)CrossRefGoogle Scholar
  7. 7.
    Jacobi, C., Weber, K., Paruthi, V., Baumgartner, J.: Automatic formal verification of fused-multiply-add FPUs. In: Proceedings of Design, Automation and Test in Europe, vol. 2, pp. 1298–1303 (2005)Google Scholar
  8. 8.
    Chen, Y., Bryant, R.E.: Verification of floating-point adders. In: Y. Vardi, M. (ed.) CAV 1998. LNCS, vol. 1427. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  9. 9.
    Seger, C.J.H., Jones, R.B., O’Leary, J.W., Melham, T., Aagaard, M.D., Barrett, C., Syme, D.: An industrially effective environment for formal hardware verification. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 24(9), 1381 (2005)CrossRefGoogle Scholar
  10. 10.
    IEEE Computer Society: IEEE Standard for Floating-Point Arithmetic. IEEE std 754TM-2008 edn. (2008)Google Scholar
  11. 11.
    University of California at Berkeley, Department of Electrical Engineering and Computer Science, Industrial Liaison Program: A compact test suite for P754 arithmetic – version 2.0Google Scholar
  12. 12.
    Boyer, R.S., Warren, A., Hunt, J.: Symbolic simulation in ACL2. In: Proceedings of the Eighth International Workshop on the ACL2 Theorem Prover and its Applications (2009)Google Scholar
  13. 13.
    Russinoff, D.: A case study in formal verification of Register-Transfer logic with ACL2: the floating point adder of the AMD Athlon (TM) processor. In: Johnson, S.D., Hunt Jr., W.A. (eds.) FMCAD 2000. LNCS, vol. 1954, pp. 3–36. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  14. 14.
    Slobodová, A.: Challenges for formal verification in industrial setting. In: Brim, L., Haverkort, B.R., Leucker, M., van de Pol, J. (eds.) FMICS 2006 and PDMC 2006. LNCS, vol. 4346, pp. 1–22. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  15. 15.
    Harrison, J.: Floating-point verification using theorem proving. In: Bernardo, M., Cimatti, A. (eds.) SFM 2006. LNCS, vol. 3965, pp. 211–242. Springer, Heidelberg (2006)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Warren A. HuntJr.
    • 1
  • Sol Swords
    • 1
  1. 1.Centaur TechnologyAustin

Personalised recommendations