Methods and apparatus are provided for implementing a semiconductor device
with a debug core separate from a processor core. The user configurable
debug core can be customized to include one or more debug core
submodules. Each debug core submodule is generally associated with a
particular debug feature such as trace generation, performance counters,
or hardware triggers. The debug core can be driven through a variety of
interfaces to allow debugging, monitoring, and control of processor
operations.