SCandal: SystemC Analysis for Nondeterminism Anomalies
- Weinstock, J. H. , Schumacher, C. , Leupers, R. , Ascheid, G.
- Haase, J.
- Models, Methods, and Tools for Complex Chip Design
AbstractSystemC is the de facto standard language for electronic system level design and simulation. SystemC simulations may contain nondeterminism caused by dependencies on the process execution order (PEO) due to data dependencies of SystemC logical processes (LP) within delta-cycles. In practice, often this is not an issue, since simulation execution appears to be deterministic due to deterministic SystemC scheduler implementations.
However, to satisfy the increasing need for simulation speed, parallel SystemC engines are being researched: With no fixed strict total order among LPs executed in parallel, nondeterministic behavior is more likely to surface and more difficult to debug, threatening the viability to use simulation for debugging use-cases.
This work presents a new method to test for nondeterminism: Anomalies are detected by running a simulation twice in sequential simulation mode while systematically varying the PEO, and without the need for source code analysis. Feasibility is demonstrated with several case studies.