Abstract
Major strengths of deductive verification include modular verification and support for functional properties and unbounded parameters. However, in embedded systems, crucial safety properties often depend on concurrent process interactions, events, and time. Such properties are global in nature and thus difficult to verify in a modular fashion. Furthermore, the execution and scheduling semantics of industrially used embedded system design languages such as SystemC are typically only informally defined. In this paper, we propose a deductive verification approach for embedded systems that are modeled with SystemC. Our main contribution is twofold: 1) We provide a formal encoding and an automated transformation of SystemC designs for verification with the VerCors deductive verifier. 2) We present a novel approach for invariant construction to abstractly capture global dependencies. Our encoding enables an automated formalization and deductive verification of parameterized SystemC designs, and the invariant construction enables local reasoning about global properties with comparatively low manual effort. We demonstrate the applicability of our approach on three parameterized case studies, including an automotive control system.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
While implementations of the simulation semantics often use a deterministic execution order, the IEEE standard does not define any such order [26].
- 2.
Static sensitivity is subsumed by dynamic sensitivity and a hierarchical design can be flattened by using, for example, prefixing.
- 3.
For simplicity, we speak of arrays here. In our implementation, all collections have the PVL-intrinsic type , which reduces verification time.
- 4.
Note also that, despite not necessarily increasing the state space, more processes and events also mean that the representation of each state in the RASI will have more atomic conditions.
References
[Artifact] Deductive Verification of Parameterized Embedded Systems modeled in SystemC. https://doi.org/10.4121/a7e780c9-87fa-486c-b484-a76a459a9d53
Amighi, A., Blom, S., Darabi, S., Huisman, M., Mostowski, W., Zaharieva-Stojanovski, M.: Verification of concurrent systems with VerCors. In: Bernardo, M., Damiani, F., Hähnle, R., Johnsen, E.B., Schaefer, I. (eds.) SFM 2014. LNCS, vol. 8483, pp. 172–216. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-07317-0_5
Amighi, A., Haack, C., Huisman, M., Hurlin, C.: Permission-based separation logic for multithreaded Java programs. Log. Methods Comput. Sci. 11(1) (2015). https://doi.org/10.2168/LMCS-11(1:2)2015
Ball, T., Majumdar, R., Millstein, T., Rajamani, S.K.: Automatic predicate abstraction of c programs. In: Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation, pp. 203–213 (2001)
Behrmann, G., David, A., Larsen, K.G.: A tutorial on Uppaal. In: Bernardo, M., Corradini, F. (eds.) SFM-RT 2004. LNCS, vol. 3185, pp. 200–236. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-30080-9_7
Beyer, D., Keremoglu, M.E.: CPAchecker: a tool for configurable software verification. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 184–190. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22110-1_16
Blom, S., Darabi, S., Huisman, M., Oortwijn, W.: The VerCors tool set: verification of parallel and concurrent software. In: Polikarpova, N., Schneider, S. (eds.) IFM 2017. LNCS, vol. 10510, pp. 102–110. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-66845-1_7
Cimatti, A., Micheli, A., Narasamdya, I., Roveri, M.: Verifying SystemC: a software model checking approach. In: Formal Methods in Computer-Aided Design (FMCAD), pp. 51–59. IEEE (2010). https://dl.acm.org/doi/10.5555/1998496.1998510
Cimatti, A., Griggio, A., Micheli, A., Narasamdya, I., Roveri, M.: Kratos – a software model checker for SystemC. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 310–316. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22110-1_24
Cimatti, A., Narasamdya, I., Roveri, M.: Software model checking SystemC. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 32(5), 774–787 (2013). https://doi.org/10.1109/TCAD.2012.2232351
Cousot, P.: Abstract interpretation. ACM Comput. Surv. (CSUR) 28(2), 324–328 (1996)
Garavel, H., Helmstetter, C., Ponsini, O., Serwe, W.: Verification of an industrial SystemC/TLM model using LOTOS and CADP. In: IEEE/ACM International Conference on Formal Methods and Models for Co-design (MEMOCODE ’09), pp. 46–55 (2009). https://doi.org/10.1109/MEMCOD.2009.5185377
Große, D., Kühne, U., Drechsler, R.: HW/SW co-verification of embedded systems using bounded model checking. In: Great Lakes Symposium on VLSI, pp. 43–48. ACM Press (2006). https://doi.org/10.1145/1127908.1127920
Große, D., Le, H.M., Drechsler, R.: Proving transaction and system-level properties of untimed SystemC TLM designs. In: MEMOCODE, pp. 113–122. IEEE (2010). https://doi.org/10.1109/MEMCOD.2010.5558643
Große, D., Le, H.M., Drechsler, R.: Formal verification of SystemC-based cyber components. In: Jeschke, S., Brecher, C., Song, H., Rawat, D.B. (eds.) Industrial Internet of Things. SSWT, pp. 137–167. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-42559-7_6
Habibi, A., Moinudeen, H., Tahar, S.: Generating finite state machines from SystemC. In: Design, Automation and Test in Europe, pp. 76–81. IEEE (2006). https://doi.org/10.1109/DATE.2006.243777
Habibi, A., Tahar, S.: An approach for the verification of SystemC designs using AsmL. In: Peled, D.A., Tsay, Y.-K. (eds.) ATVA 2005. LNCS, vol. 3707, pp. 69–83. Springer, Heidelberg (2005). https://doi.org/10.1007/11562948_8
Herber, P., Fellmuth, J., Glesner, S.: Model checking SystemC designs using timed automata. In: International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS), pp. 131–136. ACM Press (2008). https://doi.org/10.1145/1450135.1450166
Herber, P., Glesner, S.: A HW/SW co-verification framework for SystemC. ACM Trans. Embed. Comput. Syst. (TECS) 12(1s), 1–23 (2013). https://doi.org/10.1145/2435227.2435257
Herber, P., Hünnemeyer, B.: Formal verification of SystemC designs using the BLAST software model checker. In: ACESMB@ MoDELS, pp. 44–53 (2014). https://dblp.org/rec/conf/models/HerberH14
Herber, P., Liebrenz, T.: Dependence analysis and automated partitioning for scalable formal analysis of SystemC designs. In: 18th ACM-IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE), pp. 1–6. IEEE (2020). https://doi.org/10.1109/MEMOCODE51338.2020.9314998
Herber, P., Liebrenz, T., Adelt, J.: Combining forces: how to formally verify informally defined embedded systems. In: Huisman, M., Păsăreanu, C., Zhan, N. (eds.) FM 2021. LNCS, vol. 13047, pp. 3–22. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-90870-6_1
Herber, P., Pockrandt, M., Glesner, S.: STATE - a SystemC to timed automata transformation engine. In: ICESS. IEEE (2015). https://doi.org/10.1109/HPCC-CSS-ICESS.2015.188
Herdt, V., Große, D., Drechsler, R.: Formal verification of SystemC-based designs using symbolic simulation. In: Enhanced Virtual Prototyping, pp. 59–117. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-54828-5_4
Herdt, V., Le, H.M., Große, D., Drechsler, R.: Verifying SystemC using intermediate verification language and stateful symbolic simulation. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 38(7), 1359–1372 (2018). https://doi.org/10.1109/TCAD.2018.2846638
IEEE Standards Association: IEEE Std. 1666-2011, Open SystemC Language Reference Manual. IEEE Press (2011). https://doi.org/10.1109/IEEESTD.2012.6134619
Jaß, L., Herber, P.: Bit-precise formal verification for SystemC using satisfiability modulo theories solving. In: Götz, M., Schirner, G., Wehrmeister, M.A., Al Faruque, M.A., Rettberg, A. (eds.) IESS 2015. IAICT, vol. 523, pp. 51–63. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-90023-0_5
Karlsson, D., Eles, P., Peng, Z.: Formal verification of SystemC designs using a Petri-Net based Representation. In: Design, Automation and Test in Europe (DATE), pp. 1228–1233. IEEE Press (2006). https://doi.org/10.1109/DATE.2006.244076
Kroening, D., Sharygina, N.: Formal verification of SystemC by automatic hardware/software partitioning. In: Proceedings of MEMOCODE 2005, pp. 101–110. IEEE (2005). https://doi.org/10.1109/MEMCOD.2005.1487900
Le, H.M., Große, D., Herdt, V., Drechsler, R.: Verifying SystemC using an intermediate verification language and symbolic simulation. In: 2013 50th ACM/EDAC/IEEE Design Automation Conference (DAC), pp. 1–6. IEEE (2013). https://doi.org/10.1145/2463209.2488877
Li, J., Sun, X., Xie, F., Song, X.: Component-based abstraction and refinement. In: Mei, H. (ed.) ICSR 2008. LNCS, vol. 5030, pp. 39–51. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-68073-4_4
Man, K.L., Fedeli, A., Mercaldi, M., Boubekeur, M., Schellekens, M.: SC2SCFL: automated SystemC to \(SystemC^{\mathbb{F}\mathbb{L}}\) translation. In: Vassiliadis, S., Bereković, M., Hämäläinen, T.D. (eds.) SAMOS 2007. LNCS, vol. 4599, pp. 34–45. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-73625-7_6
Niemann, B., Haubelt, C.: Formalizing TLM with communicating state machines. Forum Specification Des. Lang. (2006). https://doi.org/10.1007/978-1-4020-6149-3_14
O’Hearn, P.W.: Resources, concurrency and local reasoning. Theor. Comput. Sci. 375(1–3), 271–307 (2007). https://doi.org/10.1016/j.tcs.2006.12.035
Oortwijn, W.: Deductive techniques for model-based concurrency verification. Ph.D. thesis, University of Twente, Netherlands, December 2019. https://doi.org/10.3990/1.9789036548984
Oortwijn, W., Gurov, D., Huisman, M.: Practical abstractions for automated verification of shared-memory concurrency. In: Beyer, D., Zufferey, D. (eds.) VMCAI 2020. LNCS, vol. 11990, pp. 401–425. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-39322-9_19
Reif, K.: Bremsen und Bremsregelsysteme. Bosch Fachinformation Automobil, Vieweg+Teubner Verlag Wiesbaden (2010). https://doi.org/10.1007/978-3-8348-9714-5
Ruf, J., Hoffmann, D.W., Gerlach, J., Kropf, T., Rosenstiel, W., Müller, W.: The simulation semantics of SystemC. In: Design, Automation and Test in Europe, pp. 64–70. IEEE Press (2001). https://doi.org/10.1109/DATE.2001.915002
Salem, A.: Formal semantics of synchronous SystemC. In: Design, Automation and Test in Europe (DATE), pp. 10376–10381. IEEE Computer Society (2003). https://doi.org/10.1109/DATE.2003.1253637
Schwan, S., Herber, P.: Optimized hardware/software co-verification using the UCLID satisfiability modulo theory solver. In: 29th IEEE International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises, WETICE 2020, Virtual Event, France, 10–13 September 2020, pp. 225–230. IEEE (2020). https://doi.org/10.1109/WETICE49692.2020.00051
Traulsen, C., Cornet, J., Moy, M., Maraninchi, F.: A SystemC/TLM semantics in Promela and its possible applications. In: Bošnački, D., Edelkamp, S. (eds.) SPIN 2007. LNCS, vol. 4595, pp. 204–222. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-73370-6_14
Xie, F., Yang, G., Song, X.: Component-based hardware/software co-verification for building trustworthy embedded systems. J. Syst. Softw. 80(5), 643–654 (2007). https://doi.org/10.1016/j.jss.2006.08.015
Zhang, Y., Vedrine, F., Monsuez, B.: SystemC waiting-state automata. In: International Workshop on Verification and Evaluation of Computer and Communication Systems (2007). https://dl.acm.org/doi/abs/10.5555/2227445.2227453
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Tasche, P., Monti, R.E., Drerup, S.E., Blohm, P., Herber, P., Huisman, M. (2024). Deductive Verification of Parameterized Embedded Systems Modeled in SystemC. In: Dimitrova, R., Lahav, O., Wolff, S. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2024. Lecture Notes in Computer Science, vol 14500. Springer, Cham. https://doi.org/10.1007/978-3-031-50521-8_9
Download citation
DOI: https://doi.org/10.1007/978-3-031-50521-8_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-50520-1
Online ISBN: 978-3-031-50521-8
eBook Packages: Computer ScienceComputer Science (R0)