Previous: The parallel kernel Up: The parallel kernel Next: The externals

The internals

The parallel kernel uses two threads: one handling the incoming messages, and one controlling the VHDL simulation (the event-handler). All the specific routines for the VHDL simulation are in the event-handler. Furthermore it comprises a library of functions used by the generated C++ and the event handler. Figure shows a partition with a parker and compiled VHDL code.

The parallel simulation algorithm is located partially in the incoming-message-handler and partially in the event-handler.

An important part of optimistic simulation is the state-save/rollback functionality. State-saving consists of several steps:

The state can be saved to real memory or to disk, depending on preferences and circumstances. Not saved are the lists of messages that are received and sent. These have to be kept across rollbacks, because they contain information that cannot be reproduced [5].

The incoming-message-handler has a high priority, and will be called almost immediately on the arrival of a new message. The event-handler has the lowest priority and will only be called when all VHDL processes have suspended. It will then determine the time of the next simulation cycle, process the pending events, and send the associated messages.