When extended debug is enabled in the hardware design, MicroBlaze supports non-intrusive profiling of the program instructions. You can
configure whether the instruction count or the cycle count should be profiled. The profiling
results are stored in a profiling buffer in the debug memory, which can be accessed by the
debugger through MDM debug registers. The size of the buffer can be configured from 4K to
128K, using the C_DEBUG_PROFILE_SIZE
(a size of 0 indicates
profiling is disabled) parameter.
The profile buffer is divided into number of portions known as bins. Each bin is 36 bit wide and can count the instructions or cycles of a program address range. The address range that is profiled by each bin is dependent on the total size of the program that is profiled. Bin size is calculated using the formula:
B = log2((H - L + S * 4) / S * 4)
Where B is the bin size, H, L are high and low address of the program address range being profiled, and S is the size of the profile buffer.
When profiling is enabled and program starts running, profile statistics for an address range are stored in its corresponding bin. Xilinx System Debugger can read these results, when needed.