Skip to main content

Verification of an Error Correcting Code by Abstract Interpretation

  • Conference paper
  • 814 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3385))

Abstract

We apply the theory of abstract interpretation to validate a Reed Solomon error correcting code. We design and implement an abstract simulator for VHDL descriptions. This tool computes an over-approximation of all the states that would be reached during any run of a conventional simulator. It collects linear constraints that hold between signals in the design. It is used to check the RTL implementations of the Reed Solomon encoder and decoder against correct high-level specifications. We explain how to express the correctness property so as to defeat the state explosion incurred by the deep pipeline in the decoder. Benchmarks show the abstract simulator is very frugal in both memory and time. Comparisons with VIS confirm that specialized tools outperform general purpose algorithms. Abstract simulation also competes advantageously with simulation. In less time than what was allocated for simulation by the designers of the components, it achieves full coverage.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. ANSI/IEEE Std 1076-1987. IEEE Standard VHDL Language Reference Manual (1988)

    Google Scholar 

  2. IEEE Std 1164-1993. IEEE Standard Multivalue Logic System for VHDL Model Interoperability, (Std_logic_1164) (1993)

    Google Scholar 

  3. Accellera. Property Specification Language Reference Manual, Version 1.01 (2003), http://www.accellera.org/pslv101.pdf

  4. Beer, I., Ben-David, S., Eisner, C., Fisman, D., Gringauze, A., Rodeh, Y.: The temporal logic sugar. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 363–367. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  5. Biere, A., Cimatti, A., Clarke, E.M., Fujita, M., Zhu, Y.: Symbolic model checking using SAT procedure instead of BDDs. In: Proceedings of the 36th Design Automation Conference (DAC 1999), pp. 317–320. ACM Press, New York (1999)

    Chapter  Google Scholar 

  6. Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: A static analyzer for large safety-critical software. In: Conference on Programming Language Design and Implementation (PLDI 2003), pp. 196–207. ACM Press, New York (2003)

    Chapter  Google Scholar 

  7. Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers 35(8), 677–691 (1986)

    Article  MATH  Google Scholar 

  8. Bryant, R.E.: Symbolic simulation - techniques and applications. In: Proceedings of the 27th ACM/IEEE Design Automation Conference (DAC 1990), pp. 517–521. IEEE Computer Society Press, Los Alamitos (1990)

    Chapter  Google Scholar 

  9. Burch, J.R., Clarke, E.M., Long, D.E., McMillan, K.L., Dill, D.L.: Symbolic model checking for sequential circuit verification. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 13(4), 401–424 (1994)

    Article  Google Scholar 

  10. Chou, C.-T.: The mathematical foundation of symbolic trajectory evaluation. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 196–207. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  11. Clarke, E.M., Kroening, D., Yorav, K.: Behavioral consistency of C and verilog programs using bounded model checking. In: Proceedings of the 40th Design Automation Conference (DAC 2003), pp. 368–371. ACM Press, New York (2003)

    Chapter  Google Scholar 

  12. Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: 4th ACM Symposium on Principles of Programming Languages (POPL 1977), pp. 238–252. ACM Press, New York (1977)

    Chapter  Google Scholar 

  13. Dijkstra, E.W.: Guarded commands, nondeterminacy and formal derivation of programs. Communications of the ACM 18(8), 453–457 (1975)

    Article  MATH  MathSciNet  Google Scholar 

  14. Granger, P.: Static analysis of linear congruence equalities among variables of a program. In: Proceedings of the International Joint Conference on Theory and Practice of Software Development (TAPSOFT 1991), vol.1 pp. 169–192 (1991)

    Google Scholar 

  15. The VIS Group. Vis: A system for verification and synthesis. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 428–432. Springer, Heidelberg (1996)

    Google Scholar 

  16. Horwitz, S., Demers, A.J., Teitelbaum, T.: An efficient general iterative algorithm for dataflow analysis. Acta Informatica 24(6), 679–694 (1987)

    Article  MATH  MathSciNet  Google Scholar 

  17. Hymans, C.: Checking Safety Properties of Behavioral VHDL Descriptions by Abstract Interpretation. In: Hermenegildo, M.V., Puebla, G. (eds.) SAS 2002. LNCS, vol. 2477, pp. 444–460. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  18. Hymans, C.: Design and Implementation of an Abstract Interpreter for VHDL. In: Geist, D., Tronci, E. (eds.) CHARME 2003. LNCS, vol. 2860, pp. 263–269. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  19. Karr, M.: Affine relationships among variables of a program. Acta Informatica 6, 133–151 (1976)

    Article  MATH  MathSciNet  Google Scholar 

  20. Kildall, G.A.: A unified approach to global program optimization. In: 1st ACM Symposium on Principles of Programming Languages (POPL 1973), pp. 194–206 (1973)

    Google Scholar 

  21. Kölbl, A., Kukula, J.H., Damiano, R.F.: Symbolic RTL simulation. In: Proceedings of the 38th Design Automation Conference (DAC 2001), pp. 47–52. ACM Press, New York (2001)

    Chapter  Google Scholar 

  22. Leroy, X., Doligez, D., Garrigue, J., Rémy, D., Vouillon, J.: The Objective Caml System, Documentation and User’s Manual. INRIA-Institut National de Recherche en Informatique et en Automatique (2002)

    Google Scholar 

  23. Miné, A.: A few graph-based relational numerical abstract domains. In: Hermenegildo, M.V., Puebla, G. (eds.) SAS 2002. LNCS, vol. 2477, pp. 117–132. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  24. Plotkin, G.: A structural approach to operational semantics. Technical Report DAIMI FN-19, Aarhus University (1981)

    Google Scholar 

  25. Reed, I.S., Solomon, G.: Polynomial codes over certain finite fields. Journal of the Society for Industrial and Applied Mathematics 8, 300–304 (1960)

    Article  MATH  MathSciNet  Google Scholar 

  26. Seger, C.-J.H., Bryant, R.E.: Formal verification by symbolic evaluation of partially-ordered trajectories. Formal Methods in System Design 6(2), 147–189 (1995)

    Article  Google Scholar 

  27. Simon, A., King, A., Howe, J.M.: Two variables per linear inequality as an abstract domain. In: Logic Based Program Synthesis and Tranformation (LOPSTR 2002), pp. 71–89 (2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hymans, C. (2005). Verification of an Error Correcting Code by Abstract Interpretation. In: Cousot, R. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2005. Lecture Notes in Computer Science, vol 3385. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30579-8_22

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-30579-8_22

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-24297-0

  • Online ISBN: 978-3-540-30579-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics