mirror of
https://github.com/SikongJueluo/Mini-Nav.git
synced 2026-07-12 20:15:31 +08:00
build(simulation): improve verilator simulation infrastructure
- Add verilator to dependencies - Add configurable logging via QUIET/VERBOSE/COCOTB_LOG_LEVEL env vars - Add optional warning suppression (SUPPRESS_VERILATOR_WARNINGS) - Clean up and restructure Makefile
This commit is contained in:
6
.editorconfig
Normal file
6
.editorconfig
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
charset = utf-8
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -136,6 +136,7 @@ celerybeat.pid
|
|||||||
|
|
||||||
# Environments
|
# Environments
|
||||||
.env
|
.env
|
||||||
|
.env.remote
|
||||||
.venv
|
.venv
|
||||||
env/
|
env/
|
||||||
venv/
|
venv/
|
||||||
|
|||||||
27
.rsyncignore
27
.rsyncignore
@@ -1,12 +1,15 @@
|
|||||||
.jj/
|
.jj
|
||||||
.git/
|
.git
|
||||||
.devenv/
|
.devenv
|
||||||
.direnv/
|
.direnv
|
||||||
deps/
|
deps
|
||||||
outputs/
|
outputs
|
||||||
data/versioned_data/
|
data/versioned_data
|
||||||
datasets/
|
datasets
|
||||||
.ruff_cache/
|
.ruff_cache
|
||||||
.pytest_cache/
|
.pytest_cache
|
||||||
.sisyphus/
|
.sisyphus
|
||||||
.logs/
|
.logs
|
||||||
|
.opencode
|
||||||
|
.venv
|
||||||
|
**/__pycache__
|
||||||
|
|||||||
@@ -16,5 +16,6 @@ dependencies:
|
|||||||
- pytorch-cuda=12.1
|
- pytorch-cuda=12.1
|
||||||
# Toolsets
|
# Toolsets
|
||||||
- uv
|
- uv
|
||||||
|
- verilator
|
||||||
- just
|
- just
|
||||||
- nodejs>=20.0.0
|
- nodejs>=20.0.0
|
||||||
|
|||||||
@@ -1,14 +1,9 @@
|
|||||||
# Minimal cocotb Makefile.
|
|
||||||
# Examples:
|
|
||||||
# make TESTCASE=basic_write_query_no_noise
|
|
||||||
# make TESTCASE=external_noise_mask EXTRA_DEFINES="+define+SIM_NOISE +define+SIM_DEBUG"
|
|
||||||
#
|
|
||||||
# Verilator is preferred. Icarus may not support all SystemVerilog constructs used here.
|
|
||||||
|
|
||||||
SIM ?= verilator
|
SIM ?= verilator
|
||||||
TOPLEVEL_LANG ?= verilog
|
TOPLEVEL_LANG ?= verilog
|
||||||
TOPLEVEL := cam_top
|
TOPLEVEL := cam_top
|
||||||
MODULE ?= tests.test_cam_basic
|
|
||||||
|
# MODULE ?= tests.test_cam_basic
|
||||||
|
COCOTB_TEST_MODULES ?= tests.test_cam_basic
|
||||||
|
|
||||||
NUM_ROWS ?= 512
|
NUM_ROWS ?= 512
|
||||||
HASH_BITS ?= 512
|
HASH_BITS ?= 512
|
||||||
@@ -16,16 +11,26 @@ LANES ?= 16
|
|||||||
|
|
||||||
EXTRA_ARGS += +define+NUM_ROWS=$(NUM_ROWS) +define+HASH_BITS=$(HASH_BITS) +define+LANES=$(LANES)
|
EXTRA_ARGS += +define+NUM_ROWS=$(NUM_ROWS) +define+HASH_BITS=$(HASH_BITS) +define+LANES=$(LANES)
|
||||||
|
|
||||||
# cocotb passes PLUSARGS/EXTRA_ARGS differently across simulators. Keep
|
|
||||||
# SystemVerilog parameters explicit through COMPILE_ARGS for Verilator.
|
|
||||||
COMPILE_ARGS += -Wall -Wno-fatal
|
COMPILE_ARGS += -Wall -Wno-fatal
|
||||||
COMPILE_ARGS += -I$(PWD)/../rtl
|
COMPILE_ARGS += -I$(PWD)/../rtl
|
||||||
COMPILE_ARGS += +define+SIM_DEBUG
|
COMPILE_ARGS += +define+SIM_DEBUG
|
||||||
COMPILE_ARGS += $(EXTRA_DEFINES)
|
COMPILE_ARGS += $(EXTRA_DEFINES)
|
||||||
|
|
||||||
|
# Cleaner terminal output
|
||||||
|
export QUIET ?= 1
|
||||||
|
export VERBOSE ?= 0
|
||||||
|
export COCOTB_LOG_LEVEL ?= INFO
|
||||||
|
export PYTHONWARNINGS ?= ignore::pytest.PytestDeprecationWarning
|
||||||
|
|
||||||
|
# Optional temporary suppression
|
||||||
|
SUPPRESS_VERILATOR_WARNINGS ?= 0
|
||||||
|
ifeq ($(SUPPRESS_VERILATOR_WARNINGS),1)
|
||||||
|
COMPILE_ARGS += -Wno-WIDTHEXPAND
|
||||||
|
COMPILE_ARGS += -Wno-UNOPTFLAT
|
||||||
|
endif
|
||||||
|
|
||||||
VERILOG_SOURCES += $(PWD)/../rtl/popcount.sv
|
VERILOG_SOURCES += $(PWD)/../rtl/popcount.sv
|
||||||
VERILOG_SOURCES += $(PWD)/../rtl/argmax_update.sv
|
VERILOG_SOURCES += $(PWD)/../rtl/argmax_update.sv
|
||||||
|
|
||||||
VERILOG_SOURCES += $(PWD)/../rtl/cam_core.sv
|
VERILOG_SOURCES += $(PWD)/../rtl/cam_core.sv
|
||||||
VERILOG_SOURCES += $(PWD)/../rtl/match_engine.sv
|
VERILOG_SOURCES += $(PWD)/../rtl/match_engine.sv
|
||||||
VERILOG_SOURCES += $(PWD)/../rtl/cam_top.sv
|
VERILOG_SOURCES += $(PWD)/../rtl/cam_top.sv
|
||||||
|
|||||||
Reference in New Issue
Block a user