Xilinx MicroBlaze Reference Manual page 96

32-bit soft processor
Hide thumbs Also See for MicroBlaze:
Table of Contents

Advertisement

Program Trace
With extended debugging, MicroBlaze provides program trace, either storing information
in the Embedded Trace Buffer or transmitting it to the MDM, to enable program execution
tracing. The MDM is used when the parameter C_DEBUG_EXTERNAL_TRACE is set, allowing
output of program trace from multiple processors via external interfaces.
The size of the Embedded Trace Buffer can be configured from 8KB to 128KB using the
parameter C_DEBUG_TRACE_SIZE. By setting C_DEBUG_TRACE_SIZE to 0 (None),
program trace is disabled.
Program trace uses compression to reduce the amount of trace data, while still allowing
reconstruction of the program execution flow or the entire processor software state. There
are three main compression levels:
Complete trace
Stores complete trace information including cycle count for each executed instruction
using 144 bits, ranging from 512 to 8192 items depending on the configured Embedded
Trace Buffer size. Complete trace is not available when C_DEBUG_EXTERNAL_TRACE is
set.
Program flow
Stores program flow changes, i.e. the sequence of branches taken or not taken, and the
new program counter for indirect branches, interrupts, exceptions and hardware breaks.
The program counter may also optionally be stored for return instructions to simplify
program flow reconstruction, or for all taken branches to handle self-modifying code.
Data read from memory or fetched from AXI4-Stream interfaces may optionally be
stored to allow reconstructing the entire processor software state, enabling reverse
single step functionality.
Program flow and cycle count
Stores the cycle count between instructions along with the same information as
program flow alone, to also allow reconstruction of the program execution time.
Tracing can be started via the Trace Command Register, by hitting a program breakpoint or
watchpoint configured as a tracepoint in the Trace Control Register, or by a cross trigger
event (see
Table
Tracing is automatically stopped when the trace buffer becomes full, and can be stopped
via the Trace Command Register or by a cross trigger event (see
The cycle count can measure up to 32768 clock cycles when using complete trace, and up
to 8192 cycles between instructions when using program flow and cycle count. If the cycle
count exceeds this value, the Trace Status Register overflow bit is set to one.
MicroBlaze Processor Reference Guide
UG984 (v2016.2) June 8, 2016
UG984 (v2016.1) April 6, 2016
2-61).
www.xilinx.com
Chapter 2: MicroBlaze Architecture
Table
2-61).
Send Feedback
96

Advertisement

Table of Contents
loading

Table of Contents