The two main OCMTS functions, Debug and Trace, are implemented as separate entities in the device. They may be used independently or in cooperative mode.

The data flow and connectivity between the two functions and the rest of the device is shown in the following figure:

Figure 1. Debug and Trace block diagram

The Debug block includes interfaces which are used to interact with the devices external tooling. The tool driven communication reaches the central Debug block by using an IOClient mechanism. The Debug block includes the necessary functionality to interact with the system over in-band bus accesses. Additional dedicated connections allow intrusive control of the program execution in processing cores, influence peripherals based on debug needs, and capture signal states over the triggering system.

The Trace block captures system execution flows in processing cores, peripherals, and the system interconnect. Dedicated connections to these blocks transport the data. The captured data items are processed, converted to a common trace format, and exported to dedicated trace ports or shared capabilities such as SRAM or network connections.