Abstract
SystemC is a modeling language built as an extension of C++. Its growing popularity and the increasing complexity of designs have motivated research efforts aimed at the verification of SystemC models using assertion-based verification (ABV), where the designer asserts properties that capture the design intent in a formal language such as PSL or SVA. The model then can be verified against the properties using runtime or formal verification techniques. In this paper we focus on automated generation of runtime monitors from temporal properties. Our focus is on minimizing runtime overhead, rather than monitor size or monitor-generation time. We identify four issues in monitor generation: state minimization, alphabet representation, alphabet minimization, and monitor encoding. We conduct extensive experimentation and identify a combination of settings that offers the best performance in terms of runtime overhead.
Similar content being viewed by others
Notes
IEEE Standard 1666–2005.
Property Specification Language, IEEE Standard 1850–2007.
SystemVerilog Assertions, IEEE Standard 1800–2005.
Note that the comparison is between different monitor implementations and is applicable to other C or C++ modeling languages.
BRICS Automaton represents the alphabet of the automaton as Unicode characters, which have one-to-one correspondence to the set of 16-bit integers.
Source code available at http://www.cs.rice.edu/CS/Verification/Software/software.html.
References
Abarbanel Y, Beer I, Gluhovsky L, Keidar S, Wolfsthal Y (2000) Focs: Automatic generation of simulation checkers from formal specifications. In: CAV’00: Proc of the 12th international conference on computer aided verification, pp 538–542
Armoni R, Korchemny D, Tiemeyer A, Vardi M, Zbar Y (2006) Deterministic dynamic monitors for linear-time assertions. In: Proc workshop on formal approaches to testing and runtime verification. LNCS, vol 4262. Springer, Berlin
Bauer A, Leucker M, Schallhart C (2006) Monitoring of real-time properties. In: FSTTCS’06: Foundations of software technology and theoretical computer science, 26th international conference. LNCS, vol 4337. Springer, Berlin, pp 260–272
Bodden E, Hendren LJ, Lam P, Lhoták O, Naeem NA (2010) Collaborative runtime verification with tracematches. J Log Comput 20(3):707–723
Boulé M, Zilic Z (2008) Generating hardware assertion checkers. Springer, Berlin
Bryant R (1986) Graph-based algorithms for Boolean-function manipulation. IEEE Trans Comput C-35(8)
Bryant R (1992) Symbolic Boolean manipulation with ordered binary-decision diagrams. ACM Comput Surv 24(3):293–318
Bunker A, Gopalakrishnan G, McKee SA (2004) Formal hardware specification languages for protocol compliance verification. ACM Trans Des Autom Electron Syst 9(1):1–32
Bustan D, Fisman D, Havlicek J (2005) Automata construction for PSL. Tech Rep, The Weizmann Institute of Science
Chang H, Cooke L, Hunt M, Martin G, McNelly AJ, Todd L (1999) Surviving the SOC revolution: a guide to platform-based design. Kluwer Academic, Norwell
Chen F, Jin D, Meredith P, Roşu G (2009) Monitoring oriented programming—a project overview. In: Proceedings of the fourth international conference on intelligent computing and information systems (ICICIS’09). ACM, New York, pp 72–77
Cooper KD, Torczon L (2004) Engineering a compiler. Morgan Kaufmann, San Mateo
Courcoubetis C, Vardi M, Wolper P, Yannakakis M (1992) Memory efficient algorithms for the verification of temporal properties. Form Methods Syst Des 1:275–288
d’Amorim M, Rosu G (2005) Efficient monitoring of ω-languages. In: Proc 17th international conference on computer aided verification, pp 364–378
Daniele M, Giunchiglia F, Vardi MY (1999) Improved automata generation for linear temporal logic. In: CAV’99: Proc 11th int conf on computer aided verification. Springer, London, pp 249–260
Duret-Lutz A, Poitrenaud D (2004) SPOT: An extensible model checking library using transition-based generalized Büchi automata. Modeling Anal Simul Comput Syst. doi:10.1109/MASCOT.2004.1348184
Eisner C, Fisman D (2006) A practical introduction to PSL. Springer, New York
Finkbeiner B, Sipma H (2004) Checking finite traces using alternating automata. Form Methods Syst Des 24(2):101–127. doi:10.1023/B:FORM.0000017718.28096.48
Geilen M (2001) On the construction of monitors for temporal logic properties. Electr Notes Theor Comput Sci 55(2)
Geist D, Biran G, Arons T, Slavkin M, Nustov Y, Farkas M, Holtz K, Long A, King D, Barret S (1999) A methodology for the verification of a “system on chip”. In: DAC’99: Proc 36th design automation conference. ACM, New York, pp 574–579. doi:10.1145/309847.310001
Geldenhuys J, Hansen H (2006) Larger automata and less work for LTL model checking. In: Model checking software, 13th int SPIN workshop. LNCS, vol 3925. Springer, Berlin, pp 53–70
Gerth R, Peled D, Vardi M, Wolper P (1995) Simple on-the-fly automatic verification of Linear Temporal Logic. In: Dembiski P, Sredniawa M (eds) Protocol specification, testing, and verification. Chapman & Hall, London, pp 3–18
Giannakopoulou D, Havelund K (2001) Automata-based verification of temporal properties on running programs. In: Int conf on automated software engineering. IEEE, Washington, p 412
Grotker T, Liao S, Martin G, Swan S (2002) System design with SystemC. Kluwer Academic, Norwell
IEEE working group (2007) Standard for property specification language (PSL). IEC 62531:2007 (E), pp 1–156. doi:10.1109/IEEESTD.2007.4408637
Gupta A (2002) Assertion-based verification turns the corner. IEEE Des Test Comput 19:131–132. doi:10.1109/MDT.2002.10025
Hoos HH (2008) Computer-aided design of high-performance algorithms. Tech rep, University of British Columbia
Hopcroft J, Ullman J (1979) Introduction to automata theory, languages, and computation. Addison-Wesley, Reading
Jard C, Jeron T (1989) On-line model-checking for finite linear temporal logic specifications. In: Automatic verification methods for finite state systems, Proc international workshop, Grenoble. LNCS, vol 407. Springer, Grenoble, pp 189–196
Jin D, Meredith P, Griffith D, Roşu G (2011) Garbage collection for monitoring parametric properties. In: Programming language design and implementation (PLDI’11). ACM, New York, pp 415–424. doi:10.1145/1993316.1993547
Kupferman O, Lampert R (2006) On the construction of fine automata for safety properties. In: ATVA’06: Proc of the international symposium on automated technology for verification and analysis, pp 110–124
Kupferman O, Vardi M (2001) Model checking of safety properties. Form Methods Syst Des 19(3):291–314
Meredith P, Jin D, Griffith D, Chen F, Roşu G (2011) An overview of the MOP runtime verification framework. Int J Softw Tech Technol Transfer. doi:10.1007/s10009-011-0198-6
Møller A (2004) http://www.brics.dk/automaton/
Morin-Allory K, Borrione D (2006) Proven correct monitors from PSL specifications. In: DATE’06: Proc conf on design, automation and test in Europe, European Design and Automation Association, pp 1246–1251
de Moura LM, Bjørner N (2008) Z3: An efficient SMT solver. In: TACAS’08: Tools and algorithms for the construction and analysis of systems, 14th international conference, pp 337–340
Pierre L, Ferro L (2008) A tractable and fast method for monitoring SystemC TLM specifications. IEEE Trans Comput 57:1346–1356. doi:10.1109/TC.2008.74
Rönkkö M (2011) LBT: LTL to Büchi conversion. Available online (1999). http://www.tcs.hut.fi/Software/maria/tools/lbt/. Accessed March 29, 2011
Rozier KY, Vardi MY (2007) LTL satisfiability checking. In: Proc 14th int SPIN conference on model checking software. Springer, Berlin, pp 149–167
Stolz V, Bodden E (2006) Temporal assertions using AspectJ. Electron Notes Theor Comput Sci 144(4):109–124. doi:10.1016/j.entcs.2006.02.007
Tabakov D, Vardi M (2010) Monitoring temporal SystemC properties. In: Proc 8th int’l conf on formal methods and models for codesign. IEEE, New York, pp 123–132
Tabakov D, Vardi M, Kamhi G, Singerman E (2008) A temporal language for SystemC. In: FMCAD’08: Proc int conf on formal methods in computer-aided design. IEEE Press, New York, pp 1–9. http://portal.acm.org/citation.cfm?id=1517446
Tabakov D, Vardi MY (2005) Experimental evaluation of classical automata constructions. In: LPAR’05: 12th int conf on logic for programming, artificial intelligence, and reasoning, pp 396–411
Vardi M, Wolper P (1994) Reasoning about infinite computations. Inf Comput 115(1):1–37
Vijayaraghavan S, Ramanathan M (2005) A practical guide for SystemVerilog assertions. Springer, New York
Acknowledgements
We thank Alexandre Duret-Lutz for his code patch replacing the functionality of spot::prune_scc, which we used to upgrade from SPOT 0.4, used in the experiments executed on Ada, to SPOT 0.7.1 used in the experiments executed on SUG@R. We also thank Patrick Meredith and Dmitry Korchemny for suggesting that we consider table look-up encodings. Finally, we thank the anonymous reviewers for their comments and feedback.
Author information
Authors and Affiliations
Corresponding author
Additional information
Work supported in part by NSF grants CCF-0613889, CCF-0728882, and Grant EIA-0216467, BSF grant 9800096, the Shared University Grid at Rice (SUG@R), NASA’s Airspace Systems Program, a gift from Intel, and a partnership between Rice University, Sun Microsystems, and Sigma Solutions.
A preliminary version of this work was reported by D. Tabakov and M.Y. Vardi in “Optimized temporal monitors for SystemC,” Proc. 1st Int’l Conf. on Runtime Verification, Lecture Notes in Computer Science 6418, Springer, pp. 436–451, 2010.
Rights and permissions
About this article
Cite this article
Tabakov, D., Rozier, K.Y. & Vardi, M.Y. Optimized temporal monitors for SystemC. Form Methods Syst Des 41, 236–268 (2012). https://doi.org/10.1007/s10703-011-0139-8
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10703-011-0139-8