In this paper, we introduce the static simulation technique as a general method for compiling event-driven models into efficient simulation code. The method has two innovations. First, we use a general event graph that succinctly captures the semantics of an event-driven simulation. Second, we use the general technique of partial evaluation to schedule the events as well as possible using statically available information. This general technique can be applied uniformly to optimize the simulation of arbitrary models including those containing unclocked feedback and nonunit delay.
Our prototype implementation of the simulator uses the SUIF compiler system. We achieve an average speedup of about two when compared to VCS 2.3 on six benchmarks. More importantly, our average scheduling overhead amounts to only 4%of that found in the VCS code.
We would like to thank John Sanguinetti and Randy Allen of Chronologic for their help with VCS, and Brian Murphy for help with this document.