Institute for Communication Technologies and Embedded Systems

Cause and effect of nondeterministic behavior in sequential and parallel SystemC simulators

Schumacher, C. ,  Weinstock, J. H. ,  Leupers, R.Ascheid, G.
Book Title:
IEEE International High Level Design Validation and Test Workshop
Nov. 2012
Simulators are used to aid the design of computer systems. Together with the computational power of computer systems, the demands towards their simulators are growing regarding speed, flexibility, as well as the predictability of their behavior. To increase simulation speed, simulation models are abstracted and simulated in parallel. To reduce simulator development time and to provide the greatest possible modeling flexibility, SystemC allows models to be written using C++ without restrictions. All three means, especially when used in combination, also increase the difficulty to reason about the behavior of the resulting simulator, in the worst case leading to unpredictable simulation behavior. This may threaten the fitness of simulators for demanding use-cases like the debugging of race conditions. This work discusses likely causes and impact of nondeter- ministic simulator behavior. Three examples taken from real-life models are used to illustrate the matter.