SystemC is becoming a de-facto standard for the development of embedded systems. Verification of SystemC designs is critical since it can prevent error propagation down to the hardware. SystemC allows for very efficient simulations before synthesizing the RTL description, but formal verification is still at a preliminary stage. Recent works translate SystemC into the input language of finite-state model checkers, but they abstract away relevant semantic aspects, and show limited scalability. In this paper, we approach formal verification of SystemC by reduction to software model checking. We explore two directions. First, we rely on a translation from SystemC to a sequential C program, that contains both the mapping of the SystemC threads in form of C functions, and the coding of relevant semantic aspects (e.g. of the SystemC kernel). In terms of verification, this enables the off-the-shelf use of model checking techniques for sequential software, such as lazy abstraction. Second, we p...
Verifying SystemC: a Software Model Checking Approach / Cimatti, Alessandro; Micheli, Andrea; Narasamdya, Iman; Roveri, Marco. - (2010), pp. 51-59. (Intervento presentato al convegno Formal Methods in Computer Aided Design, FMCAD 2010 tenutosi a Lugano, Switzerland nel October, 20-23, 2010).
Verifying SystemC: a Software Model Checking Approach
Cimatti, Alessandro;Micheli, Andrea;Roveri, Marco
2010-01-01
Abstract
SystemC is becoming a de-facto standard for the development of embedded systems. Verification of SystemC designs is critical since it can prevent error propagation down to the hardware. SystemC allows for very efficient simulations before synthesizing the RTL description, but formal verification is still at a preliminary stage. Recent works translate SystemC into the input language of finite-state model checkers, but they abstract away relevant semantic aspects, and show limited scalability. In this paper, we approach formal verification of SystemC by reduction to software model checking. We explore two directions. First, we rely on a translation from SystemC to a sequential C program, that contains both the mapping of the SystemC threads in form of C functions, and the coding of relevant semantic aspects (e.g. of the SystemC kernel). In terms of verification, this enables the off-the-shelf use of model checking techniques for sequential software, such as lazy abstraction. Second, we p...I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione



