The data passed in a transaction may take any form. However the TLM 2.0 standard defines a generic payload which is suitable for many uses, and which can be extended if required. By using the generic payload, a TLM 2.0 model will maximize interoperability.
The main features of the generic payload are:
Is this a read or a write?
What is the address (in the hardware sense of an address in memory).
A pointer to the physical data as an array of bytes
A pointer to an array indicating which bytes of the data are valid.
An indication of whether the transaction was successful, and if not the nature of the error.
Further features provide support for streaming, custom memory management and extensions to the generic payload.
A TLM 2.0 transport function is used to pass the payload to another SystemC thread and obtain a response—i.e. a transaction.
The generic payload is suitable for modeling a wide range of bus interfaces and protocols. However where additional features are required, TLM 2.0 provides an extension mechanism. The chapter on implementing a transactional JTAG debugger interface (see Chapter 11) describes the use of this extension mechanism to model the data for a bit-serial interface.