A sequence diagram, illustrating the handling of a read transaction
for the design is shown in Figure 5.2. The Or1ksim wrapper class invokes the underlying Or1ksim
ISS through its run
function.
The run
function executes without further
interruption. Whenever it needs to read or write via the external
bus, it uses the staticReadUpcall
or
staticWriteUpcall
function. This in turn
invokes the readUpcall
function for the wrapper
instance.
The various TLM 2.0 generic payload functions are used to set up the
payload, before the payload is passed to the initiator port using
its b_transport
function (for simplicity the
call to do_trans
is omitted from the
diagram). The packet is passed internally to the connected target
port, where it invokes the handler function
(loggerReadWrite
) to handle the payload. The
payload is modified as appropriate before being returned to the
initiator.
Note | |
---|---|
All the actions in this diagram are synchronous. There is a single thread of control, which flows from the wrapper module to the logger module as a transaction is processed. |