首页> 外文会议>Formal Methods in Computer-Aided Design, 2010 >Verifying SystemC: A software model checking approach
【24h】

Verifying SystemC: A software model checking approach

机译:验证SystemC:一种软件模型检查方法

获取原文

摘要

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 propose an approach that exploits the intrinsic structure of SystemC. In particular, each SystemC thread is translated into a separate sequential program and explored with lazy abstraction, while the overall verification is orchestrated by the direct execution of the SystemC scheduler. The technique can be seen as generalizing lazy abstraction to the case of multi-threaded software with exclusive threads and cooperative scheduling. The above approaches have been implemented in a new software model checker. An experimental evaluation carried out on several case studies taken from the SystemC distribution and from the literature demonstrate the potential of the approach.
机译:SystemC正在成为嵌入式系统开发的实际标准。验证SystemC设计至关重要,因为它可以防止错误传播到硬件。 SystemC允许在合成RTL描述之前进行非常有效的仿真,但是正式验证仍处于初步阶段。最近的工作将SystemC转换为有限状态模型检查器的输入语言,但它们抽象出了相关的语义方面,并且显示了有限的可伸缩性。在本文中,我们通过简化软件模型检查来对SystemC进行形式验证。我们探索两个方向。首先,我们依赖于从SystemC到顺序C程序的转换,该程序既包含以C函数形式的SystemC线程的映射,也包含相关语义方面(例如SystemC内核)的编码。在验证方面,这使得模型检查技术可以“现成”地用于顺序软件,例如惰性抽象。其次,我们提出一种利用SystemC内在结构的方法。特别是,每个SystemC线程都转换为一个单独的顺序程序,并通过惰性抽象进行探索,而整体验证则通过直接执行SystemC调度程序来进行。该技术可以看作是将懒惰抽象推广到具有独占线程和协作调度的多线程软件的情况。以上方法已在新的软件模型检查器中实现。对来自SystemC分布和文献的一些案例研究进行的实验评估证明了该方法的潜力。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号