Model Trace Interface
This section describes the Model Trace Interface (MTI).
Fast Models supports the generation of traces that consistently track the execution and related activities in the model. In particular, tracking those activities that affect the state of the modeled IP. Generated virtual platforms provide trace support by using plug-ins in the form of DLLs and shared objects on Windows and Linux, respectively.
The following diagram represents the MTI architecture, where all the tracing information of the system is found.
Figure 1-2 MTI architecture
A trace source provides information about a specific event that occurs in the
component. In a processor component, this event can be, for example, the execution of an
instruction, the taking of a branch, or an MMU translation. It can also be an event that
is specific to models, such as the
SYNC event, which is
called at every quantum boundary. Each trace source contains fields that give more
information about the event, including a text description. When the field is of type
MTI_ENUM, the values for this field are also
listed. For example:
Source CACHE_READ_MISS (Read access cache miss.) Field IS_SHARED type:MTI_ENUM size:1 (Is the access shared) 0x0 = NON_SHARED 0x1 = SHARED Field IS_PRELOAD type:MTI_ENUM size:1 (Is the access a preload) 0x0 = NOT_PRELOAD 0x1 = PRELOAD Field MASTER_ID type:MTI_UNSIGNED_INT size:4 (Indicates the master associated with this monitor)
ARM produces several prebuilt plug-ins, which are documented in the chapter Plug-ins for Fast Models. Source code example plug-ins are provided at $PVLIB_HOME/examples/MTI. Plug-ins are loaded at simulation start-up. You can load multiple plug-ins at the same time.