SystemC is rapidly gaining wide acceptance as a simulation framework for SoC and embedded processors. While its main assets are modularity and the very fact it is becoming a de facto standard, the evolution of the SystemC framework (from version 0.9 to version 2.0.1) suggests the environment is particularly geared toward increasing the framework functionalities rather than improving simulation speed. For cycle-level simulation, speed is a critical factor as simulation can be extremely slow, affecting the extent of design space exploration. In this article, we present a fast SystemC engine that, in our experience, can speed up simulations by a factor of 1.93 to 3.56 over SystemC 2.0.1. This SystemC engine is designed for cycle-level simulators and for the moment, it only supports the subset of the SystemC syntax (signals, methods) that is most often used for such simulators. We achieved greater speed (1) by completely rewriting the SystemC engine and improving the implementation software engineering, and (2) by proposing a new scheduling technique, intermediate between SystemC dynamic scheduling technique and existing static scheduling schemes. Unlike SystemC dynamic scheduling, our technique removes many if not all useless process wake-ups, while using a simpler scheduling algorithm than in existing static scheduling techniques.
[1]
Frédéric Pétrot,et al.
Efficient combinational loops handling for cycle precise simulation of system on a chip
,
1998,
Proceedings. 24th EUROMICRO Conference (Cat. No.98EX204).
[2]
David I. August,et al.
Optimizations for a simulator construction system supporting reusable components
,
2003,
Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).
[3]
Stephen A. Edwards,et al.
The specification and execution of heterogeneous synchronous reactive systems
,
1998
.
[4]
Norman P. Jouppi,et al.
MIPS: a VLSI processor architecture
,
1981
.
[5]
David I. August,et al.
Microarchitectural exploration with Liberty
,
2002,
35th Annual IEEE/ACM International Symposium on Microarchitecture, 2002. (MICRO-35). Proceedings..
[6]
Robert E. Tarjan,et al.
Depth-First Search and Linear Graph Algorithms
,
1972,
SIAM J. Comput..