This module is an implementation of a debug unit compliant with the RISC-V debug specification v0.13.1. It is used in the Ariane and RI5CY cores.
We use an execution-based technique, also described in the specification, where the core is running in a “park loop”. Depending on the request made to the debug unit via JTAG over the Debug Transport Module (DTM), the code that is being executed is changed dynamically. This approach simplifies the implementation side of the core, but means that the core is in fact always busy looping while debugging.
The following features are currently supported
XLEN=32
XLEN=64
coresXLEN
)These are not implemented (yet)
We use OpenOCD's RISC-V compliance tests, our custom testbench in tb/
and riscv-tests/debug.