Non-intrusive Profiling - 2025.1 English - UG1629

MicroBlaze V Processor Reference Guide (UG1629)

Document ID
UG1629
Release Date
2025-07-09
Version
2025.1 English

With debugging enabled, non-intrusive profiling is provided, which uses a Profiling Buffer to store program execution statistics. The size of the profiling buffer can be configured from 4 KB to 128 KB using the parameter C_DEBUG_PROFILE_SIZE. By setting C_DEBUG_PROFILE_SIZE to 0 (None), non-intrusive profiling is disabled.

The Profiling Buffer is divided into a number of bins, each counting the number of executed instructions or clock cycles within a certain address range. Each bin counts up to 236 - 1 = 68,719,476,735 instructions or cycles.

The address range of each bin is determined by the buffer size and the profiled address range defined using the Profiling Low Address Register and Profiling High Address Register.

Profiling can be started or stopped using the Profiling Control Register.

The memory/mapped registers used to configure and control profiling, and to read or write the Profiling Buffer, are listed in the following table.

Table 1. MicroBlaze V Profiling Registers
Register Name Size (bits) Offset R/W Description
Profiling Control 8 0x1040 W Enable or disable profiling, configure counting method and bin usage
Profiling Low Address 32 0x1080 W Defines the low address of the profiled address range
C_ADDR_SIZE - 32 0x1084
Profiling High Address 32 0x10C0 W Defines the high address of the profiled address range
C_ADDR_SIZE - 32 0x10C4
Profiling Buffer Address 9 - 14 0x1100 W Sets the address (bin) in the Profiling Buffer to read or write
Profiling Data Read 32 0x1180 R Read data from the Profiling Buffer
4 0x1184
Profiling Data Write 32 0x11C0 W Write data to the Profiling Buffer