diff --git a/.github/scripts/defaults.sh b/.github/scripts/defaults.sh index abccdaaf..23461baf 100755 --- a/.github/scripts/defaults.sh +++ b/.github/scripts/defaults.sh @@ -50,6 +50,7 @@ mapping["chipyard-hwacha"]=" CONFIG=HwachaRocketConfig" mapping["chipyard-gemmini"]=" CONFIG=GemminiRocketConfig" mapping["chipyard-cva6"]=" CONFIG=CVA6Config" mapping["chipyard-ibex"]=" CONFIG=IbexConfig" +# currently spi tests are unsupported in verilator w/ circt mapping["chipyard-spiflashread"]=" CONFIG=LargeSPIFlashROMRocketConfig" mapping["chipyard-spiflashwrite"]=" CONFIG=SmallSPIFlashRocketConfig" mapping["chipyard-mmios"]=" CONFIG=MMIORocketConfig verilog" diff --git a/.github/workflows/chipyard-run-tests.yml b/.github/workflows/chipyard-run-tests.yml index 0ed26ea6..cdbea373 100644 --- a/.github/workflows/chipyard-run-tests.yml +++ b/.github/workflows/chipyard-run-tests.yml @@ -581,51 +581,52 @@ jobs: group-key: "group-peripherals" project-key: "chipyard-dmirocket" - chipyard-spiflashwrite-run-tests: - name: chipyard-spiflashwrite-run-tests - needs: prepare-chipyard-peripherals - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-peripherals" - project-key: "chipyard-spiflashwrite" - - chipyard-spiflashread-run-tests: - name: chipyard-spiflashread-run-tests - needs: prepare-chipyard-peripherals - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-peripherals" - project-key: "chipyard-spiflashread" +# Unsupported in Verilator due to CIRCT emitting alias for Analog connections +# chipyard-spiflashwrite-run-tests: +# name: chipyard-spiflashwrite-run-tests +# needs: prepare-chipyard-peripherals +# runs-on: self-hosted +# steps: +# - name: Delete old checkout +# run: | +# ls -alh . +# rm -rf ${{ github.workspace }}/* || true +# rm -rf ${{ github.workspace }}/.* || true +# ls -alh . +# - name: Checkout +# uses: actions/checkout@v3 +# - name: Git workaround +# uses: ./.github/actions/git-workaround +# - name: Create conda env +# uses: ./.github/actions/create-conda-env +# - name: Run tests +# uses: ./.github/actions/run-tests +# with: +# group-key: "group-peripherals" +# project-key: "chipyard-spiflashwrite" +# +# chipyard-spiflashread-run-tests: +# name: chipyard-spiflashread-run-tests +# needs: prepare-chipyard-peripherals +# runs-on: self-hosted +# steps: +# - name: Delete old checkout +# run: | +# ls -alh . +# rm -rf ${{ github.workspace }}/* || true +# rm -rf ${{ github.workspace }}/.* || true +# ls -alh . +# - name: Checkout +# uses: actions/checkout@v3 +# - name: Git workaround +# uses: ./.github/actions/git-workaround +# - name: Create conda env +# uses: ./.github/actions/create-conda-env +# - name: Run tests +# uses: ./.github/actions/run-tests +# with: +# group-key: "group-peripherals" +# project-key: "chipyard-spiflashread" chipyard-lbwif-run-tests: name: chipyard-lbwif-run-tests @@ -1043,9 +1044,7 @@ jobs: chipyard-ibex-run-tests, chipyard-sodor-run-tests, chipyard-dmirocket-run-tests, - chipyard-spiflashwrite-run-tests, chipyard-fftgenerator-run-tests, - chipyard-spiflashread-run-tests, chipyard-lbwif-run-tests, chipyard-sha3-run-tests, chipyard-streaming-fir-run-tests, diff --git a/common.mk b/common.mk index fa882068..a81b87db 100644 --- a/common.mk +++ b/common.mk @@ -130,7 +130,7 @@ endef export firtool_extra_anno_contents $(FINAL_ANNO_FILE) $(FIRTOOL_EXTRA_ANNO_FILE): $(ANNO_FILE) echo "$$firtool_extra_anno_contents" > $(FIRTOOL_EXTRA_ANNO_FILE) - jq -s '[.[][]]' $(ANNO_FILE) $(FIRTOOL_EXTRA_ANNO_FILE) > $@ + jq -s '[.[][]]' $(ANNO_FILE) $(FIRTOOL_EXTRA_ANNO_FILE) > $(FINAL_ANNO_FILE) .PHONY: firrtl firrtl: $(FIRRTL_FILE) $(FINAL_ANNO_FILE) @@ -138,7 +138,7 @@ firrtl: $(FIRRTL_FILE) $(FINAL_ANNO_FILE) ######################################################################################### # create verilog files rules and variables ######################################################################################### -CIRCT_TARGETS = $(FIRTOOL_SMEMS_CONF) $(FIRTOOL_MOD_HIER_JSON) $(FIRTOOL_TB_MOD_HIER_JSON) $(FIRTOOL_SMEMS_JSON) $(FIRTOOL_TB_SMEMS_JSON) $(FIRTOOL_FILELIST) +CIRCT_TARGETS = $(FIRTOOL_SMEMS_CONF) $(FIRTOOL_MOD_HIER_JSON) $(FIRTOOL_TB_MOD_HIER_JSON) $(FIRTOOL_SMEMS_JSON) $(FIRTOOL_TB_SMEMS_JSON) $(FIRTOOL_FILELIST) $(FIRTOOL_BB_MODS_FILELIST) # DOC include start: FirrtlCompiler $(TOP_TARGETS) $(HARNESS_TARGETS) &: $(FIRRTL_FILE) $(ANNO_FILE) $(VLOG_SOURCES) @@ -171,15 +171,17 @@ $(CIRCT_TARGETS): firrtl_temp # hack: lower to middle firrtl if Fixed types are found firrtl_temp: $(FIRRTL_FILE) $(FINAL_ANNO_FILE) $(VLOG_SOURCES) $(call run_scala_main,tapeout,barstools.tapeout.transforms.GenerateTop,\ - --output-file $(SFC_FIRRTL_FILE) \ + --no-dedup \ + --output-file $(SFC_FIRRTL_START) \ + --output-annotation-file $(SFC_ANNO_FILE) \ --target-dir $(build_dir) \ --input-file $(FIRRTL_FILE) \ --annotation-file $(FINAL_ANNO_FILE) \ - --out-anno-file $(SFC_ANNO_FILE) \ --log-level $(FIRRTL_LOGLEVEL) \ --allow-unrecognized-annotations \ -X $(if $(shell grep "Fixed<" $(FIRRTL_FILE)),middle,none) \ $(EXTRA_FIRRTL_OPTIONS)) + $(if $(shell grep "Fixed<" $(FIRRTL_FILE)),mv $(SFC_FIRRTL_START).mid.fir $(SFC_FIRRTL_FILE),) firtool \ --export-module-hierarchy \ --emit-metadata \ @@ -200,7 +202,7 @@ firrtl_temp: $(FIRRTL_FILE) $(FINAL_ANNO_FILE) $(VLOG_SOURCES) sed -i 's/.*/& /' $(FIRTOOL_SMEMS_CONF) # need trailing space for SFC macrocompiler # DOC include end: FirrtlCompiler -$(TOP_MODS_FILELIST) $(TB_MODS_FILELIST) $(ALL_MODS_FILELIST) &: $(FIRTOOL_TB_MOD_HIER_JSON) $(FIRTOOL_FILELIST) +$(TOP_MODS_FILELIST) $(TB_MODS_FILELIST) $(ALL_MODS_FILELIST) $(BB_MODS_FILELIST) &: $(FIRTOOL_TB_MOD_HIER_JSON) $(FIRTOOL_FILELIST) $(FIRTOOL_BB_MODS_FILELIST) $(base_dir)/scripts/split-module-files.py \ --tb-hier-json $(FIRTOOL_TB_MOD_HIER_JSON) \ --dut $(TOP) \ @@ -209,6 +211,8 @@ $(TOP_MODS_FILELIST) $(TB_MODS_FILELIST) $(ALL_MODS_FILELIST) &: $(FIRTOOL_TB_MO --in-all-filelist $(FIRTOOL_FILELIST) \ --build-dir $(build_dir) cat $(TOP_MODS_FILELIST) $(TB_MODS_FILELIST) > $(ALL_MODS_FILELIST) + sed -i 's/\.\///' $(ALL_MODS_FILELIST) + sed -e 's;^;$(build_dir)/;' $(FIRTOOL_BB_MODS_FILELIST) > $(BB_MODS_FILELIST) $(TOP_SMEMS_CONF) $(HARNESS_SMEMS_CONF) &: $(FIRTOOL_SMEMS_JSON) $(FIRTOOL_TB_SMEMS_JSON) $(FIRTOOL_SMEMS_CONF) $(base_dir)/scripts/split-mems-conf.py \ @@ -230,8 +234,8 @@ $(HARNESS_SMEMS_FILE) $(HARNESS_SMEMS_FIR) &: $(HARNESS_SMEMS_CONF) | $(TOP_SMEM ######################################################################################## # remove duplicate files and headers in list of simulation file inputs ######################################################################################## -$(sim_common_files): $(sim_files) $(ALL_MODS_FILELIST) $(TOP_SMEMS_FILE) $(HARNESS_SMEMS_FILE) - sort -u $(sim_files) $(ALL_MODS_FILELIST) | grep -v '.*\.\(svh\|h\)$$' > $@ +$(sim_common_files): $(sim_files) $(ALL_MODS_FILELIST) $(BB_MODS_FILELIST) $(TOP_SMEMS_FILE) $(HARNESS_SMEMS_FILE) + sort -u $(sim_files) $(ALL_MODS_FILELIST) $(BB_MODS_FILELIST) | grep -v '.*\.\(svh\|h\)$$' > $@ echo "$(TOP_SMEMS_FILE)" >> $@ echo "$(HARNESS_SMEMS_FILE)" >> $@ diff --git a/generators/riscv-sodor b/generators/riscv-sodor index fc56b712..510dea74 160000 --- a/generators/riscv-sodor +++ b/generators/riscv-sodor @@ -1 +1 @@ -Subproject commit fc56b7128f8d5fd3d9022e19ee53c93e0ecfad05 +Subproject commit 510dea7407d8bca5eef18175530ffffa8e0774ce diff --git a/variables.mk b/variables.mk index 343a516d..557ee54f 100644 --- a/variables.mk +++ b/variables.mk @@ -149,6 +149,7 @@ FIRTOOL_EXTRA_ANNO_FILE ?= $(build_dir)/$(long_name).extrafirtool.anno.json FINAL_ANNO_FILE ?= $(build_dir)/$(long_name).appended.anno.json SFC_FIRRTL_FILE ?= $(build_dir)/$(long_name).sfc.fir +SFC_FIRRTL_START ?= $(build_dir)/$(long_name).sfc SFC_ANNO_FILE ?= $(build_dir)/$(long_name).sfc.anno.json FIRTOOL_MOD_HIER_JSON ?= $(build_dir)/modulehierarchy.json @@ -172,6 +173,10 @@ ALL_MODS_FILELIST ?= $(build_dir)/$(long_name).all.f TOP_MODS_FILELIST ?= $(build_dir)/$(long_name).top.f # tb module files to include (not including top modules) TB_MODS_FILELIST ?= $(build_dir)/$(long_name).tb.f +# list of all blackbox files (may be included in the top/tb.f files) +FIRTOOL_BB_MODS_FILELIST ?= $(build_dir)/firrtl_black_box_resource_files.f +# this has the build_dir appended +BB_MODS_FILELIST ?= $(build_dir)/firrtl_black_box_resource_files.final.f BOOTROM_FILES ?= bootrom.rv64.img bootrom.rv32.img BOOTROM_TARGETS ?= $(addprefix $(build_dir)/, $(BOOTROM_FILES))