From 735f3dc1859df2fc3d7f9ff4ba6455d23970c549 Mon Sep 17 00:00:00 2001 From: Stefan Wallentowitz Date: Tue, 16 Jun 2020 18:02:06 +0200 Subject: [PATCH 1/4] Fix Verilator simulations This fixes compilation issues with the Verilator simulations. Signed-off-by: Stefan Wallentowitz --- tb/core/tb_top_verilator.cpp | 4 ++-- tb/verilator-model/Makefile | 5 +++++ tb/verilator-model/top.sv | 15 +++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tb/core/tb_top_verilator.cpp b/tb/core/tb_top_verilator.cpp index 24ca02926..5a6aa31a9 100644 --- a/tb/core/tb_top_verilator.cpp +++ b/tb/core/tb_top_verilator.cpp @@ -69,7 +69,7 @@ void dump_memory() { errno = 0; std::ofstream mem_file; - svLogicVecVal addr = {0}; + svLogicVecVal addr = {0, 0}; mem_file.exceptions(std::ofstream::failbit | std::ofstream::badbit); try { @@ -84,7 +84,7 @@ void dump_memory() std::cout << "finished dumping memory" << std::endl; - } catch (std::ofstream::failure e) { + } catch (std::ofstream::failure &e) { std::cerr << "exception opening/reading/closing file memory_dump.bin\n"; } } diff --git a/tb/verilator-model/Makefile b/tb/verilator-model/Makefile index b65631b7a..9baa928b0 100644 --- a/tb/verilator-model/Makefile +++ b/tb/verilator-model/Makefile @@ -47,6 +47,8 @@ VSRC = dp_ram.sv \ ../../rtl/include/cv32e40p_tracer_defines.sv \ ../../rtl/cv32e40p_register_file_test_wrap.sv \ ../../rtl/cv32e40p_sim_clock_gate.sv \ + ../../rtl/cv32e40p_popcnt.sv \ + ../../rtl/cv32e40p_ff_one.sv \ ../../rtl/cv32e40p_alu.sv \ ../../rtl/cv32e40p_alu_div.sv \ ../../rtl/cv32e40p_compressed_decoder.sv \ @@ -62,9 +64,12 @@ VSRC = dp_ram.sv \ ../../rtl/cv32e40p_load_store_unit.sv \ ../../rtl/cv32e40p_mult.sv \ ../../rtl/cv32e40p_prefetch_buffer.sv \ + ../../rtl/cv32e40p_prefetch_controller.sv \ + ../../rtl/cv32e40p_fetch_fifo.sv \ ../../rtl/cv32e40p_register_file_ff.sv \ ../../rtl/cv32e40p_core.sv \ ../../rtl/cv32e40p_apu_disp.sv \ + ../../rtl/cv32e40p_obi_interface.sv \ ../../rtl/cv32e40p_pmp.sv VINC = ../../rtl/include diff --git a/tb/verilator-model/top.sv b/tb/verilator-model/top.sv index 7ff8ea0c5..47481d955 100644 --- a/tb/verilator-model/top.sv +++ b/tb/verilator-model/top.sv @@ -65,8 +65,7 @@ module top #( .PULP_CLUSTER(PULP_CLUSTER), .FPU(FPU), - .PULP_ZFINX(PULP_ZFINX), - .DM_HALTADDRESS(DM_HALTADDRESS) + .PULP_ZFINX(PULP_ZFINX) ) core_i ( @@ -74,11 +73,11 @@ module top .rst_ni ( rstn_i ), .clock_en_i ( 1'b1 ), - .test_en_i ( 1'b0 ), + .scan_cg_en_i ( 1'b0 ), .boot_addr_i ( BOOT_ADDR ), - .core_id_i ( 4'h0 ), - .cluster_id_i ( 6'h0 ), + .dm_halt_addr_i ( DM_HALTADDRESS ), + .hart_id_i ( 32'h0 ), .instr_addr_o ( instr_addr ), .instr_req_o ( instr_req ), @@ -110,17 +109,13 @@ module top .irq_timer_i ( 1'b0 ), .irq_external_i ( 1'b0 ), .irq_fast_i ( 15'b0 ), - .irq_nmi_i ( 1'b0 ), - .irq_fastx_i ( 32'b0 ), .irq_ack_o ( irq_ack_o ), .irq_id_o ( irq_id_o ), .debug_req_i ( debug_req_i ), .fetch_enable_i ( fetch_enable_i ), - .core_busy_o ( core_busy_o ), - - .fregfile_disable_i ( 1'b0 )); + .core_busy_o ( core_busy_o )); // Instantiate the memory From da1483d635b399966c71b69314b9d3c4b17ed3f2 Mon Sep 17 00:00:00 2001 From: Stefan Wallentowitz Date: Tue, 16 Jun 2020 20:15:45 +0200 Subject: [PATCH 2/4] Add FuseSoC support This adds support for FuseSoC, currently for the verilator model only. Signed-off-by: Stefan Wallentowitz --- .gitignore | 2 +- cv32e40p.core | 80 +++++++++++++++++++ python-requirements.txt | 1 + tb/core/Makefile.fusesoc | 7 ++ tb/core/testbench.core | 30 ++++++++ tb/verilator-model/Makefile | 123 ++---------------------------- tb/verilator-model/testbench.core | 28 +++++++ verilator_waiver.vlt | 7 ++ 8 files changed, 159 insertions(+), 119 deletions(-) create mode 100644 cv32e40p.core create mode 100644 python-requirements.txt create mode 100644 tb/core/Makefile.fusesoc create mode 100644 tb/core/testbench.core create mode 100644 tb/verilator-model/testbench.core create mode 100644 verilator_waiver.vlt diff --git a/.gitignore b/.gitignore index ef351b194..16f381b8a 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,6 @@ TAGS .build-rtl .lib-rtl .opt-rtl -/build +build/ /Bender.lock /Bender.local diff --git a/cv32e40p.core b/cv32e40p.core new file mode 100644 index 000000000..3a4f5e74b --- /dev/null +++ b/cv32e40p.core @@ -0,0 +1,80 @@ +CAPI=2: +# Copyright OpenHW Group contributors. +# Licensed under the Solderpad Hardware Licence, Version 2.0 , see LICENSE for details. +name: "openhw:cv32e40p:core:0.1" +description: "CV32E40P is an in-order 4-stage RISC-V RV32IMFCXpulp CPU based on RI5CY from PULP-Platform" + +filesets: + files_rtl: +# First need this upstream +# depend: +# - pulp-platform.org::fpnew + files: +# Temporarily added until fpnew is upstream + - rtl/fpnew/src/common_cells/include/common_cells/registers.svh: { is_include_file: true, include_path: "rtl/fpnew/src/common_cells/include" } + - rtl/fpnew/src/fpnew_pkg.sv + - rtl/fpnew/src/fpnew_cast_multi.sv + - rtl/fpnew/src/fpnew_classifier.sv + - rtl/fpnew/src/fpnew_divsqrt_multi.sv + - rtl/fpnew/src/fpnew_fma.sv + - rtl/fpnew/src/fpnew_fma_multi.sv + - rtl/fpnew/src/fpnew_noncomp.sv + - rtl/fpnew/src/fpnew_opgroup_block.sv + - rtl/fpnew/src/fpnew_opgroup_fmt_slice.sv + - rtl/fpnew/src/fpnew_opgroup_multifmt_slice.sv + - rtl/fpnew/src/fpnew_rounding.sv + - rtl/fpnew/src/fpnew_top.sv +# /Temporarily added until fpnew is upstream + - rtl/include/cv32e40p_apu_macros.sv: {is_include_file: true} + - rtl/include/cv32e40p_config.sv: {is_include_file: true} + - rtl/include/cv32e40p_apu_core_package.sv + - rtl/include/cv32e40p_defines.sv + - rtl/include/cv32e40p_tracer_defines.sv + - rtl/cv32e40p_if_stage.sv + - rtl/cv32e40p_tracer.sv + - rtl/cv32e40p_sim_clock_gate.sv + - rtl/cv32e40p_cs_registers.sv + - rtl/cv32e40p_register_file_ff.sv + - rtl/cv32e40p_load_store_unit.sv + - rtl/cv32e40p_id_stage.sv + - rtl/cv32e40p_decoder.sv + - rtl/cv32e40p_compressed_decoder.sv + - rtl/cv32e40p_fetch_fifo.sv + - rtl/cv32e40p_prefetch_buffer.sv + - rtl/cv32e40p_prefetch_controller.sv + - rtl/cv32e40p_hwloop_regs.sv + - rtl/cv32e40p_hwloop_controller.sv + - rtl/cv32e40p_mult.sv + - rtl/cv32e40p_register_file_test_wrap.sv + - rtl/cv32e40p_int_controller.sv + - rtl/cv32e40p_ex_stage.sv + - rtl/cv32e40p_alu_div.sv + - rtl/cv32e40p_alu.sv + - rtl/cv32e40p_ff_one.sv + - rtl/cv32e40p_obi_interface.sv + - rtl/cv32e40p_popcnt.sv + - rtl/cv32e40p_pmp.sv + - rtl/cv32e40p_apu_disp.sv + - rtl/cv32e40p_controller.sv + - rtl/cv32e40p_core.sv + file_type: systemVerilogSource + files_lint_verilator: + files: + - verilator_waiver.vlt + file_type: systemVerilogSource + +targets: + default: &default + filesets: + - tool_verilator ? (files_lint_verilator) + - files_rtl + lint: + <<: *default + default_tool: verilator + toplevel: cv32e40p_core + tools: + verilator: + mode: lint-only + verilator_options: + - "-Wall" + - "-Wno-fatal" diff --git a/python-requirements.txt b/python-requirements.txt new file mode 100644 index 000000000..a6838d274 --- /dev/null +++ b/python-requirements.txt @@ -0,0 +1 @@ +fusesoc>=1.11 diff --git a/tb/core/Makefile.fusesoc b/tb/core/Makefile.fusesoc new file mode 100644 index 000000000..1ecde4fb4 --- /dev/null +++ b/tb/core/Makefile.fusesoc @@ -0,0 +1,7 @@ +build: + fusesoc --cores-root=../../ run --target=sim --setup --build openhw:cv32e40p:testbench + +run: + build/openhw_cv32e40p_testbench_0.1/sim-verilator/Vtb_top_verilator "+firmware=firmware/firmware.hex" + +.PHONY: build run diff --git a/tb/core/testbench.core b/tb/core/testbench.core new file mode 100644 index 000000000..f3f345161 --- /dev/null +++ b/tb/core/testbench.core @@ -0,0 +1,30 @@ +CAPI=2: +# Copyright OpenHW Group contributors. +# Licensed under the Solderpad Hardware Licence, Version 2.0 , see LICENSE for details. +name: "openhw:cv32e40p:testbench:0.1" +description: "Testbench for CV32E40P" +filesets: + files_sim_verilator: + depend: + - openhw:cv32e40p:core + files: + - tb_top_verilator.sv + - riscv_wrapper.sv + - mm_ram.sv + - dp_ram.sv + - amo_shim.sv + - tb_top_verilator.cpp: { file_type: cppSource } + - verilator_waiver.vlt + file_type: systemVerilogSource + +targets: + sim: + filesets: + - files_sim_verilator + toplevel: tb_top_verilator + default_tool: verilator + tools: + verilator: + mode: cc + verilator_options: + - "--trace" diff --git a/tb/verilator-model/Makefile b/tb/verilator-model/Makefile index 9baa928b0..9846da9ed 100644 --- a/tb/verilator-model/Makefile +++ b/tb/verilator-model/Makefile @@ -1,119 +1,6 @@ -# Copyright 2017 Embecosm Limited -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +build: + fusesoc --cores-root=../../ run --target=sim --setup --build openhw:cv32e40p:verilator-model +run: + build/openhw_cv32e40p_verilator-model_0.1/sim-verilator/Vtop "+firmware=firmware/firmware.hex" -# Makefile for Verilator model of RI5CY -# Contributor: Jeremy Bennett - -# Tools - -VERILATOR = verilator -VDIR = obj_dir -CPPFLAGS = -I$(VDIR) `pkg-config --cflags verilator` -CXXFLAGS = -Wall -Werror -std=c++11 -Wno-aligned-new -CXX = g++ -LD = g++ - -# Testbench - -SRC = testbench.cpp - -OBJS = testbench.o - -EXE = testbench - -# top module name - -TOP = top - -# Verilator elements - -VSRC = dp_ram.sv \ - ram.sv \ - top.sv \ - ../../rtl/fpnew/src/fpnew_pkg.sv \ - ../../rtl/include/cv32e40p_apu_core_package.sv \ - ../../rtl/include/cv32e40p_defines.sv \ - ../../rtl/include/cv32e40p_tracer_defines.sv \ - ../../rtl/cv32e40p_register_file_test_wrap.sv \ - ../../rtl/cv32e40p_sim_clock_gate.sv \ - ../../rtl/cv32e40p_popcnt.sv \ - ../../rtl/cv32e40p_ff_one.sv \ - ../../rtl/cv32e40p_alu.sv \ - ../../rtl/cv32e40p_alu_div.sv \ - ../../rtl/cv32e40p_compressed_decoder.sv \ - ../../rtl/cv32e40p_controller.sv \ - ../../rtl/cv32e40p_cs_registers.sv \ - ../../rtl/cv32e40p_decoder.sv \ - ../../rtl/cv32e40p_int_controller.sv \ - ../../rtl/cv32e40p_ex_stage.sv \ - ../../rtl/cv32e40p_hwloop_controller.sv \ - ../../rtl/cv32e40p_hwloop_regs.sv \ - ../../rtl/cv32e40p_id_stage.sv \ - ../../rtl/cv32e40p_if_stage.sv \ - ../../rtl/cv32e40p_load_store_unit.sv \ - ../../rtl/cv32e40p_mult.sv \ - ../../rtl/cv32e40p_prefetch_buffer.sv \ - ../../rtl/cv32e40p_prefetch_controller.sv \ - ../../rtl/cv32e40p_fetch_fifo.sv \ - ../../rtl/cv32e40p_register_file_ff.sv \ - ../../rtl/cv32e40p_core.sv \ - ../../rtl/cv32e40p_apu_disp.sv \ - ../../rtl/cv32e40p_obi_interface.sv \ - ../../rtl/cv32e40p_pmp.sv - -VINC = ../../rtl/include - -VOBJS = $(VDIR)/verilated.o \ - $(VDIR)/verilated_vcd_c.o - -VLIB = $(VDIR)/V$(TOP)__ALL.a - -VSMK = V$(TOP).mk -VMK = $(VDIR)/$(VSMK) - -# Build the executable -all: $(EXE) - -$(EXE): $(VLIB) $(VOBJS) $(OBJS) - $(LD) -o $@ $(OBJS) $(VLIB) $(VOBJS) - -$(VOBJS): $(VMK) - for f in $@; \ - do \ - sf=$$(basename $$f); \ - $(MAKE) -C $(VDIR) -f $(VSMK) $$sf; \ - done - -$(VLIB): $(VMK) - make -C $(VDIR) -f V$(TOP).mk - -$(VDIR)/$(TOP): $(VDIR) $(VMK) - $(MAKE) -C $(VDIR) -f $(VSMK) - -$(VDIR): - mkdir -p $@ - -$(VMK): $(VSRC) - verilator -O3 -CFLAGS "-O3 -g3 -std=gnu++11" \ - -Wno-CASEINCOMPLETE -Wno-LITENDIAN -Wno-UNOPT \ - -Wno-UNOPTFLAT -Wno-WIDTH -Wno-fatal -Wno-BLKANDNBLK \ - --top-module top \ - --Mdir $(VDIR) --trace -DPULP_FPGA_EMUL -cc \ - +incdir+$(VINC) $(VSRC) $(SRC) --exe - - -.PHONY: clean -clean: - $(RM) -r $(VDIR) - $(RM) $(EXE) $(OBJS) +.PHONY: build diff --git a/tb/verilator-model/testbench.core b/tb/verilator-model/testbench.core new file mode 100644 index 000000000..a06ef063e --- /dev/null +++ b/tb/verilator-model/testbench.core @@ -0,0 +1,28 @@ +CAPI=2: +# Copyright OpenHW Group contributors. +# Licensed under the Solderpad Hardware Licence, Version 2.0 , see LICENSE for details. +name: "openhw:cv32e40p:verilator-model:0.1" +description: "Verilator testbench for CV32E40P" +filesets: + files_sim_verilator: + depend: + - openhw:cv32e40p:core + files: + - dp_ram.sv + - ram.sv + - top.sv + - testbench.cpp: { file_type: cppSource } + file_type: systemVerilogSource + +targets: + sim: + filesets: + - files_sim_verilator + toplevel: top + default_tool: verilator + tools: + verilator: + mode: cc + verilator_options: + - "-Wno-fatal" + - "--trace" diff --git a/verilator_waiver.vlt b/verilator_waiver.vlt new file mode 100644 index 000000000..eb8a36c62 --- /dev/null +++ b/verilator_waiver.vlt @@ -0,0 +1,7 @@ +`verilator_config + +// Bits of those regs are set differently by assign or from a process, +// not overly stylish, but okay +lint_off -rule BLKANDNBLK -file "*cv32e40p_cs_registers.sv" -match "*mhpmcounter_q*" +lint_off -rule BLKANDNBLK -file "*cv32e40p_cs_registers.sv" -match "*mhpmevent_q*" +lint_off -rule BLKANDNBLK -file "*cv32e40p_cs_registers.sv" -match "*mcountinhibit_q*" From adf2ba8d26ad87b3220cdb27b8f2b91c73eb6ce1 Mon Sep 17 00:00:00 2001 From: Stefan Wallentowitz Date: Tue, 16 Jun 2020 20:21:32 +0200 Subject: [PATCH 3/4] Add Linter Github Action This is based on the LibreCores CI infrastructure and doesn't need anything except this file. Signed-off-by: Stefan Wallentowitz --- .github/workflows/lint.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/workflows/lint.yml diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 000000000..93aa5edec --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,18 @@ +on: [push, pull_request] + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v1 + - name: Lint Verilog sources with Verilator + uses: librecores/ci-fusesoc-action@master + with: + command: 'run' + core: 'openhw:cv32e40p:core' + target: 'lint' + tool: 'verilator' + pre-run-command: | + pip3 install git+https://github.com/olofk/fusesoc@master + make From 54bd9e83647e1e414985f6d1b52f6745a29cfc77 Mon Sep 17 00:00:00 2001 From: Stefan Wallentowitz Date: Tue, 16 Jun 2020 14:32:13 +0200 Subject: [PATCH 4/4] Add linter waiver file This silences the linter for all known warnings. That eases the migration to a linter flow, because new linter warnings are identified quickly. Anyhow, I suggest to curate the waiver file by either solving the underlying problem or replacing the comment with a meaningful description. Also, we can now be pedantic, linter will fail on any warning. Signed-off-by: Stefan Wallentowitz --- cv32e40p.core | 1 - verilator_waiver.vlt | 1297 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1297 insertions(+), 1 deletion(-) diff --git a/cv32e40p.core b/cv32e40p.core index 3a4f5e74b..d100ffc9e 100644 --- a/cv32e40p.core +++ b/cv32e40p.core @@ -77,4 +77,3 @@ targets: mode: lint-only verilator_options: - "-Wall" - - "-Wno-fatal" diff --git a/verilator_waiver.vlt b/verilator_waiver.vlt index eb8a36c62..86613547b 100644 --- a/verilator_waiver.vlt +++ b/verilator_waiver.vlt @@ -5,3 +5,1300 @@ lint_off -rule BLKANDNBLK -file "*cv32e40p_cs_registers.sv" -match "*mhpmcounter_q*" lint_off -rule BLKANDNBLK -file "*cv32e40p_cs_registers.sv" -match "*mhpmevent_q*" lint_off -rule BLKANDNBLK -file "*cv32e40p_cs_registers.sv" -match "*mcountinhibit_q*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule PINCONNECTEMPTY -file "*/fpnew_opgroup_block.sv" -match "Cell pin connected by name with empty reference: 'idx_o'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule PINCONNECTEMPTY -file "*fpnew_top.sv" -match "Cell pin connected by name with empty reference: 'idx_o'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule DECLFILENAME -file "*/cv32e40p_sim_clock_gate.sv" -match "Filename 'cv32e40p_sim_clock_gate' does not match MODULE name: 'cv32e40p_clock_gate'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule PINCONNECTEMPTY -file "*/cv32e40p_id_stage.sv" -match "Cell pin connected by name with empty reference: 'Q_T'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule PINCONNECTEMPTY -file "*/cv32e40p_prefetch_buffer.sv" -match "Cell pin connected by name with empty reference: 'obi_we_o'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule PINCONNECTEMPTY -file "*/cv32e40p_prefetch_buffer.sv" -match "Cell pin connected by name with empty reference: 'obi_be_o'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule PINCONNECTEMPTY -file "*/cv32e40p_prefetch_buffer.sv" -match "Cell pin connected by name with empty reference: 'obi_wdata_o'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule PINCONNECTEMPTY -file "*/cv32e40p_prefetch_buffer.sv" -match "Cell pin connected by name with empty reference: 'obi_atop_o'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule PINCONNECTEMPTY -file "*/cv32e40p_ex_stage.sv" -match "Cell pin connected by name with empty reference: 'tag_o'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule PINCONNECTEMPTY -file "*/cv32e40p_ex_stage.sv" -match "Cell pin connected by name with empty reference: 'busy_o'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule DECLFILENAME -file "*/fpnew_cast_multi.sv" -match "Filename 'fpnew_cast_multi' does not match NOTFOUNDMODULE name: 'lzc'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule DECLFILENAME -file "*/fpnew_divsqrt_multi.sv" -match "Filename 'fpnew_divsqrt_multi' does not match NOTFOUNDMODULE name: 'div_sqrt_top_mvp'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule DECLFILENAME -file "*/fpnew_opgroup_block.sv" -match "Filename 'fpnew_opgroup_block' does not match NOTFOUNDMODULE name: 'rr_arb_tree'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_if_stage.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_cs_registers.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_id_stage.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_id_stage.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/include/apu_macros.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_decoder.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_compressed_decoder.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_mult.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_int_controller.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/include/apu_macros.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_ex_stage.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_ex_stage.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_alu.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_pmp.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/include/apu_macros.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_controller.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_core.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/cv32e40p_core.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_core.sv" -match "Declaration of signal hides declaration in upper scope: 'SHARED_INT_MULT'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_id_stage.sv" -match "Declaration of signal hides declaration in upper scope: 'SHARED_INT_MULT'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_id_stage.sv" -match "Declaration of signal hides declaration in upper scope: 'WAPUTYPE'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_id_stage.sv" -match "Declaration of signal hides declaration in upper scope: 'APU_NARGS_CPU'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_id_stage.sv" -match "Declaration of signal hides declaration in upper scope: 'APU_WOP_CPU'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_id_stage.sv" -match "Declaration of signal hides declaration in upper scope: 'APU_NDSFLAGS_CPU'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_id_stage.sv" -match "Declaration of signal hides declaration in upper scope: 'APU_NUSFLAGS_CPU'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_decoder.sv" -match "Declaration of signal hides declaration in upper scope: 'SHARED_INT_MULT'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_decoder.sv" -match "Declaration of signal hides declaration in upper scope: 'WAPUTYPE'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_decoder.sv" -match "Declaration of signal hides declaration in upper scope: 'APU_WOP_CPU'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_ex_stage.sv" -match "Declaration of signal hides declaration in upper scope: 'APU_NARGS_CPU'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_ex_stage.sv" -match "Declaration of signal hides declaration in upper scope: 'APU_WOP_CPU'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_ex_stage.sv" -match "Declaration of signal hides declaration in upper scope: 'APU_NDSFLAGS_CPU'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule VARHIDDEN -file "*/cv32e40p_ex_stage.sv" -match "Declaration of signal hides declaration in upper scope: 'APU_NUSFLAGS_CPU'*" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/fpnew_pkg.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:4" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/fpnew_pkg.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:4" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/fpnew_pkg.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:3" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/fpnew_pkg.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:4" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/fpnew_pkg.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:3" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/fpnew_pkg.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:4" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/fpnew_pkg.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:3" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_ff_one.sv" -match "Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/cv32e40p_fetch_fifo.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:3" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/cv32e40p_fetch_fifo.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:3" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/cv32e40p_fetch_fifo.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:3" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/cv32e40p_fetch_fifo.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:3" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/cv32e40p_fetch_fifo.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:3" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/cv32e40p_fetch_fifo.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:3" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_register_file.sv" -match "Operator EQ expects 32 bits on the LHS, but LHS's VARREF 'waddr_a' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_register_file.sv" -match "Operator EQ expects 32 bits on the LHS, but LHS's VARREF 'waddr_b' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_controller.sv" -match "Operator COND expects 7 bits on the Conditional True, but Conditional True's VARREF 'EXC_CAUSE_STORE_FAULT' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_controller.sv" -match "Operator COND expects 7 bits on the Conditional False, but Conditional False's VARREF 'EXC_CAUSE_LOAD_FAULT' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_controller.sv" -match "Operator ASSIGN expects 7 bits on the Assign RHS, but Assign RHS's VARREF 'EXC_CAUSE_INSTR_FAULT' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_controller.sv" -match "Operator COND expects 7 bits on the Conditional True, but Conditional True's VARREF 'EXC_CAUSE_STORE_FAULT' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_controller.sv" -match "Operator COND expects 7 bits on the Conditional False, but Conditional False's VARREF 'EXC_CAUSE_LOAD_FAULT' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_controller.sv" -match "Operator ASSIGN expects 7 bits on the Assign RHS, but Assign RHS's VARREF 'EXC_CAUSE_ILLEGAL_INSN' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_controller.sv" -match "Operator ASSIGN expects 7 bits on the Assign RHS, but Assign RHS's VARREF 'EXC_CAUSE_BREAKPOINT' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_controller.sv" -match "Operator COND expects 7 bits on the Conditional True, but Conditional True's VARREF 'EXC_CAUSE_ECALL_UMODE' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_controller.sv" -match "Operator COND expects 7 bits on the Conditional False, but Conditional False's VARREF 'EXC_CAUSE_ECALL_MMODE' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_controller.sv" -match "Operator COND expects 7 bits on the Conditional True, but Conditional True's VARREF 'EXC_CAUSE_STORE_FAULT' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_controller.sv" -match "Operator COND expects 7 bits on the Conditional False, but Conditional False's VARREF 'EXC_CAUSE_LOAD_FAULT' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_controller.sv" -match "Operator COND expects 7 bits on the Conditional True, but Conditional True's VARREF 'EXC_CAUSE_STORE_FAULT' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_controller.sv" -match "Operator COND expects 7 bits on the Conditional False, but Conditional False's VARREF 'EXC_CAUSE_LOAD_FAULT' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_alu.sv" -match "Operator COND expects 32 bits on the Conditional True, but Conditional True's VARREF 'div_shift' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_alu.sv" -match "Operator ASSIGNW expects 16 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_alu.sv" -match "Operator ASSIGN expects 16 bits on the Assign RHS, but Assign RHS's SHIFTRS generates 17 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_alu.sv" -match "Operator ASSIGN expects 16 bits on the Assign RHS, but Assign RHS's SHIFTRS generates 17 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_alu.sv" -match "Operator ASSIGN expects 8 bits on the Assign RHS, but Assign RHS's SHIFTRS generates 9 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_alu.sv" -match "Operator ASSIGN expects 8 bits on the Assign RHS, but Assign RHS's SHIFTRS generates 9 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_alu.sv" -match "Operator ASSIGN expects 8 bits on the Assign RHS, but Assign RHS's SHIFTRS generates 9 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_alu.sv" -match "Operator ASSIGN expects 8 bits on the Assign RHS, but Assign RHS's SHIFTRS generates 9 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_alu.sv" -match "Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS's SHIFTR generates 64 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_mult.sv" -match "Operator COND expects 33 bits on the Conditional False, but Conditional False's SIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_mult.sv" -match "Operator ADD expects 34 bits on the RHS, but RHS's SIGNED generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_mult.sv" -match "Operator ADD expects 32 bits on the LHS, but LHS's SIGNED generates 18 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_mult.sv" -match "Operator ADD expects 32 bits on the RHS, but RHS's SIGNED generates 18 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_mult.sv" -match "Operator ADD expects 32 bits on the RHS, but RHS's SIGNED generates 18 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_mult.sv" -match "Operator ADD expects 32 bits on the RHS, but RHS's SIGNED generates 18 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_mult.sv" -match "Operator ASSIGNW expects 32 bits on the Assign RHS, but Assign RHS's SIGNED generates 17 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_mult.sv" -match "Operator ASSIGNW expects 16 bits on the Assign RHS, but Assign RHS's SHIFTRS generates 17 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/cv32e40p_decoder.sv" -match "Little bit endian vector: MSB < LSB of bit range: -1:0" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/cv32e40p_decoder.sv" -match "Little bit endian vector: MSB < LSB of bit range: -1:0" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's CONST '1'h1' generates 1 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's VARREF 'APUTYPE_DIV' generates 32 or 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's VARREF 'APUTYPE_SQRT' generates 32 or 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'alu_operator_o' generates 7 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'alu_operator_o' generates 7 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'alu_operator_o' generates 7 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'alu_operator_o' generates 7 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'mult_operator_o' generates 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'mult_operator_o' generates 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's CONST '2'h0' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's CONST '2'h1' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's VARREF 'APUTYPE_DIV' generates 32 or 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's VARREF 'APUTYPE_SQRT' generates 32 or 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's CONST '1'h1' generates 1 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Logical Operator IF expects 1 bit on the If, but If's SEL generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's CONST '2'h1' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Logical Operator IF expects 1 bit on the If, but If's SEL generates 4 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's CONST '2'h0' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Logical Operator IF expects 1 bit on the If, but If's SEL generates 4 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Logical Operator IF expects 1 bit on the If, but If's SEL generates 5 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's CONST '2'h0' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's CONST '2'h1' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's CONST '2'h2' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator COND expects 32 bits on the Conditional False, but Conditional False's CONST '2'h3' generates 2 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 2 bits on the Assign RHS, but Assign RHS's COND generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'mult_operator_o' generates 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'mult_operator_o' generates 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'mult_operator_o' generates 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'mult_operator_o' generates 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'mult_operator_o' generates 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'mult_operator_o' generates 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'mult_operator_o' generates 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'mult_operator_o' generates 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_decoder.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'mult_operator_o' generates 3 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/cv32e40p_id_stage.sv" -match "Little bit endian vector: MSB < LSB of bit range: -1:0" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/cv32e40p_id_stage.sv" -match "Little bit endian vector: MSB < LSB of bit range: -1:0" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/cv32e40p_id_stage.sv" -match "Little bit endian vector: MSB < LSB of bit range: -1:0" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_id_stage.sv" -match "Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS's UNSIGNED generates 5 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_id_stage.sv" -match "Operator ASSIGNDLY expects 6 bits on the Assign RHS, but Assign RHS's CONST '5'h0' generates 5 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_cs_registers.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'CSR_MEIX_BIT' generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_cs_registers.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'CSR_MSIX_BIT' generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_cs_registers.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'CSR_MTIX_BIT' generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_cs_registers.sv" -match "Operator ASSIGN expects 6 bits on the Assign RHS, but Assign RHS's VARREF 'CSR_MTIX_BIT' generates 32 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_cs_registers.sv" -match "Operator ADD expects 64 bits on the RHS, but RHS's SEL generates 1 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_cs_registers.sv" -match "Operator ADD expects 64 bits on the RHS, but RHS's REDOR generates 1 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_cs_registers.sv" -match "Operator EQ expects 32 bits on the LHS, but LHS's VARREF 'csr_addr_i' generates 12 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_cs_registers.sv" -match "Operator ADD expects 32 bits on the LHS, but LHS's ENUMITEMREF 'CSR_MCYCLEH' generates 12 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_cs_registers.sv" -match "Operator EQ expects 32 bits on the LHS, but LHS's VARREF 'csr_addr_i' generates 12 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_cs_registers.sv" -match "Operator ADD expects 32 bits on the LHS, but LHS's ENUMITEMREF 'CSR_MCYCLE' generates 12 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_if_stage.sv" -match "Operator ASSIGN expects 32 bits on the Assign RHS, but Assign RHS's REPLICATE generates 33 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/fpnew_pkg.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:4" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/fpnew_pkg.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:4" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/fpnew_pkg.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:4" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/fpnew_pkg.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:3" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/fpnew_pkg.sv" -match "Little bit endian vector: MSB < LSB of bit range: 0:3" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/cv32e40p_core.sv" -match "Little bit endian vector: MSB < LSB of bit range: -1:0" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule LITENDIAN -file "*/cv32e40p_core.sv" -match "Little bit endian vector: MSB < LSB of bit range: -1:0" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_core.sv" -match "Bits of signal are not used: 'boot_addr_i'[0]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_core.sv" -match "Bits of signal are not used: 'dm_halt_addr_i'[1:0]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_core.sv" -match "Signal is not used: 'apu_master_flags_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_core.sv" -match "Signal is not used: 'data_atop_o'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_core.sv" -match "Signal is not used: 'sec_lvl_o'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_core.sv" -match "Signal is not used: 'apu_type_ex'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_core.sv" -match "Signal is not used: 'wb_valid'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_core.sv" -match "Signal is not used: 'pmp_addr'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_core.sv" -match "Signal is not used: 'pmp_cfg'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_core.sv" -match "Signal is not used: 'data_err_ack'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_core.sv" -match "Signal is not used: 'is_interrupt'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_core.sv" -match "Signal is not used: 'sleeping'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_if_stage.sv" -match "Signal is not used: 'hwlp_start_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_if_stage.sv" -match "Signal is not used: 'hwlp_end_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_if_stage.sv" -match "Signal is not used: 'hwlp_cnt_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_if_stage.sv" -match "Bits of signal are not used: 'fetch_addr_n'[0]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_if_stage.sv" -match "Signal is not used: 'hwlp_target'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'boot_addr_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'csr_access_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'csr_irq_sec_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'pc_ex_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'csr_save_ex_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'csr_restore_uret_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'uepc_n'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'ucause_q'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'ucause_n'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'utvec_n'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'utvec_mode_n'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'is_irq'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'priv_lvl_n'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Bits of signal are not used: 'pmp_reg_q'[255:128]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'pmp_reg_n'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'pmpaddr_we'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not used: 'pmpcfg_we'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Bits of signal are not used: 'mhpmevent_n'[1023:128,95:0]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Bits of signal are not used: 'mcountinhibit_n'[31:4,1]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not driven, nor used: 'tmatch_control_exec_n'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_cs_registers.sv" -match "Signal is not driven, nor used: 'tmatch_value_n'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_load_store_unit.sv" -match "Signal is not used: 'resp_err'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_load_store_unit.sv" -match "Signal is not used: 'load_err_o'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_load_store_unit.sv" -match "Signal is not used: 'store_err_o'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'hwlp_dec_cnt_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'is_hwlp_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Bits of signal are not used: 'imm_clip_type'[0]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'fpu_src_fmt'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'fpu_dst_fmt'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'fpu_int_fmt'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'apu_read_regs'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'apu_read_regs_valid'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'apu_write_regs'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'apu_write_regs_valid'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'apu_flags_src'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'fp_rnd_mode'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'hwloop_regid'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'hwloop_we'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'hwloop_start'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'hwloop_end'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_id_stage.sv" -match "Signal is not used: 'hwloop_cnt'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'fpu_prec_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_op_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_lat_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_operands_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_waddr_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_flags_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_read_regs_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_read_regs_valid_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_write_regs_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_write_regs_valid_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_master_gnt_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_master_valid_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_master_result_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'is_decoding_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'wb_contention_lsu'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_req'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_ready'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ex_stage.sv" -match "Signal is not used: 'apu_gnt'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_prefetch_buffer.sv" -match "Signal is not used: 'instr_err_pmp_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_prefetch_buffer.sv" -match "Signal is not driven, nor used: 'trans_we'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_prefetch_buffer.sv" -match "Signal is not driven, nor used: 'trans_be'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_prefetch_buffer.sv" -match "Signal is not driven, nor used: 'trans_wdata'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_prefetch_buffer.sv" -match "Signal is not used: 'resp_err'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_mult.sv" -match "Bits of signal are not used: 'short_round_tmp'[0]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_mult.sv" -match "Bits of signal are not used: 'short_result'[33:32]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_mult.sv" -match "Bits of signal are not used: 'dot_short_result'[32]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/register_file_test_wrap.sv" -match "Bits of signal are not used: 'A_T'[5]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_int_controller.sv" -match "Signal is not used: 'u_IE_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_int_controller.sv" -match "Signal is not used: 'current_priv_lvl_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_alu.sv" -match "Bits of signal are not used: 'adder_result_expanded'[27,18,9,0]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_alu.sv" -match "Bits of signal are not used: 'shift_amt_int'[31:27,23:20,15:11,7:5]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_alu.sv" -match "Signal is not used: 'div_op_b_signed'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_controller.sv" -match "Signal is not used: 'instr_multicycle_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file.sv" -match "Signal is not used: 'scan_cg_en_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file.sv" -match "Bits of signal are not used: 'raddr_a_i'[5]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file.sv" -match "Bits of signal are not used: 'raddr_b_i'[5]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file.sv" -match "Bits of signal are not used: 'raddr_c_i'[5]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file.sv" -match "Signal is not used: 'mem_fp'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file.sv" -match "Bits of signal are not used: 'we_a_dec'[0]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file.sv" -match "Bits of signal are not used: 'we_b_dec'[0]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_fetch_fifo.sv" -match "Bits of signal are not used: 'addr_incr'[1:0]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_prefetch_controller.sv" -match "Bits of signal are not used: 'branch_addr_i'[1:0]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ff_one.sv" -match "Bits of signal are not driven, nor used: 'sel_nodes'[31]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_ff_one.sv" -match "Bits of signal are not driven, nor used: 'index_nodes'[159:155]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_obi_interface.sv" -match "Signal is not used: 'clk'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_obi_interface.sv" -match "Signal is not used: 'rst_n'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNSIGNED -file "*/cv32e40p_decoder.sv" -match "Comparison is constant due to unsigned arithmetic" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNSIGNED -file "*/cv32e40p_decoder.sv" -match "Comparison is constant due to unsigned arithmetic" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNSIGNED -file "*/cv32e40p_decoder.sv" -match "Comparison is constant due to unsigned arithmetic" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNSIGNED -file "*/cv32e40p_decoder.sv" -match "Comparison is constant due to unsigned arithmetic" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNSIGNED -file "*/cv32e40p_decoder.sv" -match "Comparison is constant due to unsigned arithmetic" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNSIGNED -file "*/cv32e40p_decoder.sv" -match "Comparison is constant due to unsigned arithmetic" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNSIGNED -file "*/cv32e40p_decoder.sv" -match "Comparison is constant due to unsigned arithmetic" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNSIGNED -file "*/cv32e40p_decoder.sv" -match "Comparison is constant due to unsigned arithmetic" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNSIGNED -file "*/cv32e40p_decoder.sv" -match "Comparison is constant due to unsigned arithmetic" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNSIGNED -file "*/cv32e40p_decoder.sv" -match "Comparison is constant due to unsigned arithmetic" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNSIGNED -file "*/cv32e40p_decoder.sv" -match "Comparison is constant due to unsigned arithmetic" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNSIGNED -file "*/cv32e40p_decoder.sv" -match "Comparison is constant due to unsigned arithmetic" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNSIGNED -file "*/cv32e40p_decoder.sv" -match "Comparison is constant due to unsigned arithmetic" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule CASEX -file "*/cv32e40p_decoder.sv" -match "Suggest casez (with ?'s) in place of casex (with X's)" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule CASEINCOMPLETE -file "*/cv32e40p_int_controller.sv" -match "Case values incompletely covered (example pattern 0x3)" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule CASEINCOMPLETE -file "*/cv32e40p_alu.sv" -match "Case values incompletely covered (example pattern 0x0)" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule CASEINCOMPLETE -file "*/cv32e40p_alu.sv" -match "Case values incompletely covered (example pattern 0x0)" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule CASEINCOMPLETE -file "*/cv32e40p_alu.sv" -match "Case values incompletely covered (example pattern 0x0)" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule CASEINCOMPLETE -file "*/cv32e40p_mult.sv" -match "Case values incompletely covered (example pattern 0x5)" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule CASEINCOMPLETE -file "*/cv32e40p_load_store_unit.sv" -match "Case values incompletely covered (example pattern 0x2)" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule CASEINCOMPLETE -file "*/cv32e40p_cs_registers.sv" -match "Case values incompletely covered (example pattern 0x0)" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_core.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.irq_pending'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_core.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.irq_pending'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_controller.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.id_stage_i.controller_i.ctrl_fsm_cs'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_mult.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.mult_i.short_op_a'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_mult.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.mult_i.short_op_a'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_mult.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.mult_i.short_op_b'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_mult.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.mult_i.short_op_b'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPERFECTSCH -file "*/cv32e40p_core.sv" -match "Imperfect scheduling of variable: 'cv32e40p_core.irq_pending'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPERFECTSCH -file "*/cv32e40p_controller.sv" -match "Imperfect scheduling of variable: 'cv32e40p_core.id_stage_i.controller_i.ctrl_fsm_cs'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPERFECTSCH -file "*/cv32e40p_ff_one.sv" -match "Imperfect scheduling of variable: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPERFECTSCH -file "*/cv32e40p_ff_one.sv" -match "Imperfect scheduling of variable: 'cv32e40p_core.ex_stage_i.alu_i.alu_ff_i.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPERFECTSCH -file "*/cv32e40p_mult.sv" -match "Imperfect scheduling of variable: 'cv32e40p_core.ex_stage_i.mult_i.short_op_a'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPERFECTSCH -file "*/cv32e40p_mult.sv" -match "Imperfect scheduling of variable: 'cv32e40p_core.ex_stage_i.mult_i.short_op_b'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule DECLFILENAME -file "*/cv32e40p_register_file_ff.sv" -match "Filename 'cv32e40p_register_file_ff' does not match MODULE name: 'cv32e40p_register_file'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/include/cv32e40p_apu_macros.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/include/cv32e40p_apu_macros.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPORTSTAR -file "*/include/cv32e40p_apu_macros.sv" -match "Import::* in $unit scope may pollute global namespace" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_register_file_ff.sv" -match "Operator EQ expects 32 bits on the LHS, but LHS's VARREF 'waddr_a' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule WIDTH -file "*/cv32e40p_register_file_ff.sv" -match "Operator EQ expects 32 bits on the LHS, but LHS's VARREF 'waddr_b' generates 6 bits." + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file_test_wrap.sv" -match "Bits of signal are not used: 'A_T'[5]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file_ff.sv" -match "Signal is not used: 'scan_cg_en_i'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file_ff.sv" -match "Bits of signal are not used: 'raddr_a_i'[5]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file_ff.sv" -match "Bits of signal are not used: 'raddr_b_i'[5]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file_ff.sv" -match "Bits of signal are not used: 'raddr_c_i'[5]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file_ff.sv" -match "Signal is not used: 'mem_fp'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file_ff.sv" -match "Bits of signal are not used: 'we_a_dec'[0]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNUSED -file "*/cv32e40p_register_file_ff.sv" -match "Bits of signal are not used: 'we_b_dec'[0]" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: '*.index_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule UNOPTFLAT -file "*/cv32e40p_ff_one.sv" -match "Signal unoptimizable: Feedback to clock or circular logic: '*ff_one_i.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPERFECTSCH -file "*/cv32e40p_ff_one.sv" -match "Imperfect scheduling of variable: '*.sel_nodes'" + +// TODO: Check this linter waiver, fix or keep? +lint_off -rule IMPERFECTSCH -file "*/cv32e40p_ff_one.sv" -match "Imperfect scheduling of variable: '*.index_nodes'" +