Concolic Testing of SystemC Designs

Bin Lin1, Kai Cong2, Zhenkun Yang2, Zhigang Liao3, Tao Zhan4, Christopher Havlicek1, Fei Xie1
1Portland State University, 2Intel Corporation, 3Virtual Device Technologies LLC, 4Northwestern Polytechnical University


Abstract

SystemC is a system-level modelling language widely used in industry. SystemC validation is both necessary and important, since undetected bugs may propagate to final silicon products, which can be extremely expensive and dangerous. However, it is challenging to validate SystemC designs due to their heavy usage of object-oriented features, event-driven simulation semantics, and inherent concurrency. In this paper, we present CTSC, an automated, easy-to-deploy, scalable, and effective binary-level concolic testing framework for SystemC designs. We have implemented CTSC and applied it to a representative set of SystemC designs. In our extensive experiments, the CTSC- generated test cases achieved high code coverage, triggered 15 assertions, and found two severe bugs. In addition, the experiments on two designs with more than 2K lines of SystemC code show that our approach scales to designs of practical sizes.