Skip to main content

Formally Verifying Data and Control with Weak Reachability Invariants

  • Conference paper
  • First Online:
Formal Methods in Computer-Aided Design (FMCAD 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1522))

Included in the following conference series:

Abstract

Existing formal verification methods do not handle systems that combine state machines and data paths very well. Model checking deals with finite-state machines efficiently, but model checking full designs is infeasible because the large amount of state in the data path. Theorem-proving methods may effective for verifying data path operations, but verifying the control requires finding and proving inductive invariants that characterize the reachable states of the system.

We present a new approach to verification of systems that combine control FSMs and data path operations. Invariants are specified only for a small set of control states, called clean states, where the invariants are especially simple.We avoid the need to specify the invariants for the unclean states by symbolically simulating over all paths to find the possible next clean states.

The set of all paths from one clean state to the next is represented by a regular expression, which is extracted from the control FSMs. The number of paths is infinite only if the regular expression contains stars. The method uses a heuristic to, generalize the symbolic state to cover all of the paths of the starred expression. We have implemented a prototype tool for guiding an existing symbolic simulator and verification tool and used it successfully to prove properties of the Instruction Fetch Unit of TORCH, a superscalar microprocessor designed at Stanford. With much less effort, we were able to find all the bugs in the unit that were found earlier by manually strengthening the invariants.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. S. Bensalem, Y. Lakhnech, and S. Owre. Computing abstractions of infinite state systems compositionally and automatically. In Alan J. Hu and Moshe Y. Vardi, editors, Computer Aided Verification (CAV)98, volume 1427 of Lecture Notes in Computer Science, pages 319–331, Vancouver, BC, Canada, June/July 1998. Springer-Verlag.

    Chapter  Google Scholar 

  2. Saddek Bensalem, Yassine Lakhnech, and Hassen SaÏdi. Powerful techniques for the automatic generation of invariants. In Rajeev Alur and Thomas A. Henzinger, editors, Computer Aided Verification (CAV)96, volume 1102 of Lecture Notes in Computer Science, pages 323–335, New Brunswick, NJ, July/August 1996. Springer-Verlag.

    Google Scholar 

  3. N. S. BjØrner, A. Browne, and Z. Manna. Automatic generation of invariants and intermediate assertions. Theoretical Computer Science, 173(1):49–87, February 1997.

    Google Scholar 

  4. R. E. Bryant, D. L. Beatty, and C.-J. H. Seger. Formal hardware verification by symbolic ternary trajectory evaluation. In 28th ACM/IEEE Design Automation Conference, 1991.

    Google Scholar 

  5. J. R. Burch, E. M. Clarke, and D. E. Long. Representing circuits more efficiently in symbolic model checking. In 28th ACM/IEEE Design Automation Conference, 1991.

    Google Scholar 

  6. J. R. Burch, E. M. Clarke, K. L. McMillan, and D. L. Dill. Sequential circuit verification using symbolic model checking. In 27th ACM/IEEE Design Automation Conference, 1990.

    Google Scholar 

  7. M. Caplain. Finding invariant assertions for proving programs. In International Conference on Reliable Software, pages 165–171, 1975.

    Google Scholar 

  8. W. Carter, W. Joyner, and D. Brand. Symbolic simulation for correct machine design. In 16th Design Automation Conference Proceedings (1979), pages 280–286, June 1979.

    Google Scholar 

  9. R. Floyd. Assigning meaning to programs. In Proc. Symposium in Applied Mathematics, volume 19, pages 19–32, 1967.

    MathSciNet  Google Scholar 

  10. R. W. Floyd. The Language of machines: an introduction to computability and formal languages. New York: Computer Science Press, 1994.

    Google Scholar 

  11. S. German and B. Wegbreit. A synthesizer of inductive assertions. IEEE Transactions on Software Enginnering, 1(1):68–75, March 1975.

    Google Scholar 

  12. G. Kane. MIPS RISC Architecture. Prentice Hall, 1988.

    Google Scholar 

  13. S. Katz and Z. Manna. A heuristic approach to program verification. In Proceedings: 3rd International Joint Conference on Artificial Intelligence, pages 500–512, 1976.

    Google Scholar 

  14. J King. A program verifier. In Information Processing 71 Proceedings of the IFIP Congress, volume 1, pages 234–249, 1972.

    Google Scholar 

  15. B. Levy. Microcode verification using sdvs-the method and a case study. In 17th MICRO(1984), pages 234–245, 1984.

    Google Scholar 

  16. R. Mueller and M. Ruda. Formal methods of microcode verification and synthesis. IEEE Software, 3(4):38–48, July 1986.

    Google Scholar 

  17. G. E. Nelson and D. C. Oppen. Simplification by cooperating decision procedures. ACM Transactions on Programming Languages and Systems, 1(2):245–257, October 1979.

    Google Scholar 

  18. Hassen SaÏdi and Susanne Graf. Construction of abstract state graphs with PVS. In Orna Grumberg, editor, Computer Aided Verification (CAV)97, volume 1254 of Lecture Notes in Computer Science, pages 72–83, Haifa, Israel, June 1997. Springer-Verlag.

    Google Scholar 

  19. R. E. Shostak. A practical decision procedure for arithmetic with function symbols. Journal of the ACM, 26(2):351–360, April 1979.

    Google Scholar 

  20. R. E. Shostak. Deciding combinations of theories. Technical Report SRI-CSL-132, Computer Science Laboratory, SRI International, February 1982.

    Google Scholar 

  21. M. Smith, M. Horowitz, and M. Lam. Efficient superscalar performance through boosting. In 5th International Conference on Architectural Support for Programming languages and Operating Systems, pages 248–259, Boston, MA, 1992. IEEE/ACM.

    Google Scholar 

  22. M. Smith, M. Lam, and M. Horowitz. Boosting beyond static scheduling in a superscalar processor. In 17th International Symposium on Computer Architecture, volume 18-2, pages 344–354, Seattle, WA, May 1990. IEEE/ACM.

    Google Scholar 

  23. J. Su, L. Arditi, S. Das, J. U. SkakkebÆk, and D. L. Dill. Formal verification of the TORCH microprocessor RTL design. Unpublished, 1998.

    Google Scholar 

  24. Jeffrey X. Su, David L. Dill, and Clark W. Barrett. Automatic generation of invariants in processor verification. In M. Srivas and A. Camilleri, editors, Formal Methods in Computer Aided Design (FMCAD), volume 1166 of Lecture Notes in Computer Science, pages 197–201. Springer-Verlag, November 1996.

    Chapter  Google Scholar 

  25. R. Tarjan. A unify approach to path problems. Journal of the ACM, 28(3):577–593, July 1981.

    Google Scholar 

  26. Z. Zhou, X. Song, S. Tahar, E. Cerny, F. Corella, and M. Langevin. Formal verification of the island tunnel controller using multiway decision graphs. In M. Srivas and A. Camilleri, editors, Formal Methods in Computer Aided Design (FMCAD), volume 1166, pages 233–247. Springer-Verlag, November 1996.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Su, J., Dill, D.L., SkakkebÆk, J.U. (1998). Formally Verifying Data and Control with Weak Reachability Invariants. In: Gopalakrishnan, G., Windley, P. (eds) Formal Methods in Computer-Aided Design. FMCAD 1998. Lecture Notes in Computer Science, vol 1522. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49519-3_25

Download citation

  • DOI: https://doi.org/10.1007/3-540-49519-3_25

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-65191-8

  • Online ISBN: 978-3-540-49519-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics