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 processing unit 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_HIT (Read access cache hit.) 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
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.