Line 14... |
Line 14... |
* accessing core registers (direct access to GPRs, indirect access to CSRs via program buffer)
|
* accessing core registers (direct access to GPRs, indirect access to CSRs via program buffer)
|
* indirect access to the whole processor address space (via program buffer))
|
* indirect access to the whole processor address space (via program buffer))
|
* compatible to the https://github.com/riscv/riscv-openocd[RISC-V port of OpenOCD];
|
* compatible to the https://github.com/riscv/riscv-openocd[RISC-V port of OpenOCD];
|
pre-built binaries can be obtained for example from https://www.sifive.com/software[SiFive]
|
pre-built binaries can be obtained for example from https://www.sifive.com/software[SiFive]
|
|
|
|
.OCD Security Note
|
|
[IMPORTANT]
|
|
Access via the OCD is _always authenticated_ (`dmstatus.authenticated` == `1`). Hence, the
|
|
_whole system_ can always be accessed via the on-chip debugger.
|
|
|
[NOTE]
|
[NOTE]
|
The OCD requires additional resources for implementation and _might_ also increase the critical path resulting in less
|
The OCD requires additional resources for implementation and _might_ also increase the critical path resulting in less
|
performance. If the OCD is not really required for the _final_ implementation, it can be disabled and thus,
|
performance. If the OCD is not really required for the _final_ implementation, it can be disabled and thus,
|
discarded from implementation. In this case all circuitry of the debugger is completely removed (no impact
|
discarded from implementation. In this case all circuitry of the debugger is completely removed (no impact
|
on area, energy or timing at all).
|
on area, energy or timing at all).
|
Line 63... |
Line 68... |
=== Debug Transport Module (DTM)
|
=== Debug Transport Module (DTM)
|
|
|
The debug transport module (VHDL module: `rtl/core/neorv32_debug_dtm.vhd`) provides a JTAG test access port (TAP).
|
The debug transport module (VHDL module: `rtl/core/neorv32_debug_dtm.vhd`) provides a JTAG test access port (TAP).
|
The DTM is the first entity in the debug system, which connects and external debugger via JTAG to the next debugging
|
The DTM is the first entity in the debug system, which connects and external debugger via JTAG to the next debugging
|
entity: the debug module (DM).
|
entity: the debug module (DM).
|
External access is provided by the following top-level ports.
|
External JTAG access is provided by the following top-level ports.
|
|
|
.JTAG top level signals
|
.JTAG top level signals
|
[cols="^2,^2,^2,<8"]
|
[cols="^2,^2,^2,<8"]
|
[options="header",grid="rows"]
|
[options="header",grid="rows"]
|
|=======================
|
|=======================
|