refactor: remove HAVE_DEBUG feature and related code

- Eliminated the HAVE_DEBUG preprocessor directive and all associated code from the RTL and test files.
- Updated the Emulator class to remove JTAG-related debug signals and configurations.
- Adjusted the pin map and JSON configurations to exclude debug-related entries.
- Modified the management core wrapper to only support the HAZARD3 core, removing references to the PICORV32 core.
- Updated tests to reflect the removal of the HAVE_DEBUG feature, ensuring they no longer check for debug-related conditions.
- Cleaned up various scripts and makefiles to remove dependencies on the HAVE_DEBUG flag, streamlining the build process.
This commit is contained in:
maksyuki committed 2026-08-06 08:52:54 +08:00
1 parent 6cff6102a4
commit 1b69bffe4e
40 files changed
+450 -3513

No files matched your search

-1
View File
@@ -77,4 +77,3 @@ socver.*
!/rtl/managed/clusterip/setup.py
/rtl/managed/mpw/
/rtl/managed/third_party/
/rtl/managed/picorv32/rtl/picorv32_ver.v
+13 -26
View File
@@ -21,9 +21,14 @@ endif
ifneq ($(origin IP),undefined)
$(error IP is no longer configurable; user IP integration is fixed)
endif
ifneq ($(origin CORE),undefined)
$(error CORE has been removed; the management core is fixed to Hazard3)
endif
ifneq ($(origin HAVE_DEBUG),undefined)
$(error HAVE_DEBUG has been removed; the Hazard3 Debug Module is always enabled)
endif
SOC ?= MINI
CORE ?= HAZARD3
SIMU ?= VCS
SYNTH ?= NONE
STA ?= NONE
@@ -35,7 +40,6 @@ HAVE_SRAM_IF ?= NO
HAVE_SRAM_MACRO ?= NO
PDK_BEHAV ?= NO
HAVE_SVA ?= NO
HAVE_DEBUG ?= YES
JTAG_IDCODE ?= DEADBEEF
WAVE ?= NO
FORMAL ?= NO
@@ -74,8 +78,8 @@ VCS_SHELL_PYTHON := $(if $(filter VCS,$(SIMU)),$(if $(filter $(VCS_SHELL_GOALS
JOBS ?= $(shell count=$$(nproc 2>/dev/null || printf '1'); \
if [ "$$count" -gt "$(MAX_JOBS)" ]; then printf '%s' '$(MAX_JOBS)'; \
else printf '%s' "$$count"; fi)
CONFIG_KEY_VARS := SOC CORE PDK HAVE_PLL HAVE_SRAM_IF HAVE_SRAM_MACRO PDK_BEHAV HAVE_SVA \
HAVE_DEBUG JTAG_IDCODE ISA HAVE_CSR APP LINK_TYPE RTL_TOP FIRMWARE_NAME
CONFIG_KEY_VARS := SOC PDK HAVE_PLL HAVE_SRAM_IF HAVE_SRAM_MACRO PDK_BEHAV HAVE_SVA \
JTAG_IDCODE ISA HAVE_CSR APP LINK_TYPE RTL_TOP FIRMWARE_NAME
VARIANT_ID := $(strip $(shell $(VCS_SHELL_PYTHON) $(ROOT_PATH)/scripts/config_key.py \
--lock $(LOCK_FILE) --profile $(PROFILE_NAME) --timestamp $(BUILD_TIMESTAMP) \
$(foreach var,$(CONFIG_KEY_VARS),--value $(var)=$($(var))) | tail -n 1))
@@ -99,7 +103,6 @@ FLOW_FILELIST_DIR := $(SIM_BUILD_ROOT)/filelists
endif
VALID_SOC := MINI
VALID_CORE := HAZARD3 PICORV32
VALID_SIMU := VCS VERILATOR IVERILOG
VALID_SYNTH := NONE YOSYS
VALID_STA := NONE OPENSTA
@@ -114,7 +117,6 @@ $(if $(filter $($(1)),$(2)),,$(error Invalid $(1)='$($(1))'; expected one of: $(
endef
$(call validate_value,SOC,$(VALID_SOC))
$(call validate_value,CORE,$(VALID_CORE))
$(call validate_value,SIMU,$(VALID_SIMU))
$(call validate_value,SYNTH,$(VALID_SYNTH))
$(call validate_value,STA,$(VALID_STA))
@@ -124,7 +126,6 @@ $(call validate_value,HAVE_SRAM_IF,$(VALID_BOOL))
$(call validate_value,HAVE_SRAM_MACRO,$(VALID_BOOL))
$(call validate_value,PDK_BEHAV,$(VALID_BOOL))
$(call validate_value,HAVE_SVA,$(VALID_BOOL))
$(call validate_value,HAVE_DEBUG,$(VALID_BOOL))
$(call validate_value,WAVE,$(VALID_BOOL))
$(call validate_value,FORMAL,$(VALID_BOOL))
$(call validate_value,VCS_USE_LSF,$(VALID_BOOL))
@@ -141,12 +142,6 @@ endif
JTAG_IDCODE_DEC := $(shell value=$$(printf '%u' 0x$(JTAG_IDCODE)); \
if [ $$value -gt 2147483647 ]; then echo $$((value - 4294967296)); else echo $$value; fi)
ifeq ($(HAVE_DEBUG),YES)
ifneq ($(CORE),HAZARD3)
$(error HAVE_DEBUG=YES requires CORE=HAZARD3; set HAVE_DEBUG=NO for CORE=$(CORE))
endif
endif
ifneq ($(filter benchmark-report,$(MAKECMDGOALS)),)
ifneq ($(APP),benchmark)
$(error benchmark-report requires APP=benchmark)
@@ -170,7 +165,6 @@ endif
DEF_LIST ?= +define+PDK_$(PDK)
DEF_LIST += +define+SIMU_$(SIMU)
DEF_LIST += +define+CORE_$(CORE)
DEF_LIST += +define+SOC_JTAG_IDCODE=$(JTAG_IDCODE_DEC)
ifeq ($(HAVE_PLL), YES)
@@ -199,10 +193,6 @@ ifeq ($(HAVE_SVA), NO)
DEF_LIST += +define+SV_ASSRT_DISABLE
endif
ifeq ($(HAVE_DEBUG), YES)
DEF_LIST += +define+HAVE_DEBUG
endif
ifeq ($(SYNTH), YOSYS)
DEF_LIST += +define+SYNTHESIS
endif
@@ -224,7 +214,7 @@ ifeq ($(STA), OPENSTA)
include sta/opensta/opensta.mk
endif
.PHONY: help config doctor setup setup-regression setup-mpw setup-core setup-clusterip setup-ip setup-pdk setup-app \
.PHONY: help config doctor setup setup-regression setup-mpw setup-clusterip setup-ip setup-pdk setup-app \
clean-all purge-cache manifest check-warnings metrics check-metrics package \
regress-smoke regress-pr regress-nightly sim-asm format format-check sw-format sw-format-check mk-format \
mk-format-check rtl-format rtl-format-check sw-policy-check sw-host-test \
@@ -286,19 +276,19 @@ config:
ROOT_PATH '$(ROOT_PATH)' CONFIG '$(or $(CONFIG_PATH),<defaults>)' \
BUILD_TIMESTAMP '$(BUILD_TIMESTAMP)' VARIANT_ID '$(VARIANT_ID)' VARIANT_ROOT '$(VARIANT_ROOT)' \
JOBS '$(JOBS)' \
SOC '$(SOC)' CORE '$(CORE)' \
SOC '$(SOC)' MGMT_CORE 'HAZARD3' \
SIMU '$(SIMU)' SYNTH '$(SYNTH)' STA '$(STA)' FORMAL '$(FORMAL)' \
VCS_USE_LSF '$(VCS_USE_LSF)' PDK '$(PDK)' \
HAVE_PLL '$(HAVE_PLL)' HAVE_SRAM_IF '$(HAVE_SRAM_IF)' \
HAVE_SRAM_MACRO '$(HAVE_SRAM_MACRO)' PDK_BEHAV '$(PDK_BEHAV)' HAVE_SVA '$(HAVE_SVA)' \
HAVE_DEBUG '$(HAVE_DEBUG)' JTAG_IDCODE '$(JTAG_IDCODE)' \
JTAG_IDCODE '$(JTAG_IDCODE)' \
ISA '$(ISA)' HAVE_CSR '$(HAVE_CSR)' APP '$(APP)' \
LINK_TYPE '$(LINK_TYPE)'
doctor:
@python3 $(ROOT_PATH)/scripts/doctor.py \
--root $(ROOT_PATH) --simu $(SIMU) --synth $(SYNTH) --sta $(STA) \
--pdk $(PDK) --formal $(FORMAL) --debug $(HAVE_DEBUG) --lock $(LOCK_FILE)
--pdk $(PDK) --formal $(FORMAL) --lock $(LOCK_FILE)
benchmark-report: firmware
@@ -306,7 +296,7 @@ benchmark-report: firmware
$(FLOW_PYTHON) $(ROOT_PATH)/scripts/parse_performance_log.py --log $(PERF_LOG) \
--output $(META_DIR)/performance.json
setup: setup-mpw setup-core setup-clusterip setup-ip setup-pdk setup-app
setup: setup-mpw setup-clusterip setup-ip setup-pdk setup-app
setup-regression:
$(MAKE) CONFIG=configs/ci/ihp130.mk setup
@@ -321,9 +311,6 @@ setup-mpw:
@mkdir -p $(dir $(MPW_STAMP))
@touch $(MPW_STAMP)
setup-core: setup-mpw
python3 $(ROOT_PATH)/rtl/mini/script/prepare_picorv32.py
setup-clusterip:
python3 $(ROOT_PATH)/rtl/managed/clusterip/setup.py
+6 -5
View File
@@ -16,9 +16,9 @@ under the [Mulan Permissive Software License, Version 2](LICENSE).
## Highlights
- A fixed architecture with a Hazard3 management core by default (PicoRV32 is
an explicit build option) and software-selected
user-core and user-IP extension slots.
- A fixed Hazard3 management core with a permanent JTAG Debug Module, plus
software-selected user-core and user-IP extension slots, including PicoRV32
at user-core slot C5.
- A standard five-pad JTAG Debug Transport Module for the Hazard3 management
core, with a reproducible Verilator, OpenOCD, and GDB acceptance flow.
- Configurable GF180, SKY130, IHP130, and ICS55 implementation targets with
@@ -51,8 +51,9 @@ under the [Mulan Permissive Software License, Version 2](LICENSE).
The committed profiles are the supported starting points. They select an ISA,
PDK, application, linker layout, and optional features as one reproducible
configuration. The user-extension fabric is fixed; `CORE` selects the management
core and defaults to `HAZARD3`.
configuration. The management core is fixed to Hazard3. The user-extension
fabric exposes stable C0-C5 user-core slots and software selects one active
user core.
| Profile | ISA | Application | Coverage |
| --- | --- | --- | --- |
+2 -2
View File
@@ -1,2 +1,2 @@
APP_SRCS += $(ROOT_PATH)/app/apps/debug/main.c
APP_CRT_SRCS += $(ROOT_PATH)/app/apps/debug/startup.S
APP_SRCS += $(ROOT_PATH)/app/apps/debug/main.c
APP_CRT_SRCS += $(ROOT_PATH)/app/apps/debug/startup.S
+1 -1
View File
@@ -3,7 +3,7 @@
"sources": {
"mpw": {
"url": "https://github.com/retroSoC/mini-ver-mpw.git",
"revision": "14dc77916c090c0ec780589c3da03a0803367818",
"revision": "e63d5cd71ffd912ad4f901e59f7f848c1a8bbfbd",
"destination": "rtl/managed/mpw",
"license": "NOASSERTION"
},
+3 -2
View File
@@ -2,8 +2,9 @@
This directory contains committed Make configuration profiles. Each profile
selects SoC, PDK, ISA, CSR support, application, linker layout, and the
supported validation tier. The user-extension fabric is fixed; the management
core defaults to `HAZARD3` and may be set to `PICORV32` with `CORE`.
supported validation tier. The management core is fixed to Hazard3 with its
JTAG Debug Module enabled. The user-extension fabric exposes stable C0-C5
slots, with PicoRV32 at C5.
`ci/` contains pull-request profiles, `cluster/` contains configurations
requiring site tools or PDKs, and `benchmark/` contains fixed-workload baseline
-1
View File
@@ -1,5 +1,4 @@
SOC := MINI
CORE := HAZARD3
PDK := IHP130
HAVE_PLL := NO
HAVE_SRAM_IF := YES
-2
View File
@@ -1,12 +1,10 @@
SOC := MINI
CORE := HAZARD3
PDK := IHP130
HAVE_PLL := NO
HAVE_SRAM_IF := YES
HAVE_SRAM_MACRO := YES
PDK_BEHAV := YES
HAVE_SVA := NO
HAVE_DEBUG := YES
ISA := RV32IM
HAVE_CSR := NO
APP := debug
+1 -7
View File
@@ -7,13 +7,7 @@
#include <retrosoc/generated/memory_map.h>
#include <retrosoc/generated/user_extensions.h>
#if defined(RS_SOC_MGMT_CORE_HAZARD3)
#define HW_CORE "Management Hazard3"
#elif defined(RS_SOC_MGMT_CORE_PICORV32)
#define HW_CORE "Management PicoRV32"
#else
#error "Management core selection is missing"
#endif
#define HW_CORE "Management Hazard3"
#define CPU_FREQ 72 // unit: MHz
#define UART_BPS 921600 // unit: bps
+6 -6
View File
@@ -2,10 +2,10 @@
## Scope
The default `CORE=HAZARD3` configuration enables `HAVE_DEBUG=YES` and exposes
a standard RISC-V JTAG Debug Transport Module (DTM) on five conditional pads:
TCK, TMS, TDI, TRST_n, and TDO. The default JTAG ID code is `0xDEADBEEF`.
Set `JTAG_IDCODE=<eight hexadecimal digits>` to use a board-specific value.
The fixed Hazard3 management core always exposes a standard RISC-V JTAG Debug
Transport Module (DTM) on five ASIC pads: TCK, TMS, TDI, TRST_n, and TDO. The
default JTAG ID code is `0xDEADBEEF`. Set
`JTAG_IDCODE=<eight hexadecimal digits>` to use a board-specific value.
The Debug Module (DM) controls only the management Hazard3 hart. It supports
abstract register and memory commands and has `HAVE_SBA=0`, so it never becomes
@@ -13,8 +13,8 @@ a second SoC bus master. Debugger memory operations execute through the halted
hart and remain subject to the existing RIB access policy. User cores,
peripherals, clocks, and pad control stay outside the debug-reset scope.
`CORE=PICORV32` does not implement this integration. Select
`HAVE_DEBUG=NO CORE=PICORV32` when building that management-core option.
PicoRV32 is available as software-selected user core C5 through mini-ver-mpw;
it is not a management-core option and has no management Debug Module.
## Reset And Clocking
+2 -2
View File
@@ -75,7 +75,7 @@ digraph mini_soc_block_diagram {
mgmt_core [
fillcolor="#DDF2E3",
label="Management core\nHazard3 by default, branch predictor\nPicoRV32 build option without debug"
label="Management core\nFixed Hazard3, branch predictor\nJTAG Debug Module always present"
];
jtag_dtm [
fillcolor="#E5E7EB",
@@ -91,7 +91,7 @@ digraph mini_soc_block_diagram {
];
user_core [
fillcolor="#DDF2E3",
label="Selected user core\nC0-C4, one active"
label="Selected user core\nC0-C5, one active\nPicoRV32 at C5"
];
dma [
fillcolor="#DDF2E3",
+8 -7
View File
@@ -90,8 +90,8 @@
<title>mgmt_core</title>
<path fill="#ddf2e3" stroke="#4b5563" stroke-width="1.1" d="M1141,-674.48C1141,-674.48 987,-674.48 987,-674.48 981,-674.48 975,-668.48 975,-662.48 975,-662.48 975,-641.48 975,-641.48 975,-635.48 981,-629.48 987,-629.48 987,-629.48 1141,-629.48 1141,-629.48 1147,-629.48 1153,-635.48 1153,-641.48 1153,-641.48 1153,-662.48 1153,-662.48 1153,-668.48 1147,-674.48 1141,-674.48"/>
<text text-anchor="middle" x="1064" y="-660.48" font-family="Arial" font-size="10.00" fill="#111827">Management core</text>
<text text-anchor="middle" x="1064" y="-649.48" font-family="Arial" font-size="10.00" fill="#111827">Hazard3 by default, branch predictor</text>
<text text-anchor="middle" x="1064" y="-638.48" font-family="Arial" font-size="10.00" fill="#111827">PicoRV32 build option without debug</text>
<text text-anchor="middle" x="1064" y="-649.48" font-family="Arial" font-size="10.00" fill="#111827">Fixed Hazard3, branch predictor</text>
<text text-anchor="middle" x="1064" y="-638.48" font-family="Arial" font-size="10.00" fill="#111827">JTAG Debug Module always present</text>
</g>
<!-- mgmt_adapter -->
<g id="node8" class="node">
@@ -145,15 +145,16 @@
<!-- user_core -->
<g id="node9" class="node">
<title>user_core</title>
<path fill="#ddf2e3" stroke="#4b5563" stroke-width="1.1" d="M680,-569.98C680,-569.98 604,-569.98 604,-569.98 598,-569.98 592,-563.98 592,-557.98 592,-557.98 592,-545.98 592,-545.98 592,-539.98 598,-533.98 604,-533.98 604,-533.98 680,-533.98 680,-533.98 686,-533.98 692,-539.98 692,-545.98 692,-545.98 692,-557.98 692,-557.98 692,-563.98 686,-569.98 680,-569.98"/>
<text text-anchor="middle" x="642" y="-554.98" font-family="Arial" font-size="10.00" fill="#111827">Selected user core</text>
<text text-anchor="middle" x="642" y="-543.98" font-family="Arial" font-size="10.00" fill="#111827">C0&#45;C4, one active</text>
<path fill="#ddf2e3" stroke="#4b5563" stroke-width="1.1" d="M680,-574.48C680,-574.48 604,-574.48 604,-574.48 598,-574.48 592,-568.48 592,-562.48 592,-562.48 592,-541.48 592,-541.48 592,-535.48 598,-529.48 604,-529.48 604,-529.48 680,-529.48 680,-529.48 686,-529.48 692,-535.48 692,-541.48 692,-541.48 692,-562.48 692,-562.48 692,-568.48 686,-574.48 680,-574.48"/>
<text text-anchor="middle" x="642" y="-560.48" font-family="Arial" font-size="10.00" fill="#111827">Selected user core</text>
<text text-anchor="middle" x="642" y="-549.48" font-family="Arial" font-size="10.00" fill="#111827">C0&#45;C5, one active</text>
<text text-anchor="middle" x="642" y="-538.48" font-family="Arial" font-size="10.00" fill="#111827">PicoRV32 at C5</text>
</g>
<!-- user_core&#45;&gt;fabric -->
<g id="edge9" class="edge">
<title>user_core&#45;&gt;fabric</title>
<path fill="none" stroke="#4b5563" stroke-width="1.2" d="M636.53,-533.94C632.09,-520.08 625.62,-499.91 619.78,-481.69"/>
<polygon fill="#4b5563" stroke="#4b5563" stroke-width="1.2" points="621.96,-480.48 617.49,-474.57 617.29,-481.98 621.96,-480.48"/>
<path fill="none" stroke="#4b5563" stroke-width="1.2" d="M635.06,-529.34C630.73,-515.85 625.01,-498.03 619.8,-481.75"/>
<polygon fill="#4b5563" stroke="#4b5563" stroke-width="1.2" points="622.07,-480.81 617.59,-474.89 617.4,-482.31 622.07,-480.81"/>
<text text-anchor="middle" x="634" y="-500.08" font-family="Arial" font-size="8.00" fill="#374151">RIB</text>
</g>
<!-- dma -->

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

+5 -7
View File
@@ -28,17 +28,15 @@ only exposes the pad-side subset of `gpio_if`; neither module contains state.
## Management JTAG
`HAVE_DEBUG=YES` is the default for the Hazard3 management-core configuration.
It adds five conditional ASIC pads: `jtag_tck_i_pad`, `jtag_tms_i_pad`,
`jtag_tdi_i_pad`, `jtag_trst_n_i_pad`, and `jtag_tdo_o_pad`. The default DTM
ID code is `0xDEADBEEF` and can be changed with the eight-hex-digit
`JTAG_IDCODE` Make variable. `HAVE_DEBUG=YES` is invalid with `CORE=PICORV32`;
select `HAVE_DEBUG=NO` for that explicit alternative core.
The fixed Hazard3 management core always exposes five ASIC pads:
`jtag_tck_i_pad`, `jtag_tms_i_pad`, `jtag_tdi_i_pad`, `jtag_trst_n_i_pad`, and
`jtag_tdo_o_pad`. The default DTM ID code is `0xDEADBEEF` and can be changed
with the eight-hex-digit `JTAG_IDCODE` Make variable.
The JTAG TCK is an asynchronous clock domain. The canonical clock/reset map
declares a 10 MHz TCK constraint and an asynchronous DMI crossing into the
system clock domain through Hazard3's APB async bridge. FPGA and RTL-testbench
profiles tie the optional JTAG inputs inactive. The Verilator wrapper exposes
profiles tie the JTAG inputs inactive. The Verilator wrapper exposes
them to the local remote-bitbang server used by the debug acceptance flow.
## User IP GPIO ownership
-4
View File
@@ -76,24 +76,20 @@ module retrosoc_top (
wire s_sys_clk;
wire s_aud_clk;
`ifdef HAVE_DEBUG
wire s_jtag_tck;
wire s_jtag_tms;
wire s_jtag_tdi;
wire s_jtag_trst_n;
`endif
clk_wiz_0 u_clk_wiz_0 (
.clk_in1 (clk_i),
.clk_out1(s_sys_clk),
.clk_out2(s_aud_clk)
);
`ifdef HAVE_DEBUG
assign s_jtag_tck = 1'b0;
assign s_jtag_tms = 1'b0;
assign s_jtag_tdi = 1'b0;
assign s_jtag_trst_n = 1'b0;
`endif
retrosoc_asic u_retrosoc (
`include "retrosoc_asic_fpga_mini_bindings.svh"
+271 -131
View File
@@ -1,10 +1,5 @@
{
"entries": [
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_core.v:<line>: Signal is not used: 'm_trig_event_exception'",
"signature": "000fb8dd01a5428a"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/ip/ribp/memory/opipsram.sv:<line>: Signal is not used: 'dummy1'",
@@ -15,6 +10,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_config.vh:<line>: Parameter is not used: 'U_MODE'",
"signature": "00c52f1f83c2580c"
},
{
"count": 3,
"example": "GENUNNAMED:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Unnamed generate block 'genblk1' (IEEE 1800-2023 27.6)",
"signature": "012d196fe4d527a2"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/managed/clusterip/common/rtl/utils/lfsr.sv:<line>: Filename 'lfsr' does not match MODULE name: 'lfsr_galois'",
@@ -50,6 +50,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMEVENT24'",
"signature": "0575591db42a0fbd"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MEIPRA'",
"signature": "05b320a7991ae73c"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMCOUNTER21'",
@@ -90,11 +95,6 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMCOUNTER16'",
"signature": "08e2a109c0d25a59"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_frontend.v:<line>: Signal is not used: 'trigger_break_any'",
"signature": "0904528f6a17265d"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_core.v:<line>: Signal is not used: 'x_pmp_cfg_addr'",
@@ -110,6 +110,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'ALUOP_XNOR'",
"signature": "0973116d3d4b3b32"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_rs1val'",
"signature": "09de4243869d0409"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'ALUOP_ORC_B'",
@@ -155,11 +160,6 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_config.vh:<line>: Parameter is not used: 'W_ADDR'",
"signature": "0bdf9e1cb55e00af"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_core.v:<line>: Signal is not used: 'x_trig_m_en'",
"signature": "0c4a1987e01af028"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/femtorv32/user_core_design.sv:<line>: Filename 'user_core_design' does not match MODULE name: 'mpw_c3'",
@@ -210,6 +210,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMEVENT3'",
"signature": "0fc1f528cb6bfcf4"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_insn_addr'",
"signature": "10df4aa949a20760"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/mini/dv/sva/rib_protocol_sva.sv:<line>: Filename 'rib_protocol_sva' does not match MODULE name: 'rib_bus_sva'",
@@ -225,6 +230,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_config.vh:<line>: Parameter is not used: 'MVENDORID_VAL'",
"signature": "12bc678368ec196f"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MEIPA'",
"signature": "12bdd500c7a3121d"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/serv/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'o_ext_rs2'",
@@ -240,6 +250,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMCOUNTER5H'",
"signature": "145e16b1336a7477"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Bits of signal are not used: 'raddr2'[5]",
"signature": "14fcd75ce06a0174"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/clusterip/archinfo/rtl/archinfo_reg_pkg.sv:<line>: Parameter is not used: 'ARCHINFO_IDH_ADDR'",
@@ -430,11 +445,6 @@
"example": "UNUSEDSIGNAL:$ROOT/rtl/ip/ribp/storage/xpi.sv:<line>: Signal is not driven, nor used: 's_xpi_rxlowb'",
"signature": "208d42d47a5e277e"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/mini/top/mgmt_core_wrapper.sv:<line>: Instance pin connected by name with empty reference: 'dbg_data0_wen'",
"signature": "21c010a36c0ecebd"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$BUILD/generated/pin_map/rtl/retrosoc_asic_verilator_bindings.svh:<line>: Instance pin connected by name with empty reference: 'gpio_27_io_pad'",
@@ -465,6 +475,11 @@
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/darkriscv/darkriscv/darkriscv.v:<line>: Bits of signal are not used: 'FCT7'[6,4:0]",
"signature": "24678d8b6abaec70"
},
{
"count": 2,
"example": "GENUNNAMED:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Unnamed generate block 'genblk3' (IEEE 1800-2023 27.6)",
"signature": "2495687cd718dcba"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMCOUNTER28H'",
@@ -550,6 +565,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/rv_opcodes.vh:<line>: Parameter is not used: 'RV_RS2_BITS'",
"signature": "2ba7afcc1b2d4504"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/debug/dm/hazard3_dm.v:<line>: Parameter is not used: 'SBERROR_OK'",
"signature": "2ce0fd1da9cc19ce"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/kianv_rv32ima/kianV/multiplier_extension_decoder.v:<line>: Filename 'multiplier_extension_decoder' does not match MODULE name: 'mpw_core_kianv_rv32ima_multiplier_extension_decoder'",
@@ -600,11 +620,6 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'MEMOP_LH'",
"signature": "316eeb1293a744d1"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_core.v:<line>: Signal is not used: 'm_trig_event_trap_cause'",
"signature": "3181b9bed50e0b99"
},
{
"count": 2,
"example": "PINCONNECTEMPTY:$ROOT/rtl/ip/ribp/interconnect/ribp2ribp.sv:<line>: Instance pin connected by name with empty reference: 'wr_full_o'",
@@ -615,11 +630,6 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/clusterip/archinfo/rtl/archinfo_reg_pkg.sv:<line>: Parameter is not used: 'ARCHINFO_IDL_ADDR'",
"signature": "322396a00ca3c09c"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/mini/top/mgmt_core_wrapper.sv:<line>: Instance pin connected by name with empty reference: 'dbg_running'",
"signature": "325f409692811d44"
},
{
"count": 1,
"example": "WIDTHEXPAND:$ROOT/rtl/managed/mpw/core/darkriscv/darkriscv/darkriscv.v:<line>: Operator COND expects 32 bits on the Conditional True, but Conditional True's LTS generates 1 bits.",
@@ -670,6 +680,16 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_config.vh:<line>: Parameter is not used: 'REDUCED_BYPASS'",
"signature": "354fd21123f3a2ac"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_mem_valid'",
"signature": "357a9505802ac588"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'eoi'",
"signature": "3582de488a303cb6"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_config.vh:<line>: Parameter is not used: 'MTVEC_WMASK'",
@@ -805,11 +825,6 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_width_const.vh:<line>: Parameter is not used: 'W_MULOP'",
"signature": "3e3ced20ab2d11ea"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/mini/top/mgmt_core_wrapper.sv:<line>: Instance pin connected by name with empty reference: 'dbg_halted'",
"signature": "3efc841792f6c49a"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$BUILD/generated/pin_map/rtl/retrosoc_asic_verilator_bindings.svh:<line>: Instance pin connected by name with empty reference: 'gpio_30_io_pad'",
@@ -830,11 +845,6 @@
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/kianv_rv32ima/kianV/fifo.v:<line>: Filename 'fifo' does not match MODULE name: 'mpw_core_kianv_rv32ima_fifo'",
"signature": "40593d426a14f2c9"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_frontend.v:<line>: Signal is not used: 'btb_set_target_addr'",
"signature": "41ca3e122d867001"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMCOUNTER8'",
@@ -895,6 +905,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_width_const.vh:<line>: Parameter is not used: 'W_BCOND'",
"signature": "4584857873073628"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_mem_wstrb'",
"signature": "45b8e1ffe0581381"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'ALUOP_RS2'",
@@ -940,6 +955,11 @@
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/kianv_rv32i/kianV/control_unit.v:<line>: Filename 'control_unit' does not match MODULE name: 'mpw_core_kianv_rv32i_control_unit'",
"signature": "47ccc730f259e974"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Filename 'user_core_design' does not match MODULE name: 'mpw_c5'",
"signature": "4801ccefb75b11ae"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/ip/ribp/storage/xpi.sv:<line>: Signal is not used: 's_xpi_alttyp'",
@@ -1032,8 +1052,8 @@
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_core.v:<line>: Signal is not used: 'f_trigger_m_mode'",
"signature": "4c5d18bdecb9382f"
"example": "UNUSEDPARAM:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Parameter is not used: 'REGS_INIT_ZERO'",
"signature": "4cb4e6e68dedd942"
},
{
"count": 1,
@@ -1060,6 +1080,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMEVENT30'",
"signature": "4de9df4639f15bf4"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Filename 'picorv32' does not match MODULE name: 'mpw_core_picorv32_picorv32'",
"signature": "4e2e851f282670eb"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/kianv_rv32ima/kianV/store_alignment.v:<line>: Filename 'store_alignment' does not match MODULE name: 'mpw_core_kianv_rv32ima_store_alignment'",
@@ -1210,6 +1235,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MIDELEG'",
"signature": "56eba9c6e5b585b8"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'pcpi_rd'",
"signature": "56f5e81e565a48e6"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/ip/ribp/memory/opipsram.sv:<line>: Signal is not used: 'irq_o'",
@@ -1230,11 +1260,6 @@
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/kianv_rv32ima/kianV/alu.v:<line>: Bits of signal are not used: 'sra_srai_rslt'[63:32]",
"signature": "57fe2ba51c012db9"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/mini/top/mgmt_core_wrapper.sv:<line>: Instance pin connected by name with empty reference: 'dbg_instr_data_rdy'",
"signature": "5817d543a504142c"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'MEMOP_LB'",
@@ -1335,11 +1360,6 @@
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/serv/serv/serv_bufreg.v:<line>: Filename 'serv_bufreg' does not match MODULE name: 'mpw_core_serv_serv_bufreg'",
"signature": "61aa422d0c89d539"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_frontend.v:<line>: Signal is not used: 'trigger_break_d_mode'",
"signature": "622747e89fd53878"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'PMPCFGM0'",
@@ -1357,13 +1377,13 @@
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/mini/top/mgmt_core_wrapper.sv:<line>: Instance pin connected by name with empty reference: 'dbg_sbus_rdy'",
"signature": "63c469702eb1c598"
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/serv/serv/serv_synth_wrapper.v:<line>: Filename 'serv_synth_wrapper' does not match MODULE name: 'mpw_core_serv_serv_synth_wrapper'",
"signature": "63e3dd4583dab654"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/serv/serv/serv_synth_wrapper.v:<line>: Filename 'serv_synth_wrapper' does not match MODULE name: 'mpw_core_serv_serv_synth_wrapper'",
"signature": "63e3dd4583dab654"
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_rs2val'",
"signature": "64024c60f7ccae5a"
},
{
"count": 1,
@@ -1465,31 +1485,31 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MSECCFG'",
"signature": "6cb6b8ad455cc035"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/mini/top/mgmt_core_wrapper.sv:<line>: Instance pin connected by name with empty reference: 'dbg_data0_wdata'",
"signature": "6def5419f7bda56c"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/ip/ribp/storage/spisd_init.sv:<line>: Parameter is not used: 'DIV_FREQ'",
"signature": "6e3568070195ade2"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/mini/top/mgmt_core_wrapper.sv:<line>: Instance pin connected by name with empty reference: 'dbg_sbus_err'",
"signature": "6ee45b6539994edb"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'ALUOP_UNZIP'",
"signature": "6f439f5e9a4d68c8"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_rs2val_valid'",
"signature": "6f447f6386d6d2e0"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/mini/top/rcu.sv:<line>: Filename 'rcu' does not match MODULE name: 'pll_rcu_controller'",
"signature": "6f97fc8d1bb13758"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/debug/dm/hazard3_dm.v:<line>: Bits of signal are not used: 'dmi_paddr'[1:0]",
"signature": "6fa77ea010fc54b8"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/serv/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'o_mdu_valid'",
@@ -1510,6 +1530,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/rv_opcodes.vh:<line>: Parameter is not used: 'RV_RS1_LSB'",
"signature": "720de1ded416bbe9"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_rs1val_valid'",
"signature": "7262cf0196977607"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/ip/ribp/multimedia/dvp.sv:<line>: Signal is not used: 's_rx_elem_num'",
@@ -1520,11 +1545,21 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_config.vh:<line>: Parameter is not used: 'DEBUG_SUPPORT'",
"signature": "73096c7d99d662dd"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_mem_instr'",
"signature": "73a9cb4854f22611"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_config.vh:<line>: Parameter is not used: 'EXTENSION_ZBS'",
"signature": "73ca0e54008058b8"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'pcpi_valid'",
"signature": "740e077b411a6c34"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'ALUOP_ANDN'",
@@ -1540,6 +1575,11 @@
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/serv/serv/serv_rf_if.v:<line>: Filename 'serv_rf_if' does not match MODULE name: 'mpw_core_serv_serv_rf_if'",
"signature": "74d93eda664174c1"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_mem_ready'",
"signature": "7534660ce7698fce"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'PMPADDR9'",
@@ -1550,11 +1590,21 @@
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/serv/serv/serv_bufreg.v:<line>: Signal is not used: 'i_shamt'",
"signature": "758916bc522c013a"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'mem_busy'",
"signature": "75b19c30cd945e2c"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MCOUNTEREN'",
"signature": "776c10307a688b62"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_mem_rdata'",
"signature": "778c9b0359632782"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MSLEEP'",
@@ -1567,13 +1617,13 @@
},
{
"count": 1,
"example": "SPECIFYIGN:$ROOT/pdk/IHP-Open-PDK/ihp-sg13g2/libs.ref/sg13g2_sram/verilog/RM_IHPSG13_1P_1024x64_c2_bm_bist.v:<line>: Ignoring unsupported: specify block construct",
"signature": "7a759d6e07651fd8"
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_mem_addr'",
"signature": "7a630762ee235ddb"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/mini/top/mgmt_core_wrapper.sv:<line>: Instance pin connected by name with empty reference: 'dbg_instr_caught_exception'",
"signature": "7aa1422f28590293"
"example": "SPECIFYIGN:$ROOT/pdk/IHP-Open-PDK/ihp-sg13g2/libs.ref/sg13g2_sram/verilog/RM_IHPSG13_1P_1024x64_c2_bm_bist.v:<line>: Ignoring unsupported: specify block construct",
"signature": "7a759d6e07651fd8"
},
{
"count": 1,
@@ -1670,6 +1720,16 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'MEMOP_SH'",
"signature": "830d44a2987b0b08"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Parameter is not used: 'ID'",
"signature": "8353387b5aa900c7"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'trap'",
"signature": "837ab6f6d76c01b6"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/clusterip/common/rtl/cdc/cdc_2phase.sv:<line>: Signal is not driven, nor used: 's_ack_src_d'",
@@ -1805,6 +1865,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'EXCEPT_STORE_ALIGN'",
"signature": "8bff5f666595c600"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_valid_insn'",
"signature": "8c190315775ebd73"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/kianv_rv32ima/user_core_design.sv:<line>: Bits of signal are not used: 's_rib_addr'[1:0]",
@@ -1815,6 +1880,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMEVENT13'",
"signature": "8cbe5790e81f5b64"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/debug/cdc/hazard3_apb_async_bridge.v:<line>: Signal is not used: 'src_penable'",
"signature": "8cbe8e35b42cd8b2"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/serv/serv/serv_mem_if.v:<line>: Filename 'serv_mem_if' does not match MODULE name: 'mpw_core_serv_serv_mem_if'",
@@ -1830,11 +1900,6 @@
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/femtorv32/user_core_design.sv:<line>: Signal is not used: 'irq_i'",
"signature": "8d790409df1b9130"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/mini/top/mgmt_core_wrapper.sv:<line>: Instance pin connected by name with empty reference: 'dbg_instr_caught_ebreak'",
"signature": "8f145c7b719e7fc2"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/ip/ribp/memory/opipsram.sv:<line>: Signal is not used: 'io_di_i'",
@@ -1845,6 +1910,11 @@
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_core.v:<line>: Signal is not used: 'x_pmp_cfg_wdata'",
"signature": "8f5f2bf62f5107ac"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MEINEXT'",
"signature": "90a76897a1e4367a"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/mpw/core/darkriscv/darkriscv/darkriscv.v:<line>: Parameter is not used: 'CPTR'",
@@ -2020,6 +2090,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'MEMOP_LBU'",
"signature": "999e827601c9bbf9"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'pcpi_insn'",
"signature": "9a45bc4caa931d1d"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_config.vh:<line>: Parameter is not used: 'W_DATA'",
@@ -2050,11 +2125,6 @@
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/serv/serv/serv_top.v:<line>: Filename 'serv_top' does not match MODULE name: 'mpw_core_serv_serv_top'",
"signature": "9bc9f670bb4d815b"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_frontend.v:<line>: Signal is not used: 'pmp_trigger_check_dph_m_mode'",
"signature": "9c371918925abc2d"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/ip/ribp/peripheral/sysctrl.sv:<line>: Filename 'sysctrl' does not match IFACE name: 'sysctrl_if'",
@@ -2115,11 +2185,6 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'DPC'",
"signature": "a06ddefe87bea712"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_core.v:<line>: Signal is not used: 'x_trig_cfg_wen'",
"signature": "a14fd17658d94c32"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MSCRATCH'",
@@ -2137,8 +2202,8 @@
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_frontend.v:<line>: Signal is not used: 'btb_clear'",
"signature": "a364eb2716792fd4"
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_mem_wdata'",
"signature": "a2ee253d8eb81c7d"
},
{
"count": 1,
@@ -2150,6 +2215,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'BCOND_NEVER'",
"signature": "a3a2cef6f858e478"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'mem_instr'",
"signature": "a44a54010cce5f05"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMCOUNTER18H'",
@@ -2240,11 +2310,6 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/mpw/core/serv/user_core_design.sv:<line>: Parameter is not used: 'ID'",
"signature": "aac36aa7f03bedcc"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_core.v:<line>: Signal is not used: 'f_trigger_addr'",
"signature": "ab24c1149bdbbb6d"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'PMPADDR1'",
@@ -2265,11 +2330,21 @@
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/hazard3/hdl/hazard3_cpu_2port.v:<line>: Instance pin connected by name with empty reference: 'bus_aph_panic_i'",
"signature": "ac01cb1c5156a90f"
},
{
"count": 21,
"example": "BLKSEQ:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Blocking assignment '=' in sequential logic process",
"signature": "ac28e0f261d7e48f"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/ip/ribp/storage/spisd.sv:<line>: Filename 'spisd' does not match MODULE name: 'ribp_spisd'",
"signature": "ac8b69917114a248"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'pcpi_wait'",
"signature": "ad07d6d5d988a187"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'ALUOP_SRA'",
@@ -2295,6 +2370,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'CYCLEH'",
"signature": "ae37dfea9fdb082d"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'trace_valid'",
"signature": "aeb773174300946d"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'ALUOP_BCLR'",
@@ -2325,6 +2405,11 @@
"example": "IMPORTSTAR:$ROOT/rtl/managed/clusterip/archinfo/rtl/archinfo_reg.sv:<line>: 'import::*' in $unit scope may pollute global namespace",
"signature": "b13fd37a1362d500"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'mem_la_wstrb'",
"signature": "b195bbfa4388905f"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_core.v:<line>: Signal is not used: 'x_pmp_cfg_wen'",
@@ -2335,6 +2420,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MSTATUS'",
"signature": "b2505fca5f4d7124"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'pcpi_rs1'",
"signature": "b2c8cb1e6178b76b"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMEVENT10'",
@@ -2435,6 +2525,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'M_OP_DIVU'",
"signature": "bb92bfd7f1c31784"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'trace_data'",
"signature": "bbe26f87c17fe061"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMEVENT22'",
@@ -2470,6 +2565,11 @@
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/darkriscv/darkriscv/darkriscv.v:<line>: Signal is not used: 'IERR'",
"signature": "bd725aee67be20ac"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MEIFA'",
"signature": "bdd4bafae73b3f5e"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'PMPADDR4'",
@@ -2510,11 +2610,6 @@
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/clusterip/rtc/rtl/apb4_rtc.sv:<line>: Instance pin connected by name with empty reference: 'clk_fir_trg_o'",
"signature": "bfd3207837c35f83"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_frontend.v:<line>: Signal is not used: 'btb_set_src_size'",
"signature": "c0681281899ff1f2"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/kianv_rv32ima/kianV/csr_decoder.v:<line>: Filename 'csr_decoder' does not match MODULE name: 'mpw_core_kianv_rv32ima_csr_decoder'",
@@ -2525,11 +2620,6 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'ALUOP_SHXADD'",
"signature": "c18ba22b0ecb8975"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_frontend.v:<line>: Signal is not used: 'btb_set_src_addr'",
"signature": "c1ed209e86e1ead7"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/kianv_rv32ima/kianV/store_decoder.v:<line>: Bits of signal are not used: 'funct3'[2]",
@@ -2575,6 +2665,11 @@
"example": "PINCONNECTEMPTY:$BUILD/generated/pin_map/rtl/retrosoc_asic_verilator_bindings.svh:<line>: Instance pin connected by name with empty reference: 'gpio_5_io_pad'",
"signature": "c6838d7b98284986"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'pcpi_ready'",
"signature": "c6e26f231e951afb"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'MEMOP_SW'",
@@ -2630,6 +2725,11 @@
"example": "UNUSEDSIGNAL:$ROOT/rtl/ip/ribp/storage/sdio.sv:<line>: Signal is not used: 'dat_di_i'",
"signature": "cb8001b4af1077a9"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'pcpi_wr'",
"signature": "cb8eca0c4a81d222"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/clusterip/timer/rtl/apb4_tmr.sv:<line>: Instance pin connected by name with empty reference: 'dat_o'",
@@ -2692,13 +2792,13 @@
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_core.v:<line>: Signal is not used: 'x_trig_cfg_addr'",
"signature": "d0a38cc720ac8ab8"
"example": "PROCASSINIT:$ROOT/rtl/managed/mpw/core/darkriscv/darkriscv/darkriscv.v:<line>: Procedural assignment to declaration with initial value: 'FLUSH'",
"signature": "d14379be6774bed8"
},
{
"count": 1,
"example": "PROCASSINIT:$ROOT/rtl/managed/mpw/core/darkriscv/darkriscv/darkriscv.v:<line>: Procedural assignment to declaration with initial value: 'FLUSH'",
"signature": "d14379be6774bed8"
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'pcpi_rs2'",
"signature": "d180668432728ed4"
},
{
"count": 1,
@@ -2740,11 +2840,6 @@
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_frontend.v:<line>: Signal is not used: 'pmp_i_kill'",
"signature": "d53357cefd665164"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_core.v:<line>: Signal is not used: 'x_trig_cfg_wdata'",
"signature": "d5668f0299879d4d"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/serv/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'o_ext_funct3'",
@@ -2755,6 +2850,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_config.vh:<line>: Parameter is not used: 'EXTENSION_ZBKB'",
"signature": "d594ddfb87bc4c87"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'mem_la_wdata'",
"signature": "d61e21ff3d24c8a1"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/kianv_rv32i/user_core_design.sv:<line>: Signal is not used: 'irq_i'",
@@ -2765,6 +2865,11 @@
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/kianv_rv32i/kianV/main_fsm.v:<line>: Filename 'main_fsm' does not match MODULE name: 'mpw_core_kianv_rv32i_main_fsm'",
"signature": "d7ce843ff26f9abe"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/debug/dm/hazard3_dm.v:<line>: Parameter is not used: 'PROGBUF_SIZE'",
"signature": "d806c7ef63c8398e"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/ip/ribp/peripheral/gpio.sv:<line>: Signal is not used: 'irq_o'",
@@ -2775,6 +2880,11 @@
"example": "DECLFILENAME:$ROOT/rtl/ip/ribp/memory/sdram.sv:<line>: Filename 'sdram' does not match IFACE name: 'sdram_if'",
"signature": "d8996d75a35d3386"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'mem_la_addr'",
"signature": "d8df02da4f56780c"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/mini/top/mgmt_core_wrapper.sv:<line>: Instance pin connected by name with empty reference: 'hexcl'",
@@ -2785,11 +2895,26 @@
"example": "PINCONNECTEMPTY:$BUILD/generated/pin_map/rtl/retrosoc_asic_verilator_bindings.svh:<line>: Instance pin connected by name with empty reference: 'gpio_6_io_pad'",
"signature": "da214ececa878a17"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MEICONTEXT'",
"signature": "da4e1c0063ee0d37"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/serv/serv/serv_bufreg.v:<line>: Signal is not used: 'i_right_shift_op'",
"signature": "da5c9ee48fb062c2"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Signal is not used: 'dbg_ascii_state'",
"signature": "da6b8cd7c9d83942"
},
{
"count": 2,
"example": "GENUNNAMED:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Unnamed generate block 'genblk2' (IEEE 1800-2023 27.6)",
"signature": "da854738bdfa480e"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/ip/ribp/peripheral/timer.sv:<line>: Filename 'timer' does not match MODULE name: 'ribp_timer'",
@@ -2855,6 +2980,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'PMPADDR14'",
"signature": "e1551efdb128b61e"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Bits of signal are not used: 'raddr1'[5]",
"signature": "e1d441c3c4fd1cb6"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/darkriscv/darkriscv/darkriscv.v:<line>: Bits of signal are not used: 'ALL1'[7:0]",
@@ -2865,6 +2995,11 @@
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/darkriscv/darkriscv/darkriscv.v:<line>: Signal is not used: 'EBRK'",
"signature": "e20a76642504e640"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'mem_la_read'",
"signature": "e21c0876910737dc"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MCONTEXT'",
@@ -2910,6 +3045,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_config.vh:<line>: Parameter is not used: 'IRQ_INPUT_BYPASS'",
"signature": "e503c88cc7f36d36"
},
{
"count": 2,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Bits of signal are not used: 'pcpi_insn'[24:15,11:7]",
"signature": "e598be8668784cc8"
},
{
"count": 1,
"example": "DECLFILENAME:$ROOT/rtl/managed/mpw/core/femtorv32/femtorv32_tachyon.v:<line>: Filename 'femtorv32_tachyon' does not match MODULE name: 'mpw_core_femtorv32_FemtoRV32'",
@@ -2920,6 +3060,16 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'PMPADDR10'",
"signature": "e5c265b0e703668b"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Parameter is not used: 'regfile_size'",
"signature": "e663bc3818a3022c"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MEIEA'",
"signature": "e76bc25ed2f5fd1d"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/ip/ribp/storage/xpi.sv:<line>: Instance pin connected by name with empty reference: 'xpi_accmd_o'",
@@ -2940,6 +3090,11 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMEVENT8'",
"signature": "e83b011f2d06370d"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/managed/mpw/core/picorv32/user_core_design.sv:<line>: Instance pin connected by name with empty reference: 'mem_la_write'",
"signature": "e86e6a70e9fe9305"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/clusterip/common/rtl/interface/ahbl_if.sv:<line>: Signal is not used: 'hmastlock'",
@@ -2957,13 +3112,13 @@
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MISA'",
"signature": "e98223c9514b66f3"
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/mpw/core/picorv32/picorv32/picorv32.v:<line>: Bits of signal are not used: 'waddr'[5]",
"signature": "e96c447784b825a7"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_frontend.v:<line>: Signal is not used: 'btb_set'",
"signature": "e9c8969b9acc562b"
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MISA'",
"signature": "e98223c9514b66f3"
},
{
"count": 1,
@@ -3000,11 +3155,6 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_width_const.vh:<line>: Parameter is not used: 'W_MEMOP'",
"signature": "ebefcbb26f1f9236"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_core.v:<line>: Signal is not used: 'm_trig_event_interrupt'",
"signature": "eca794f0ed109cfb"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_ops.vh:<line>: Parameter is not used: 'ALUOP_CPOP'",
@@ -3066,7 +3216,7 @@
"signature": "f1f0ace29e0a56d0"
},
{
"count": 29,
"count": 30,
"example": "PINCONNECTEMPTY:$BUILD/generated/pin_map/rtl/retrosoc_asic_pad_bindings.svh:<line>: Instance pin connected by name with empty reference: 'p2c'",
"signature": "f2548a0d3b636cfb"
},
@@ -3090,11 +3240,6 @@
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MCOUNTINHIBIT'",
"signature": "f423f1b5d0e86d3f"
},
{
"count": 1,
"example": "UNUSEDSIGNAL:$ROOT/rtl/managed/hazard3/hdl/hazard3_frontend.v:<line>: Signal is not used: 'pmp_trigger_check_dph_addr'",
"signature": "f453db0239cd62ee"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/mini/top/mgmt_core_wrapper.sv:<line>: Instance pin connected by name with empty reference: 'clk_en'",
@@ -3220,11 +3365,6 @@
"example": "PROCASSINIT:$ROOT/rtl/managed/mpw/core/darkriscv/darkriscv/darkbridge.v:<line>: Procedural assignment to declaration with initial value: 'XATAI2'",
"signature": "fe2cb50cfb98e646"
},
{
"count": 1,
"example": "PINCONNECTEMPTY:$ROOT/rtl/mini/top/mgmt_core_wrapper.sv:<line>: Instance pin connected by name with empty reference: 'dbg_sbus_rdata'",
"signature": "fe5a379927d7a450"
},
{
"count": 1,
"example": "UNUSEDPARAM:$ROOT/rtl/managed/hazard3/hdl/hazard3_csr_addr.vh:<line>: Parameter is not used: 'MHPMEVENT26'",
+9 -4
View File
@@ -1,22 +1,27 @@
{
"entries": [
{
"count": 2,
"count": 1,
"example": "warning:asynchronous load value missing for variable '\\update_hart_data0.i'",
"signature": "08138257546e860c"
},
{
"count": 1,
"example": "warning:asynchronous load value missing for variable '\\update_irq_reg_arrays.i'",
"signature": "56c5f69398be8d7b"
},
{
"count": 11,
"count": 10,
"example": "warning:The network is combinational (run \"fraig\" or \"fraig_sweep\").",
"signature": "62cc5ee554312205"
},
{
"count": 4,
"count": 2,
"example": "warning:asynchronous load value missing for variable '\\update_nonconst.prev'",
"signature": "a30df20b98d49196"
},
{
"count": 4,
"count": 2,
"example": "warning:asynchronous load value missing for variable '\\update_nonconst.nonconst'",
"signature": "d35463a1de40c7b2"
}
File diff suppressed because it is too large. Load diff
+1 -8
View File
@@ -31,12 +31,10 @@ FILELIST_STAMP := $(GENERATED_FL_DIR)/.stamp
FILELIST_TEMPLATES := $(sort $(wildcard $(ROOT_PATH)/rtl/filelist/pdk_*.fl) \
$(wildcard $(RTL_PATH)/filelist/*.fl) $(RTL_PATH)/lint.msg)
ifeq ($(CORE),HAZARD3)
MPW_MANAGEMENT_CORE_CHECK := @test -d $(ROOT_PATH)/rtl/managed/hazard3/hdl || { \
echo "missing $(ROOT_PATH)/rtl/managed/hazard3; run 'make setup-mpw' first" >&2; \
exit 1; \
}
endif
$(MPW_STAMP):
@test -d $(ROOT_PATH)/rtl/managed/mpw/.git || { \
@@ -143,12 +141,7 @@ RTL_FLIST := -f $(MEMORY_MAP_FILELIST) -f $(SOC_TOPOLOGY_FILELIST) -f $(USER_EXT
RTL_FLIST += -f $(GENERATED_FL_DIR)/clusterip.fl
RTL_FLIST += -f $(GENERATED_FL_DIR)/ip.fl
RTL_FLIST += -f $(GENERATED_FL_DIR)/tech.fl
ifeq ($(CORE),HAZARD3)
MGMT_CORE_FILELIST := core_hazard3.fl
else
MGMT_CORE_FILELIST := core_picorv32.fl
endif
RTL_FLIST += -f $(GENERATED_FL_DIR)/$(MGMT_CORE_FILELIST)
RTL_FLIST += -f $(GENERATED_FL_DIR)/core_hazard3.fl
RTL_FLIST += -f $(MPW_OUTPUT_DIR)/core/core.fl
RTL_FLIST += -f $(MPW_OUTPUT_DIR)/ip/ip.fl
+7 -11
View File
@@ -28,12 +28,10 @@ module retrosoc_tb;
`ifdef HAVE_PLL
reg r_xtal_clk;
`endif
`ifdef HAVE_DEBUG
wire s_jtag_tck;
wire s_jtag_tms;
wire s_jtag_tdi;
wire s_jtag_trst_n;
`endif
wire s_jtag_tck;
wire s_jtag_tms;
wire s_jtag_tdi;
wire s_jtag_trst_n;
wire s_uart0_tx;
// for handle x-prop issue
wire s_uart0_rx = 1'b1;
@@ -86,15 +84,13 @@ module retrosoc_tb;
always #(1000 / AUD_CPU_FREQ / 2) r_aud_clk = (r_aud_clk === 1'b0);
// connect inout pad
assign s_ext_clk = r_ext_clk;
assign s_aud_clk = r_aud_clk;
assign s_rst_n = r_rst_n;
`ifdef HAVE_DEBUG
assign s_ext_clk = r_ext_clk;
assign s_aud_clk = r_aud_clk;
assign s_rst_n = r_rst_n;
assign s_jtag_tck = 1'b0;
assign s_jtag_tms = 1'b0;
assign s_jtag_tdi = 1'b0;
assign s_jtag_trst_n = 1'b0;
`endif
retrosoc_asic u_retrosoc_asic (
`include "retrosoc_asic_tb_bindings.svh"
-8
View File
@@ -53,7 +53,6 @@ Emulator::Emulator(cxxopts::ParseResult &res) {
dutPtr = new Vretrosoc_top;
reset();
#ifdef HAVE_DEBUG
if (args.jtagPort > 0) {
if (args.jtagPort > 65535UL) {
std::cerr << "remote-bitbang port is outside the TCP range" << std::endl;
@@ -64,7 +63,6 @@ Emulator::Emulator(cxxopts::ParseResult &res) {
exit(1);
}
}
#endif
if (args.dumpWave) {
#ifdef DUMP_WAVE_FST
@@ -99,12 +97,10 @@ void Emulator::reset() {
<< std::endl;
dutPtr->rst_n_i = 1;
dutPtr->ext_clk_i = 0;
#ifdef HAVE_DEBUG
dutPtr->jtag_tck_i = 0;
dutPtr->jtag_tms_i = 0;
dutPtr->jtag_tdi_i = 0;
dutPtr->jtag_trst_n_i = 0;
#endif
dutPtr->eval();
// std::cout << "rst_n_i: " << static_cast<unsigned>(dutPtr->rst_n_i) << " ext_clk_i: " <<
// static_cast<unsigned>(dutPtr->ext_clk_i) << std::endl;
@@ -125,9 +121,7 @@ void Emulator::reset() {
}
dutPtr->rst_n_i = 1;
#ifdef HAVE_DEBUG
dutPtr->jtag_trst_n_i = 1;
#endif
for (int i = 0; i < 5; i++) {
dutPtr->ext_clk_i = !dutPtr->ext_clk_i;
dutPtr->eval();
@@ -167,13 +161,11 @@ bool Emulator::getArriveTime() {
void Emulator::runSim() {
std::cout << rang::fg::yellow << "Running DUT simulation..." << rang::fg::reset << std::endl;
while (!Verilated::gotFinish() && signal_received == 0 && !getArriveTime()) {
#ifdef HAVE_DEBUG
// TCP polling need not occur on every simulation half-cycle. A JTAG
// command is still evaluated one-by-one by RemoteBitbang::service().
if (remoteBitbang && (cycle & 0x3fU) == 0U && !remoteBitbang->service(*dutPtr)) {
break;
}
#endif
step();
}
dutPtr->final();
-4
View File
@@ -13,9 +13,7 @@ namespace chrono = std::chrono;
#endif
#include "cxxopts.hpp"
#ifdef HAVE_DEBUG
#include "RemoteBitbang.hpp"
#endif
class Emulator {
public:
@@ -43,9 +41,7 @@ class Emulator {
std::string image = "";
} args;
#ifdef HAVE_DEBUG
std::unique_ptr<RemoteBitbang> remoteBitbang;
#endif
#ifdef DUMP_WAVE_FST
VerilatedFstC *wavePtr = nullptr;
@@ -1,7 +1,10 @@
# Hazard3 RISC-V Debug Module through the local Verilator remote-bitbang TAP.
# The caller must define jtag_port before loading this file.
adapter driver remote_bitbang
remote_bitbang port $jtag_port
# OpenOCD 0.11 uses remote_bitbang_port; 0.12 and later use the grouped form.
if {[catch {remote_bitbang port $jtag_port}]} {
remote_bitbang_port $jtag_port
}
adapter speed 10000
transport select jtag
-1
View File
@@ -1 +0,0 @@
/picorv32/picorv32_ver.v
+2 -1
View File
@@ -8,7 +8,8 @@
{"slot": 1, "module": "mpw_c1", "instance": "u_mpw_core_kianv_rv32ima", "bus": "ribp", "reset": "sync"},
{"slot": 2, "module": "mpw_c2", "instance": "u_mpw_core_serv", "bus": "ribp", "reset": "async"},
{"slot": 3, "module": "mpw_c3", "instance": "u_mpw_core_femtorv32", "bus": "ribp", "reset": "async"},
{"slot": 4, "module": "mpw_c4", "instance": "u_mpw_core_darkriscv", "bus": "ribp", "reset": "async"}
{"slot": 4, "module": "mpw_c4", "instance": "u_mpw_core_darkriscv", "bus": "ribp", "reset": "async"},
{"slot": 5, "module": "mpw_c5", "instance": "u_mpw_core_picorv32", "bus": "ribp", "reset": "sync"}
],
"ip_targets": [
{"slot": 1, "module": "mpw_i1", "instance": "u_mpw_ip_tiny_timer"},
+1 -1
View File
@@ -1,5 +1,5 @@
{
+lint=all;
-file=/hazard3/arith/hazard3_muldiv_seq.v,/hazard3/hazard3_frontend.v,/hazard3/arith/hazard3_onehot_encode.v,/hazard3/hazard3_instr_decompress.v,/pdk/icsprout55-pdk/IP/IO/ICsprout_55LLULP1233_IO_251013/verilog/icsIOA_N55_3P3.v,/pdk/icsprout55-pdk/IP/STD_cell/ics55_LLSC_H7C_V1p10C100/ics55_LLSC_H7CR/verilog/ics55_LLSC_H7CR.v,/pdk/icsprout55-pdk/IP/STD_cell/ics55_LLSC_H7C_V1p10C100/ics55_LLSC_H7CL/verilog/ics55_LLSC_H7CL.v,/pdk/icsprout55-pdk/IP/STD_cell/ics55_LLSC_H7C_V1p10C100/ics55_LLSC_H7CH/verilog/ics55_LLSC_H7CH.v,/pdk/IHP-Open-PDK/ihp-sg13g2/libs.ref/sg13g2_stdcell/verilog/sg13g2_stdcell.v,/clusterip/i2c/model/at24cxxx.sv,/clusterip/spi/model/w25q128jvxim.sv,/picorv32/picorv32_ver.v,/picorv32/picorv32.v,/clusterip/common/rtl/cdc/cdc_2phase.sv,/clusterip/common/rtl/utils/register.sv,/clusterip/uart/model/rs232.sv,/tb/retrosoc_tb.sv,/clusterip/i2s/model/mic.sv,/model/ESP_PSRAM64H.sv,/third_party/model/sdram/sdr.v;
-file=/hazard3/arith/hazard3_muldiv_seq.v,/hazard3/hazard3_frontend.v,/hazard3/arith/hazard3_onehot_encode.v,/hazard3/hazard3_instr_decompress.v,/pdk/icsprout55-pdk/IP/IO/ICsprout_55LLULP1233_IO_251013/verilog/icsIOA_N55_3P3.v,/pdk/icsprout55-pdk/IP/STD_cell/ics55_LLSC_H7C_V1p10C100/ics55_LLSC_H7CR/verilog/ics55_LLSC_H7CR.v,/pdk/icsprout55-pdk/IP/STD_cell/ics55_LLSC_H7C_V1p10C100/ics55_LLSC_H7CL/verilog/ics55_LLSC_H7CL.v,/pdk/icsprout55-pdk/IP/STD_cell/ics55_LLSC_H7C_V1p10C100/ics55_LLSC_H7CH/verilog/ics55_LLSC_H7CH.v,/pdk/IHP-Open-PDK/ihp-sg13g2/libs.ref/sg13g2_stdcell/verilog/sg13g2_stdcell.v,/clusterip/i2c/model/at24cxxx.sv,/clusterip/spi/model/w25q128jvxim.sv,/clusterip/common/rtl/cdc/cdc_2phase.sv,/clusterip/common/rtl/utils/register.sv,/clusterip/uart/model/rs232.sv,/tb/retrosoc_tb.sv,/clusterip/i2s/model/mic.sv,/model/ESP_PSRAM64H.sv,/third_party/model/sdram/sdr.v;
}
{ +warn=all; }
-1
View File
@@ -41,7 +41,6 @@ endif
endif
DEF_VAL += -DAPP_$(APP)
DEF_VAL += -DRS_SOC_MGMT_CORE_$(CORE)
DEF_VAL += -DCOMPILER_NAME='"$(CC)"'
DEF_VAL += -DCOMPILER_CFLAGS='"$(GCC_FLAGS) $(SW_WARN_FLAGS)"'
DEF_VAL += -DCOMPILER_ISA='"$(ISA_FLAGS)"'
+11 -12
View File
@@ -21,16 +21,13 @@ SOC_VSRC_INCLPATH += -I$(SOC_VSRC_HOME)
VERILATOR ?= verilator
VERILATOR_JOBS ?= $(JOBS)
VERILATOR_CXXFLAGS += -std=c++17 -Wall $(SOC_CSRC_INCLPATH) -DDUMP_WAVE_FST
ifeq ($(HAVE_DEBUG),YES)
VERILATOR_CXXFLAGS += -DHAVE_DEBUG
endif
VERILATOR_FLAGS += --cc --exe --no-timing --top-module $(SOC_VSRC_TOP)
VERILATOR_FLAGS += --x-assign unique -O3 -CFLAGS "$(VERILATOR_CXXFLAGS)"
VERILATOR_FLAGS += --trace-fst --assert --stats-vars --output-split 30000 --output-split-cfuncs 30000
VERILATOR_FLAGS += --timescale "1ns/1ns" -Wno-fatal
VERILATOR_FLAGS += -o $(BUILD_DIR)/emu
VERILATOR_FLAGS += -Mdir $(SOC_COMPILE_HOME)
VERILATOR_FLAGS += $(SOC_VSRC_INCLPATH) $(SOC_CXXFILES) $(SOC_VXXFILES)
VERILATOR_FLAGS += --cc --exe --no-timing --top-module $(SOC_VSRC_TOP)
VERILATOR_FLAGS += --x-assign unique -O3 -CFLAGS "$(VERILATOR_CXXFLAGS)"
VERILATOR_FLAGS += --trace-fst --assert --stats-vars --output-split 30000 --output-split-cfuncs 30000
VERILATOR_FLAGS += --timescale "1ns/1ns" -Wno-fatal
VERILATOR_FLAGS += -o $(BUILD_DIR)/emu
VERILATOR_FLAGS += -Mdir $(SOC_COMPILE_HOME)
VERILATOR_FLAGS += $(SOC_VSRC_INCLPATH) $(SOC_CXXFILES) $(SOC_VXXFILES)
RTL_LINT_FLAGS := --lint-only --no-timing --top-module $(SOC_VSRC_TOP)
RTL_LINT_FLAGS += --assert --Wall --timescale "1ns/1ns" -Wno-fatal
@@ -112,8 +109,10 @@ sim: comp
--result $(BUILD_DIR)/result-sim-check.json --require '$(SIM_SUCCESS_MARKER)'
debug-sim: comp firmware
@test "$(HAVE_DEBUG)" = YES || { echo "debug-sim requires HAVE_DEBUG=YES" >&2; exit 2; }
@test "$(CORE)" = HAZARD3 || { echo "debug-sim requires CORE=HAZARD3" >&2; exit 2; }
@test "$(SIMU)" = VERILATOR || { echo "debug-sim requires SIMU=VERILATOR" >&2; exit 2; }
$(FLOW_PYTHON) $(ROOT_PATH)/scripts/doctor.py --root $(ROOT_PATH) --simu $(SIMU) \
--synth $(SYNTH) --sta $(STA) --pdk $(PDK) --formal $(FORMAL) \
--require-debug-tools --lock $(LOCK_FILE)
python3 $(DEBUG_SIM_SESSION) \
--emulator $(VERILATOR_EMU) \
--image $(SW_BUILD_DIR)/$(FIRMWARE_NAME).bin \
+1 -1
View File
@@ -13,7 +13,7 @@ from pathlib import Path
from typing import Any
VALID_FEATURES = {"HAVE_DEBUG", "HAVE_PLL"}
VALID_FEATURES = {"HAVE_PLL"}
VALID_KINDS = {
"full",
"schmitt_input",
-3
View File
@@ -27,7 +27,6 @@
{
"kind": "tri_input",
"direction": "inout",
"feature": "HAVE_DEBUG",
"ports": [
{"name": "jtag_tck_i_pad", "signal": "s_jtag_tck"},
{"name": "jtag_tms_i_pad", "signal": "s_jtag_tms"},
@@ -37,7 +36,6 @@
{
"kind": "schmitt_input",
"direction": "inout",
"feature": "HAVE_DEBUG",
"ports": [
{"name": "jtag_trst_n_i_pad", "signal": "s_jtag_trst_n"}
]
@@ -45,7 +43,6 @@
{
"kind": "tri_output",
"direction": "output",
"feature": "HAVE_DEBUG",
"ports": [
{"name": "jtag_tdo_o_pad", "signal": "s_jtag_tdo"}
]
-2
View File
@@ -25,7 +25,6 @@ PATH_PREFIXES = {
"core": MINI_DIR / "core",
"hazard3": RTL_DIR / "managed" / "hazard3" / "hdl",
"mpw": RTL_DIR / "managed" / "mpw",
"picorv32": RTL_DIR / "managed" / "picorv32" / "rtl",
"tb": MINI_DIR / "dv" / "tb",
"model": MINI_DIR / "dv" / "model",
"sva": MINI_DIR / "dv" / "sva",
@@ -66,7 +65,6 @@ def generate_all(output_dir: Path, defines: list[str]) -> list[Path]:
"clusterip.fl",
"commonip.fl",
"core_hazard3.fl",
"core_picorv32.fl",
"inc.fl",
"ip.fl",
"sys_def.fl",
-25
View File
@@ -1,25 +0,0 @@
#!/usr/bin/env python3
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parents[3]
sys.path.insert(0, str(ROOT))
from scripts.setup_helpers import atomic_write # noqa: E402
def main() -> int:
picorv32_dir = ROOT / "rtl/managed/picorv32/rtl"
source = picorv32_dir / "picorv32.v"
destination = picorv32_dir / "picorv32_ver.v"
content = source.read_text(encoding="utf-8")
content = content.replace("// synopsys full_case parallel_case", "")
content = content.replace("// synopsys parallel_case", "")
changed = atomic_write(destination, content)
print(f"{'updated' if changed else 'unchanged'}: {destination}")
return 0
if __name__ == "__main__":
raise SystemExit(main())
-66
View File
@@ -24,47 +24,6 @@ module mgmt_core_wrapper (
// verilog_format: on
);
`ifdef CORE_PICORV32
assign jtag_tdo_o = 1'b0;
picorv32 #(
.BARREL_SHIFTER (1),
.COMPRESSED_ISA (1),
.ENABLE_MUL (1),
.ENABLE_FAST_MUL(1),
.ENABLE_DIV (1),
.ENABLE_IRQ (0),
.PROGADDR_RESET (`SOC_CPU_RESET_ADDR),
.PROGADDR_IRQ (`SOC_IRQ_START_ADDR)
) u_picorv32 (
.clk (clk_i),
.resetn (rst_n_i),
.trap (),
.mem_valid (ribp.valid),
.mem_instr (),
.mem_addr (ribp.addr),
.mem_wdata (ribp.wdata),
.mem_wstrb (ribp.wstrb),
.mem_rdata (ribp.rdata),
.mem_ready (ribp.ready),
.mem_la_read (),
.mem_la_write(),
.mem_la_addr (),
.mem_la_wdata(),
.mem_la_wstrb(),
.pcpi_valid (),
.pcpi_insn (),
.pcpi_rs1 (),
.pcpi_rs2 (),
.pcpi_wr (),
.pcpi_rd (),
.pcpi_wait (),
.pcpi_ready (),
.irq (irq_i),
.eoi (),
.trace_valid (),
.trace_data ()
);
`elsif CORE_HAZARD3
logic s_pwrup_req;
logic s_ahbl_idle;
logic s_core_rst_n;
@@ -94,7 +53,6 @@ module mgmt_core_wrapper (
ahbl2ribp u_ahbl2ribp (u_ahbl_if, ribp, s_ahbl_idle);
// verilog_format: on
`ifdef HAVE_DEBUG
mgmt_debug_wrapper #(
.JTAG_IDCODE(`SOC_JTAG_IDCODE)
) u_mgmt_debug_wrapper (
@@ -129,21 +87,6 @@ module mgmt_core_wrapper (
.dbg_sbus_wdata_o (s_dbg_sbus_wdata),
.dbg_sbus_rdata_i (s_dbg_sbus_rdata)
);
`else
assign s_core_rst_n = rst_n_i;
assign s_dbg_req_halt = 1'b0;
assign s_dbg_req_halt_on_reset = 1'b0;
assign s_dbg_req_resume = 1'b0;
assign s_dbg_data0_rdata = '0;
assign s_dbg_instr_data = '0;
assign s_dbg_instr_data_vld = 1'b0;
assign s_dbg_sbus_addr = '0;
assign s_dbg_sbus_write = 1'b0;
assign s_dbg_sbus_size = '0;
assign s_dbg_sbus_vld = 1'b0;
assign s_dbg_sbus_wdata = '0;
assign jtag_tdo_o = 1'b0;
`endif
hazard3_cpu_1port #(
.RESET_VECTOR (`SOC_CPU_RESET_ADDR),
@@ -178,11 +121,7 @@ module mgmt_core_wrapper (
.PMP_HARDWIRED (0),
.PMP_HARDWIRED_ADDR (0),
.PMP_HARDWIRED_CFG (0),
`ifdef HAVE_DEBUG
.DEBUG_SUPPORT (1),
`else
.DEBUG_SUPPORT (0),
`endif
.BREAKPOINT_TRIGGERS(2),
.NUM_IRQS (30),
.IRQ_PRIORITY_BITS (2),
@@ -251,9 +190,4 @@ module mgmt_core_wrapper (
.soft_irq (irq_i[0]),
.timer_irq (irq_i[1])
);
`else
initial begin
$error("exactly one management core macro must be defined");
end
`endif
endmodule
+2 -2
View File
@@ -24,7 +24,7 @@ def parse_args() -> argparse.Namespace:
parser.add_argument("--sta", required=True)
parser.add_argument("--pdk", required=True)
parser.add_argument("--formal", choices=("YES", "NO"), default="NO")
parser.add_argument("--debug", choices=("YES", "NO"), default="NO")
parser.add_argument("--require-debug-tools", action="store_true")
parser.add_argument("--lock", type=Path, default=DEFAULT_LOCK)
parser.add_argument("--format", choices=("text", "json"), default="text")
parser.add_argument("--output", type=Path)
@@ -67,7 +67,7 @@ def main() -> int:
tools.append("sta")
if args.formal == "YES":
tools.extend(("sby", "yosys", "yosys-smtbmc", "sv2v", "bitwuzla"))
if args.debug == "YES":
if args.require_debug_tools:
tools.extend(("openocd", "riscv32-unknown-elf-gdb"))
source_names = ["mpw", "hazard3", "cluster_common", "third_party_ip"]
+5 -3
View File
@@ -66,7 +66,9 @@ def make_sbom(lock: dict[str, object]) -> dict[str, object]:
components.extend(
container_component(name, spec) for name, spec in lock["container_images"].items()
)
components.extend(component(f"nix/{name}", "source", spec) for name, spec in lock["nix_inputs"].items())
components.extend(
component(f"nix/{name}", "source", spec) for name, spec in lock["nix_inputs"].items()
)
for platform, tools in lock["toolchains"].items():
components.extend(
component(f"{platform}/{name}", "toolchain", spec) for name, spec in tools.items()
@@ -108,8 +110,8 @@ def main() -> int:
config["PDK"],
"--simu",
config["SIMU"],
"--core",
config.get("CORE", "HAZARD3"),
"--jtag-idcode",
config.get("JTAG_IDCODE", "DEADBEEF"),
"--dynamic-core-filelist",
str(args.variant_root / "generated/mpw" / config["SIMU"].lower() / "core/core.fl"),
"--dynamic-ip-filelist",
-1
View File
@@ -71,7 +71,6 @@ def main() -> int:
"-Wextra",
"-Werror",
"-fno-builtin",
"-DRS_SOC_MGMT_CORE_HAZARD3",
"-I",
str(memory_map_root / "include"),
"-I",
+1 -8
View File
@@ -39,13 +39,10 @@ def build_defines(args: argparse.Namespace) -> list[str]:
defines.append("+define+HAVE_SRAM_MACRO")
if not args.have_sva:
defines.append("+define+SV_ASSRT_DISABLE")
if args.have_debug == "YES":
defines.append("+define+HAVE_DEBUG")
idcode = int(args.jtag_idcode, 16)
if idcode >= (1 << 31):
idcode -= 1 << 32
defines.append(f"+define+SOC_JTAG_IDCODE={idcode}")
defines.append(f"+define+CORE_{args.core}")
return defines
@@ -65,7 +62,7 @@ def configured_filelist(
"ip.fl",
"tech.fl",
]
names.append(f"core_{args.core.lower()}.fl")
names.append("core_hazard3.fl")
dynamic_core = args.dynamic_core_filelist
if not dynamic_core.is_file():
raise FileNotFoundError(f"user core filelist is not generated: {dynamic_core}")
@@ -189,14 +186,12 @@ def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Export configured retroSoC RTL sources")
parser.add_argument("mode", choices=("tar", "sv"))
parser.add_argument("--soc", default="MINI", choices=("MINI",))
parser.add_argument("--core", default="HAZARD3", choices=("HAZARD3", "PICORV32"))
parser.add_argument("--pdk", default="IHP130", choices=("IHP130", "ICS55", "SKY130", "GF180"))
parser.add_argument("--simu", default="VCS", choices=("VCS", "VERILATOR", "IVERILOG"))
parser.add_argument("--have-pll", action="store_true")
parser.add_argument("--have-sram-if", action="store_true")
parser.add_argument("--have-sram-macro", action="store_true")
parser.add_argument("--have-sva", action="store_true")
parser.add_argument("--have-debug", choices=("YES", "NO"), default="YES")
parser.add_argument("--jtag-idcode", default="DEADBEEF")
parser.add_argument(
"--dynamic-core-filelist",
@@ -216,8 +211,6 @@ def main() -> int:
args = parse_args()
if not re.fullmatch(r"[0-9a-fA-F]{8}", args.jtag_idcode):
raise SystemExit("--jtag-idcode must be exactly eight hexadecimal digits")
if args.have_debug == "YES" and args.core != "HAZARD3":
raise SystemExit("--have-debug YES requires --core HAZARD3")
export_dir = args.output_dir.resolve()
export_dir.mkdir(parents=True, exist_ok=True)
with tempfile.TemporaryDirectory(prefix="retrosoc-filelists-") as temporary:
+2 -2
View File
@@ -124,10 +124,10 @@ module sysctrl_fault_tb;
if (read_data !== 32'd11) $fatal(1, "performance snapshot was not recorded");
read_register(32'h1000_B020, read_data);
if (read_data !== 32'h0000_001F) $fatal(1, "user cores were not held in reset");
if (read_data !== 32'h0000_003F) $fatal(1, "user cores were not held in reset");
write_register(32'h1000_B000, 32'h0000_0006);
read_register(32'h1000_B024, read_data);
if ((read_data & 32'h0000_081F) !== 32'h0000_0800) begin
if ((read_data & 32'h0000_083F) !== 32'h0000_0800) begin
$fatal(1, "out-of-range user core selection was accepted");
end
write_register(32'h1000_B024, 32'h0000_0800);
+18 -14
View File
@@ -44,15 +44,9 @@ def test_pin_map_generates_asic_and_platform_bindings(tmp_path: Path) -> None:
ports = (tmp_path / "rtl/retrosoc_asic_ports.svh").read_text(encoding="utf-8")
pads = (tmp_path / "rtl/retrosoc_asic_pad_bindings.svh").read_text(encoding="utf-8")
fpga = (tmp_path / "rtl/retrosoc_asic_fpga_mini_bindings.svh").read_text(
encoding="utf-8"
)
testbench = (tmp_path / "rtl/retrosoc_asic_tb_bindings.svh").read_text(
encoding="utf-8"
)
verilator = (tmp_path / "rtl/retrosoc_asic_verilator_bindings.svh").read_text(
encoding="utf-8"
)
fpga = (tmp_path / "rtl/retrosoc_asic_fpga_mini_bindings.svh").read_text(encoding="utf-8")
testbench = (tmp_path / "rtl/retrosoc_asic_tb_bindings.svh").read_text(encoding="utf-8")
verilator = (tmp_path / "rtl/retrosoc_asic_verilator_bindings.svh").read_text(encoding="utf-8")
assert "inout extclk_i_pad," in ports
assert "input xi_i_pad," in ports
@@ -60,6 +54,8 @@ def test_pin_map_generates_asic_and_platform_bindings(tmp_path: Path) -> None:
assert "inout jtag_tck_i_pad" in ports
assert "inout jtag_trst_n_i_pad" in ports
assert "output jtag_tdo_o_pad" in ports
assert "HAVE_DEBUG" not in ports
assert "HAVE_DEBUG" not in pads
assert "u_gpio_31_io_pad" in pads
assert "u_sdram_dq15_io_pad" in pads
assert ".gpio_30_io_pad(gpio_io30)" in fpga
@@ -78,9 +74,7 @@ def test_pin_map_generates_asic_and_platform_bindings(tmp_path: Path) -> None:
def test_pin_map_rejects_duplicate_pads(tmp_path: Path) -> None:
document = json.loads(PIN_MAP.read_text(encoding="utf-8"))
document["pads"][0]["ports"].append(
{"name": "extclk_i_pad", "signal": "s_duplicate_clock"}
)
document["pads"][0]["ports"].append({"name": "extclk_i_pad", "signal": "s_duplicate_clock"})
invalid_map = tmp_path / "duplicate.json"
invalid_map.write_text(json.dumps(document), encoding="utf-8")
@@ -115,8 +109,18 @@ def test_pin_map_rejects_unknown_profile_pad(tmp_path: Path) -> None:
def test_fpga_constraints_reference_declared_top_ports() -> None:
top_ports = set(re.findall(r"^\s*(?:input|output|inout)\s+([A-Za-z_][A-Za-z0-9_]*)", FPGA_TOP.read_text(encoding="utf-8"), re.MULTILINE))
xdc_ports = set(re.findall(r"\[get_ports\s+([A-Za-z_][A-Za-z0-9_]*)\]", FPGA_XDC.read_text(encoding="utf-8")))
top_ports = set(
re.findall(
r"^\s*(?:input|output|inout)\s+([A-Za-z_][A-Za-z0-9_]*)",
FPGA_TOP.read_text(encoding="utf-8"),
re.MULTILINE,
)
)
xdc_ports = set(
re.findall(
r"\[get_ports\s+([A-Za-z_][A-Za-z0-9_]*)\]", FPGA_XDC.read_text(encoding="utf-8")
)
)
assert xdc_ports
assert xdc_ports <= top_ports
+60 -52
View File
@@ -118,7 +118,7 @@ def test_generate_all_is_stable_and_expands_paths(tmp_path: Path) -> None:
assert str(ROOT / "rtl/managed/hazard3/hdl") in hazard3
assert "rtl/managed/mpw/core/username3" not in hazard3
assert (tmp_path / "core_hazard3.fl").is_file()
assert (tmp_path / "core_picorv32.fl").is_file()
assert not (tmp_path / "core_picorv32.fl").exists()
assert {
"pdk_gf180.fl",
"pdk_ics55.fl",
@@ -138,13 +138,11 @@ def test_filelist_round_trips_verilog_define_values(tmp_path: Path) -> None:
parsed = parse_filelists([tmp_path / "def.fl"])
output = tmp_path / "round-trip.fl"
write_filelist(output, parsed)
assert output.read_text(encoding="utf-8") == (
"+define+SOC_JTAG_IDCODE=32'hDEADBEEF\n"
)
assert output.read_text(encoding="utf-8") == ("+define+SOC_JTAG_IDCODE=32'hDEADBEEF\n")
assert parse_filelists([output]) == parsed
def test_source_export_selects_the_requested_management_core(tmp_path: Path) -> None:
def test_source_export_uses_the_fixed_hazard3_management_core(tmp_path: Path) -> None:
module_path = ROOT / "syn/tools/export_soc_sources.py"
spec = importlib.util.spec_from_file_location("retrosoc_source_export", module_path)
assert spec is not None and spec.loader is not None
@@ -156,44 +154,39 @@ def test_source_export_selects_the_requested_management_core(tmp_path: Path) ->
dynamic_core.write_text("", encoding="utf-8")
dynamic_ip.write_text("", encoding="utf-8")
for core, source_name in (
("HAZARD3", "hazard3_cpu_1port.v"),
("PICORV32", "picorv32_ver.v"),
):
arguments = SimpleNamespace(
pdk="IHP130",
simu="IVERILOG",
core=core,
have_pll=False,
have_sram_if=False,
have_sram_macro=False,
have_sva=False,
have_debug="YES" if core == "HAZARD3" else "NO",
jtag_idcode="DEADBEEF",
dynamic_core_filelist=dynamic_core,
dynamic_ip_filelist=dynamic_ip,
)
generated_dir = tmp_path / core.lower()
user_extensions_dir = generated_dir / "user_extensions"
source_export.generate_all(generated_dir, source_export.build_defines(arguments))
source_export.generate_user_extensions(
ROOT / "rtl/mini/integration/user_extensions.json", user_extensions_dir
)
filelist = source_export.configured_filelist(
arguments, generated_dir, user_extensions_dir, require_files=False
)
arguments = SimpleNamespace(
pdk="IHP130",
simu="IVERILOG",
have_pll=False,
have_sram_if=False,
have_sram_macro=False,
have_sva=False,
jtag_idcode="DEADBEEF",
dynamic_core_filelist=dynamic_core,
dynamic_ip_filelist=dynamic_ip,
)
generated_dir = tmp_path / "hazard3"
user_extensions_dir = generated_dir / "user_extensions"
source_export.generate_all(generated_dir, source_export.build_defines(arguments))
source_export.generate_user_extensions(
ROOT / "rtl/mini/integration/user_extensions.json", user_extensions_dir
)
filelist = source_export.configured_filelist(
arguments, generated_dir, user_extensions_dir, require_files=False
)
assert f"+define+CORE_{core}" in filelist.defines
assert "+define+SOC_JTAG_IDCODE=-559038737" in filelist.defines
assert ("+define+HAVE_DEBUG" in filelist.defines) == (core == "HAZARD3")
assert any(path.name == source_name for path in filelist.files)
assert "+define+SOC_JTAG_IDCODE=-559038737" in filelist.defines
assert not any(item.startswith("+define+CORE_") for item in filelist.defines)
assert "+define+HAVE_DEBUG" not in filelist.defines
assert any(path.name == "hazard3_cpu_1port.v" for path in filelist.files)
def test_package_forwards_manifest_management_core() -> None:
def test_package_forwards_manifest_jtag_idcode() -> None:
package_source = (ROOT / "scripts/package.py").read_text(encoding="utf-8")
assert '"--core"' in package_source
assert 'config.get("CORE", "HAZARD3")' in package_source
assert '"--jtag-idcode"' in package_source
assert 'config.get("JTAG_IDCODE", "DEADBEEF")' in package_source
assert '"--core"' not in package_source
def test_formal_filelists_are_scoped_to_the_protocol_duts(tmp_path: Path) -> None:
@@ -508,20 +501,29 @@ def test_make_dry_run_and_validation_do_not_write_filelists() -> None:
assert invalid.returncode != 0
assert "Invalid SIMU='UNKNOWN'" in invalid.stderr
invalid_core = subprocess.run(
removed_core = subprocess.run(
["make", "CORE=alternate", "config"],
cwd=ROOT,
text=True,
capture_output=True,
)
assert invalid_core.returncode != 0
assert "Invalid CORE='alternate'" in invalid_core.stderr
assert removed_core.returncode != 0
assert "CORE has been removed" in removed_core.stderr
default_core = run("make", "config").stdout
assert "CORE HAZARD3" in default_core
assert any(
line.startswith("MGMT_CORE") and line.rstrip().endswith("HAZARD3")
for line in default_core.splitlines()
)
picorv32_core = run("make", "CORE=PICORV32", "config").stdout
assert "CORE PICORV32" in picorv32_core
removed_debug = subprocess.run(
["make", "HAVE_DEBUG=NO", "config"],
cwd=ROOT,
text=True,
capture_output=True,
)
assert removed_debug.returncode != 0
assert "HAVE_DEBUG has been removed" in removed_debug.stderr
removed_ip = subprocess.run(
["make", "IP=MDD", "config"],
@@ -668,7 +670,8 @@ def test_verilator_simulations_use_uniform_timeout() -> None:
for _, values in regression_commands:
if "SIMU=VERILATOR" in values:
assert not any(value.startswith("SOC_SIM_TIME=") for value in values)
assert "HAVE_SVA=YES" in values
if "debug-sim" not in values:
assert "HAVE_SVA=YES" in values
def test_verilator_has_no_external_core_selection() -> None:
@@ -681,16 +684,18 @@ def test_verilator_has_no_external_core_selection() -> None:
assert "core_sel_i" not in testbench
def test_management_core_selection_is_limited_to_hazard3_and_picorv32() -> None:
def test_management_core_is_fixed_to_hazard3_with_debug() -> None:
wrapper = (ROOT / "rtl/mini/top/mgmt_core_wrapper.sv").read_text(encoding="utf-8")
makefile = (ROOT / "Makefile").read_text(encoding="utf-8")
assert "VALID_CORE := HAZARD3 PICORV32" in makefile
assert "DEF_LIST += +define+CORE_$(CORE)" in makefile
assert "`ifdef CORE_PICORV32" in wrapper
assert "`elsif CORE_HAZARD3" in wrapper
assert "CORE has been removed" in makefile
assert "HAVE_DEBUG has been removed" in makefile
assert "CORE_$(CORE)" not in makefile
assert "`ifdef CORE_" not in wrapper
assert "`ifdef HAVE_DEBUG" not in wrapper
assert "ahbl2ribp u_ahbl2ribp" in wrapper
assert ".RESET_VECTOR (`SOC_CPU_RESET_ADDR)" in wrapper
assert ".DEBUG_SUPPORT (1)" in wrapper
def test_hazard3_debug_flow_is_locked_and_uses_remote_bitbang() -> None:
@@ -704,19 +709,22 @@ def test_hazard3_debug_flow_is_locked_and_uses_remote_bitbang() -> None:
encoding="utf-8"
)
assert "HAVE_DEBUG ?= YES" in makefile
assert "JTAG_IDCODE ?= DEADBEEF" in makefile
assert "if [ $$value -gt 2147483647 ]" in makefile
assert "HAVE_DEBUG=YES requires CORE=HAZARD3" in makefile
assert "HAVE_DEBUG ?=" not in makefile
assert ".MULDIV_UNROLL (2)" in wrapper
assert ".BRANCH_PREDICTOR (1)" in wrapper
assert ".BREAKPOINT_TRIGGERS(2)" in wrapper
assert ".HAVE_SBA(0)" in debug_wrapper
assert "mgmt_debug_reset u_mgmt_debug_reset" in debug_wrapper
assert "--timeout $(SOC_SIM_TIME)" in verilator_makefile
assert "--require-debug-tools" in verilator_makefile
assert "HAVE_DEBUG" not in verilator_makefile
assert "DEBUG_GDB_PASS" in driver
assert "break *0x30000008" in driver
assert "adapter driver remote_bitbang" in openocd
assert "catch {remote_bitbang port $jtag_port}" in openocd
assert "remote_bitbang_port $jtag_port" in openocd
assert "-expected-id 0xdeadbeef" in openocd
assert lock["toolchains"]["ubuntu-22.04"]["openocd"]["version"] == "0.12.0-1"
assert any(profile == "configs/ci/ihp130-debug.mk" for profile, _ in PR_COMMANDS)
+8 -5
View File
@@ -47,18 +47,20 @@ def test_extensions_generate_isolated_scalar_bindings(tmp_path: Path) -> None:
core = (tmp_path / "rtl/user_core_bindings.svh").read_text(encoding="utf-8")
ip = (tmp_path / "rtl/user_ip_bindings.svh").read_text(encoding="utf-8")
filelist = (tmp_path / "user_extensions.fl").read_text(encoding="utf-8")
config = (tmp_path / "rtl/user_extensions_config.svh").read_text(encoding="utf-8")
assert core.count("rib_if u_user_") == 5
assert core.count("ribp_if u_user_") == 5
assert core.count("ribp2rib #(") == 5
assert core.count(".SYNC_RESET(1'b1)") == 2
assert core.count("rib_if u_user_") == 6
assert core.count("ribp_if u_user_") == 6
assert core.count("ribp2rib #(") == 6
assert core.count(".SYNC_RESET(1'b1)") == 3
assert core.count(".SYNC_RESET(1'b0)") == 3
assert "rib.cmd_valid = '0;" in core
assert "5'd0: begin" in core
assert "5'd4: begin" in core
assert "5'd5: begin" not in core
assert "5'd5: begin" in core
assert "core_reset_i[0]" in core
assert "mpw_c0 #(0)" in core
assert "mpw_c5 #(5)" in core
assert "mpw_i1 #(1)" in ip
assert "User core 0 uses the RIBP contract" in core
assert ip.count("user_gpio_if #(`USER_GPIO_NUM)") == 2
@@ -66,6 +68,7 @@ def test_extensions_generate_isolated_scalar_bindings(tmp_path: Path) -> None:
assert "8'd2: begin" in ip
assert "u_user_2_apb_if.psel = apb.psel;" in ip
assert filelist.startswith("+incdir+")
assert "`define USER_CORE_COUNT 6" in config
def test_extensions_reject_noncontiguous_slots_and_invalid_modules(tmp_path: Path) -> None: