2016 · 18 citations · 14 references
EngineeringComputer EngineeringComputer ScienceHardware Description LanguagesHardware-software Co-designModel-based Systems EngineeringDesign For TestabilitySoftware TestingSymbolic ExecutionCode CoverageCoverageRisc ArchitecturesSimulation SemanticsSystem-level ModelingSystemc ModelingTest Generation From ModelsTesting
SystemC is a system-level modeling language increasingly adopted by the semiconductor industry. Quality assurance for SystemC designs is important, since undetected errors may propagate to final silicon implementations and become very costly to fix. The errors, if not fixed, can cause major damage and even endanger lives. However, quality assurance for SystemC designs is very challenging due to their object-oriented nature, event-driven simulation semantics, and inherent concurrency. In this research, we have developed an approach to generating high coverage tests for SystemC designs using symbolic execution. We have applied this approach to a representative set of SystemC designs. The results show that our approach is able to generate tests that provide high code coverage of the designs with modest time and memory usage. Furthermore, the experiment on a RISC CPU design with more than 2K lines of SystemC code demonstrates that our approach scales to designs of practical sizes.
14
E. M. Clarke, Orna Grümberg, D. Long · 1996 · 6.9K citations
Symbolic execution and program testing
James C. King · Communications of the ACM · 1976 · 3K citations · Full text