Abstract
Assuring correctness of digital designs is one of the major tasks in the system design flow. In the last decade, traditional functional verification techniques like simulation with test benches and monitors have been augmented with formal techniques. Formal techniques can be divided into equivalence and property checking. Equivalence checking tools at the gate level are now part of most design flows. However, property checking is still subject to intensive research efforts due to the omnipresent state explosion problem.
Property checking is performed in two steps. First, a set of property specifications has to be written in an appropriate formalism. The system model is then checked against these properties. A property checking tool then either reports the absence of defects on the explored paths or generates a counter example trace.
In this work we show that formal property specifications can be reused in all phases of the verification process, including both functional and formal approaches. The properties provide the link between these usually rivaling techniques. First, we discuss current formalisms for specifying temporal properties. Then we present two automata based techniques for checking temporal properties given in the standardized Property Specification Language (PSL). The first approach checks the properties during SystemC simulation, whereas the second approach performs fully formal property checking of the temporal properties against a transition system employing a unique checking algorithm.
The results described in this article have been achieved in the course of the DFG project GRASP within the DFG Priority Programme 1064.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Accellera Organization (2004). Property Specification Language (PSL), version 1.1. www.eda.org/vfv.
Biere, Armin, Cimatti, Alessandro, Clarke, Edmund M., Strichman, Ofer, and Zhu, Yunshan (2003). Bounded model checking. In Zelkowitz, Marvin, editor, Highly Dependable Software, volume 58 of Advances in Computers. Academic Press.
Clarke, Edmund M., Grumberg, Orna, and Peled, Doron E. (1999). Model Checking. The MIT Press.
Coelho, Claudionor Nunes Jr. and Foster, Harry D. (2004). Asserstion-based verification. In Drechsler, Rolf, editor, Advanced Formal Verification, pages 167–204. Kluwer Academic Publishers, Dordrecht, The Netherlands.
Damm, Werner and Harel, David (2001). LSCs: Breathing life into message sequence charts. Journal on Formal Methods in System Design, 19(1):45–80.
Dwyer, Matthew B., Avrunin, George S., and Corbett, James C. (1999). Patterns in property specifications for finite-state verification. In 21. International Conference on Software Engineering, pages 411–420. ACM Press.
Emerson, E. Allen, Mok, Aloysius K., Sistla, A. Prasad, and Srinivasan, Jai (1991). Quantitative temporal reasoning. In Clarke, Edmund M. and Kurshan, Robert P., editors, Computer Aided Verification, 2nd International Workshop, volume 531 of Lecture Notes in Computer Science, pages 136–145. Springer.
Flake, Stephan, Müller, Wolfgang, and Ruf, Jürgen (2002). Structured english for model checking specification. In Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Systemen, 3. GI/ITG/GMM Workshop, pages 99–108. VDE Verlag.
Flake, Stephan, Müller, Wolfgang, Pape, Ulrich, and Ruf, Jürgen (2004). Specification and Formal Verification of Temporal Properties of Production Automation Systems. In: Ehrig, Harmut et al., editors, Integration of Sofware Techniques for Applications in Engineering, Volume 3147 of Lecture Notes in Computer Science, pages 206–226. Springer Verlag.
Grötker, Thorsten, Liao, Stan, Martin, Grant, and Swan, Stuart (2002). System Design with SystemC. Kluwer Academic Publishers.
ISO/IEC (2003). Programming Languages — C++. Number 14882:2003 in JTC1/SC22 — Programming languages, their environment and system software interfaces. International Organization for Standardization, 2. edition.
Iwashita, Hiroaki and Nakata, Tsuneo (1997). Forward model checking techniques oriented to buggy designs. In Proceedings of the 1997 IEEE/ACM International Conference on CAD, pages 400–4004. ACM and IEEE Computer Society Press.
Klose, Jochen, Kropf, Thomas, and Ruf, Jürgen (2002). A visual approach to validating system level designs. In 15th International Symposium on Systems Synthesis, pages 186–191. ACM Press.
Krebs, Andreas and Ruf, Jürgen (2003). Optimized temporal logic compilation. Journal of Universal Computer Science, Special Issue on Tools for System Design and Verification, 9(2):120–137.
Object Management Group (OMG) (2003). Unified Modeling Language (UML), Version 1.5. www.omg.org. Document formal/03-03-01.
Ruf, Jürgen, Hoffmann, Dirk W., Kropf, Thomas, and Rosenstiel, Wolfgang (2001). Simulation-guided property checking based on a multi-valued AR-automata. In Nebel, Wolfgang and Jerraya, Ahmed, editors, Design, Automation and Test in Europe, DATE 2001, pages 742–748. IEEE Press.
Ruf, Jürgen and Kropf, Thomas (1999). Modeling and checking networks of communicating real-time process. In Pierre, Laurence and Kropf, Thomas, editors, Correct Hardware Design and Verification Methods, volume 1703 of Lecture Notes in Computer Science, pages 256–279. Springer.
Ruf, Jürgen and Kropf, Thomas (2003). Symbolic verification and analysis of discrete timed systems. Journal on Formal Methods in System Design, 23(1):67–108.
Ruf, Jürgen, Peranandam, Prakash M., Kropf, Thomas, and Rosenstiel, Wolfgang (2003). Bounded property checking with symbolic simulation. In Forum on Specification and Design Languages.
Ruf, Jürgen, Weiss, Roland J., Kropf, Thomas, and Rosenstiel, Wolfgang (2004). Modeling and formal verification of production automation systems. In Ehrig, Hartmut et al., editors, Integration of Software Specification Techniques for Applications in Engineering, volume 3147 of Lecture Notes in Computer Science, pages 541–566. Springer Verlag.
VA Software Corporation and Open SystemC Initiative (2004). Open SystemC Initiative. www.systemc.org.
Vardi, Moshe Y. (2001). Branching vs. linear time: Final showdown. In European Joint Conferences on Theory and Practice of Software (ETAPS 2001). Invited paper.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer
About this chapter
Cite this chapter
Weiss, R.J., Ruf, J., Kropf, T., Rosenstiel, W. (2005). Symbolic Model Checking and Simulation with Temporal Assertions. In: Boulet, P. (eds) Advances in Design and Specification Languages for SoCs. Springer, Boston, MA. https://doi.org/10.1007/0-387-26151-6_20
Download citation
DOI: https://doi.org/10.1007/0-387-26151-6_20
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-26149-2
Online ISBN: 978-0-387-26151-5
eBook Packages: EngineeringEngineering (R0)