Entity: rv_dm
- File: rv_dm.sv
Diagram
Description
Copyright lowRISC contributors. Licensed under the Apache License, Version 2.0, see LICENSE for details. SPDX-License-Identifier: Apache-2.0 Top-level debug module (DM)
This module implements the RISC-V debug specification version 0.13,
This toplevel wraps the PULP debug module available from https://github.com/pulp-platform/riscv-dbg to match the needs of the TL-UL-based lowRISC chip design.
Generics
Generic name | Type | Value | Description |
---|---|---|---|
NumAlerts | logic [NumAlerts-1:0] | undefined | |
IdcodeValue | logic [31:0] | _0001 |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
clk_i | input | clock | |
rst_ni | input | asynchronous reset active low, connect PoR | |
lc_hw_debug_en_i | input | here, not the system reset | |
scanmode_i | input | ||
scan_rst_ni | input | ||
ndmreset_req_o | output | non-debug module reset | |
dmactive_o | output | debug module is active | |
debug_req_o | output | [NrHarts-1:0] | async debug request |
unavailable_i | input | [NrHarts-1:0] | communicate whether the hart is unavailable |
regs_tl_d_i | input | (e.g.: power down) bus device for comportable CSR access | |
regs_tl_d_o | output | ||
rom_tl_d_i | input | bus device with debug memory, for an execution based technique | |
rom_tl_d_o | output | ||
sba_tl_h_o | output | bus host, for system bus accesses | |
sba_tl_h_i | input | ||
alert_rx_i | input | [NumAlerts-1:0] | Alerts |
alert_tx_o | output | [NumAlerts-1:0] | |
jtag_i | input | ||
jtag_o | output |
Signals
Name | Type | Description |
---|---|---|
rom_tl_win_h2d | tlul_pkg::tl_h2d_t | CSR Nodes |
rom_tl_win_d2h | tlul_pkg::tl_d2h_t | |
regs_reg2hw | rv_dm_reg_pkg::rv_dm_regs_reg2hw_t | |
regs_intg_error | logic | |
rom_intg_error | logic | |
alert_test | logic [NumAlerts-1:0] | Alerts |
alerts | logic [NumAlerts-1:0] | Alerts |
lc_hw_debug_en | lc_ctrl_pkg::lc_tx_t [EnLastPos-1:0] | |
hartinfo | dm::hartinfo_t [NrHarts-1:0] | Debug CSRs |
halted | logic [NrHarts-1:0] | |
resumeack | logic [NrHarts-1:0] | logic [NrHarts-1:0] running; |
haltreq | logic [NrHarts-1:0] | |
resumereq | logic [NrHarts-1:0] | |
clear_resumeack | logic | |
cmd_valid | logic | |
cmd | dm::command_t | |
cmderror_valid | logic | |
cmderror | dm::cmderr_e | |
cmdbusy | logic | |
progbuf | logic [dm::ProgBufSize-1:0][31:0] | |
data_csrs_mem | logic [dm::DataCount-1:0][31:0] | |
data_mem_csrs | logic [dm::DataCount-1:0][31:0] | |
data_valid | logic | |
hartsel | logic [19:0] | |
sbaddress_csrs_sba | logic [BusWidth-1:0] | System Bus Access Module |
sbaddress_sba_csrs | logic [BusWidth-1:0] | |
sbaddress_write_valid | logic | |
sbreadonaddr | logic | |
sbautoincrement | logic | |
sbaccess | logic [2:0] | |
sbreadondata | logic | |
sbdata_write | logic [BusWidth-1:0] | |
sbdata_read_valid | logic | |
sbdata_write_valid | logic | |
sbdata_read | logic [BusWidth-1:0] | |
sbdata_valid | logic | |
sbbusy | logic | |
sberror_valid | logic | |
sberror | logic [2:0] | |
dmi_req | dm::dmi_req_t | |
dmi_rsp | dm::dmi_resp_t | |
dmi_req_valid | logic | |
dmi_req_ready | logic | |
dmi_rsp_valid | logic | |
dmi_rsp_ready | logic | |
dmi_rst_n | logic | |
testmode | logic | |
reset_req_en | logic | |
ndmreset_req | logic | |
dmi_en | logic | |
host_req | logic | |
host_add | logic [BusWidth-1:0] | |
host_we | logic | |
host_wdata | logic [BusWidth-1:0] | |
host_be | logic [BusWidth/8-1:0] | |
host_gnt | logic | |
host_r_valid | logic | |
host_r_rdata | logic [BusWidth-1:0] | |
host_r_err | logic | |
sba_en | logic | |
sba_tl_h_o_int | tlul_pkg::tl_h2d_t | |
sba_tl_h_i_int | tlul_pkg::tl_d2h_t | |
unused_host_r_err | logic | |
req | logic | |
we | logic | |
be | logic [BusWidth/8-1:0] | |
wdata | logic [BusWidth-1:0] | |
rdata | logic [BusWidth-1:0] | |
rvalid | logic | |
addr_b | logic [BusWidth-1:0] | |
addr_w | logic [AddressWidthWords-1:0] | |
debug_req_en | logic | |
debug_req | logic | |
tck_muxed | logic | |
trst_n_muxed | logic | |
en_ifetch | tlul_pkg::tl_instr_en_e | |
rom_en | logic |
Constants
Name | Type | Value | Description |
---|---|---|---|
BusWidth | int | 32 | Currently only 32 bit busses are supported by our TL-UL IP |
SelectableHarts | logic [NrHarts-1:0] | undefined | all harts have contiguous IDs |
DebugHartInfo | dm::hartinfo_t | undefined | static debug hartinfo |
AddressWidthWords | int unsigned | BusWidth - $clog2(BusWidth/8) |
Types
Name | Type | Description |
---|---|---|
rv_dm_en_e | enum logic [2:0] { EnFetch, EnRom, EnSba, EnDebugReq, EnResetReq, EnDmiReq, EnLastPos } |
debug enable gating |
Processes
- unnamed: ( )
Type: always_comb
- unnamed: ( @(posedge clk_i or negedge rst_ni) )
Type: always_ff
Instantiations
- u_reg_regs: rv_dm_regs_reg_top
- u_reg_rom: rv_dm_rom_reg_top
- u_lc_en_sync: prim_lc_sync
- i_dm_csrs: dm_csrs
- i_dm_sba: dm_sba
- tl_adapter_host_sba: tlul_adapter_host
- i_dm_mem: dm_mem
- u_prim_clock_mux2: prim_clock_mux2
- u_prim_rst_n_mux2: prim_clock_mux2
- dap: dmi_jtag
Description
JTAG TAP
- tl_adapter_device_mem: tlul_adapter_sram