84
MicroBlaze Processor Reference Guide
UG081 (v14.7)
Chapter 2:
MicroBlaze Architecture
Debug and Trace
Debug Overview
MicroBlaze features a debug interface to support JTAG based software debugging tools (commonly
known as BDM or Background Debug Mode debuggers) like the Xilinx Microprocessor Debug
(XMD) tool. The debug interface is designed to be connected to the Xilinx Microprocessor Debug
Module (MDM) core, which interfaces with the JTAG port of Xilinx FPGAs. Multiple MicroBlaze
instances can be interfaced with a single MDM to enable multiprocessor debugging. The debugging
features include:
•
Configurable number of hardware breakpoints and watchpoints and unlimited software
breakpoints
•
External processor control enables debug tools to stop, reset, and single step MicroBlaze
•
Read from and write to: memory, general purpose registers, and special purpose register,
except EAR, EDR, ESR, BTR and PVR0 - PVR12, which can only be read
•
Support for multiple processors
Whenever Microblaze is halted the
MB_Halted
output signal is set to 1, for example after a
breakpoint or watchpoint is hit, after a stop XMD command, or when the
DBG_STOP
input is set.
The output is cleared when MicroBlaze execution is resumed by an XMD command.
When the
DBG_STOP
input is set to 1, MicroBlaze will halt after a few instructions. XMD will
detect that MicroBlaze has halted, and indicate where the halt occured. The signal can be used to halt
MicroBlaze at any external event, for example when a ChipScope™ logic analyzer is triggered.
The
MB_Halted
signal may be used to trigger a ChipScope logic analyzer, or halt other
MicroBlaze cores in a multiprocessor system by connecting the signal to their
DBG_STOP
inputs.
Trace Overview
The MicroBlaze trace interface exports a number of internal state signals for performance
monitoring and analysis. Xilinx recommends that users only use the trace interface through Xilinx
developed analysis cores. This interface is not guaranteed to be backward compatible in future
releases of MicroBlaze.