This section describes a different and possibly more intuitive approach towards the design and implementation of a digital simulator. This implementation builds upon the simulator engine described in . While the simulator engine works primarily at the gate-level of abstraction, it should be noted that the engine can conceivably be adapted to operate at higher levels.
In general, the heart of the simulator engine is comprised of a distributed queuing mechanism in which each component maintains its own local time. In this manner, all the components are relatively autonomous and are influenced only by adjacent incoming queues. This technique provides a means by which the simulation of a circuit may be integrated with its representation, thereby eliminating the artificial distinction between the two. The concepts behind local time and distributed event queues are elaborated upon in the following subsections.