A sequence diagram, illustrating how the Or1ksim wrapper handles a debug transaction is shown in Figure 11.4. Only the interaction between the wrapper and the JTAG debug interface is shown, since the other components largely retain their existing functionality. The model is fully decoupled and processes interrupts, but for compactness these details are not repeated here.
The key feature is the use of a SystemC mutex to ensure that the
JTAG transactions are only processed between calls to the
Or1ksim run
method.