Skip to content

Commit 89e8d4e

Browse files
committed
merge from main
2 parents 1165464 + e97acc9 commit 89e8d4e

File tree

30 files changed

+313
-57
lines changed

30 files changed

+313
-57
lines changed

.github/scripts/check-commit.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ search () {
4646
}
4747

4848

49-
submodules=("cva6" "boom" "ibex" "gemmini" "icenet" "nvdla" "rocket-chip" "rocket-chip-blocks" "rocket-chip-inclusive-cache" "testchipip" "riscv-sodor" "mempress" "bar-fetchers" "shuttle" "constellation" "fft-generator" "hardfloat" "caliptra-aes-acc" "rocc-acc-utils" "diplomacy" "rerocc" "compress-acc" "saturn" "ara" "vexiiriscv" "tacit")
49+
submodules=("cva6" "boom" "ibex" "gemmini" "icenet" "nvdla" "rocket-chip" "rocket-chip-blocks" "rocket-chip-inclusive-cache" "testchipip" "riscv-sodor" "mempress" "bar-fetchers" "shuttle" "constellation" "fft-generator" "hardfloat" "caliptra-aes-acc" "rocc-acc-utils" "diplomacy" "rerocc" "compress-acc" "saturn" "ara" "vexiiriscv" "tacit" "radiance")
5050
dir="generators"
5151
branches=("master" "main" "dev")
5252
search

.github/scripts/defaults.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ REMOTE_COURSIER_CACHE=$REMOTE_WORK_DIR/.coursier-cache
2525

2626
# key value store to get the build groups
2727
declare -A grouping
28-
grouping["group-cores"]="chipyard-cva6 chipyard-ibex chipyard-rocket chipyard-hetero chipyard-boomv3 chipyard-boomv4 chipyard-sodor chipyard-digitaltop chipyard-multiclock-rocket chipyard-nomem-scratchpad chipyard-spike chipyard-clone chipyard-prefetchers chipyard-shuttle chipyard-shuttle3 chipyard-vexiiriscv chipyard-tacit-rocket"
28+
grouping["group-cores"]="chipyard-cva6 chipyard-ibex chipyard-rocket chipyard-hetero chipyard-boomv3 chipyard-boomv4 chipyard-sodor chipyard-digitaltop chipyard-multiclock-rocket chipyard-nomem-scratchpad chipyard-spike chipyard-clone chipyard-prefetchers chipyard-shuttle chipyard-shuttle3 chipyard-vexiiriscv chipyard-tacit-rocket chipyard-radiance"
2929
grouping["group-peripherals"]="chipyard-dmirocket chipyard-dmiboomv3 chipyard-dmiboomv4 chipyard-spiflashwrite chipyard-mmios chipyard-nocores chipyard-manyperipherals chipyard-chiplike chipyard-tethered chipyard-symmetric chipyard-llcchiplet"
3030
grouping["group-accels"]="chipyard-compressacc chipyard-mempress chipyard-gemmini chipyard-manymmioaccels chipyard-nvdla chipyard-aes256ecb chipyard-rerocc chipyard-rocketvector chipyard-shuttlevector chipyard-hlsacc" # chipyard-shuttleara - Add when Ara works again
3131
grouping["group-constellation"]="chipyard-constellation"
@@ -80,6 +80,7 @@ mapping["chipyard-rerocc"]=" CONFIG=ReRoCCTestConfig"
8080
mapping["chipyard-rocketvector"]=" CONFIG=MINV128D64RocketConfig"
8181
mapping["chipyard-shuttlevector"]=" CONFIG=GENV256D128ShuttleConfig"
8282
mapping["chipyard-shuttleara"]=" CONFIG=V4096Ara2LaneShuttleConfig USE_ARA=1 verilog"
83+
mapping["chipyard-radiance"]=" CONFIG=RadianceFP16ClusterConfig verilog"
8384

8485
mapping["constellation"]=" SUB_PROJECT=constellation"
8586
mapping["icenet"]="SUB_PROJECT=icenet"

.github/scripts/run-tests.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,9 @@ case $1 in
176176
chipyard-zephyr)
177177
run_binary LOADMEM=1 BINARY=$LOCAL_CHIPYARD_DIR/software/zephyrproject/zephyr/build/zephyr/zephyr.elf
178178
;;
179+
chipyard-radiance)
180+
# Verilator fails to build sim binary, just generate verilog
181+
;;
179182
icenet)
180183
run_binary BINARY=none
181184
;;

.github/workflows/chipyard-run-tests.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -535,6 +535,29 @@ jobs:
535535
group-key: "group-cores"
536536
project-key: "chipyard-shuttle3"
537537

538+
chipyard-radiance-run-tests:
539+
name: chipyard-radiance-run-tests
540+
needs: prepare-chipyard-cores
541+
runs-on: as4
542+
steps:
543+
- name: Delete old checkout
544+
run: |
545+
ls -alh .
546+
rm -rf ${{ github.workspace }}/* || true
547+
rm -rf ${{ github.workspace }}/.* || true
548+
ls -alh .
549+
- name: Checkout
550+
uses: actions/checkout@v4
551+
- name: Git workaround
552+
uses: ./.github/actions/git-workaround
553+
- name: Create conda env
554+
uses: ./.github/actions/create-conda-env
555+
- name: Run tests
556+
uses: ./.github/actions/run-tests
557+
with:
558+
group-key: "group-cores"
559+
project-key: "chipyard-radiance"
560+
538561
chipyard-tacit-rocket-run-tests:
539562
name: chipyard-tacit-rocket-run-tests
540563
needs: prepare-chipyard-cores

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,3 +160,6 @@
160160
[submodule "generators/tacit"]
161161
path = generators/tacit
162162
url = https://github.com/ucb-bar/tacit.git
163+
[submodule "generators/radiance"]
164+
path = generators/radiance
165+
url = https://github.com/ucb-bar/radiance.git

build.sbt

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import Tests._
22

3-
val chisel6Version = "6.5.0"
3+
val chisel6Version = "6.7.0"
44
val chiselTestVersion = "6.0.0"
5-
val scalaVersionFromChisel = "2.13.12"
5+
val scalaVersionFromChisel = "2.13.16"
66

77
val chisel3Version = "3.6.1"
88

@@ -156,7 +156,7 @@ lazy val testchipip = (project in file("generators/testchipip"))
156156
lazy val chipyard = (project in file("generators/chipyard"))
157157
.dependsOn(testchipip, rocketchip, boom, rocketchip_blocks, rocketchip_inclusive_cache,
158158
dsptools, rocket_dsp_utils,
159-
gemmini, icenet, tracegen, cva6, nvdla, sodor, ibex, fft_generator,
159+
radiance, gemmini, icenet, tracegen, cva6, nvdla, sodor, ibex, fft_generator,
160160
constellation, mempress, barf, shuttle, caliptra_aes, rerocc,
161161
compressacc, saturn, ara, firrtl2_bridge, vexiiriscv, tacit)
162162
.settings(libraryDependencies ++= rocketLibDeps.value)
@@ -243,6 +243,17 @@ lazy val sodor = (project in file("generators/riscv-sodor"))
243243
.settings(libraryDependencies ++= rocketLibDeps.value)
244244
.settings(commonSettings)
245245

246+
lazy val radiance = (project in file("generators/radiance"))
247+
.dependsOn(rocketchip, gemmini)
248+
.settings(libraryDependencies ++= rocketLibDeps.value)
249+
.settings(libraryDependencies ++= Seq(
250+
"edu.berkeley.cs" %% "chiseltest" % chiselTestVersion,
251+
"org.scalatest" %% "scalatest" % "3.2.+" % "test",
252+
"junit" % "junit" % "4.13" % "test",
253+
"org.scalacheck" %% "scalacheck" % "1.14.3" % "test",
254+
))
255+
.settings(commonSettings)
256+
246257
lazy val gemmini = freshProject("gemmini", file("generators/gemmini"))
247258
.dependsOn(rocketchip)
248259
.settings(libraryDependencies ++= rocketLibDeps.value)

common.mk

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,19 @@ HELP_COMPILATION_VARIABLES += \
1616
" EXTRA_SIM_LDFLAGS = additional LDFLAGS for building simulators" \
1717
" EXTRA_SIM_SOURCES = additional simulation sources needed for simulator" \
1818
" EXTRA_SIM_REQS = additional make requirements to build the simulator" \
19+
" EXTRA_SIM_OUT_NAME = additional suffix appended to the simulation .out log filename" \
20+
" EXTRA_SIM_PREPROC_DEFINES = additional Verilog preprocessor defines passed to the simulator" \
1921
" ENABLE_YOSYS_FLOW = if set, add compilation flags to enable the vlsi flow for yosys(tutorial flow)" \
2022
" EXTRA_CHISEL_OPTIONS = additional options to pass to the Chisel compiler" \
2123
" MFC_BASE_LOWERING_OPTIONS = override lowering options to pass to the MLIR FIRRTL compiler" \
2224
" ASPECTS = comma separated list of Chisel aspect flows to run (e.x. chipyard.upf.ChipTopUPFAspect)"
2325

24-
EXTRA_GENERATOR_REQS ?= $(BOOTROM_TARGETS)
26+
EXTRA_GENERATOR_REQS ?=
2527
EXTRA_SIM_CXXFLAGS ?=
2628
EXTRA_SIM_LDFLAGS ?=
2729
EXTRA_SIM_SOURCES ?=
2830
EXTRA_SIM_REQS ?=
31+
EXTRA_SIM_OUT_NAME ?=
2932

3033
ifneq ($(ASPECTS), )
3134
comma = ,
@@ -67,6 +70,7 @@ include $(base_dir)/generators/ibex/ibex.mk
6770
include $(base_dir)/generators/ara/ara.mk
6871
include $(base_dir)/generators/tracegen/tracegen.mk
6972
include $(base_dir)/generators/nvdla/nvdla.mk
73+
include $(base_dir)/generators/radiance/radiance.mk
7074
include $(base_dir)/tools/torture.mk
7175

7276
#########################################################################################
@@ -100,15 +104,9 @@ TAPEOUT_VLOG_SOURCES = $(call lookup_srcs_by_multiple_type,$(TAPEOUT_SOURCE_DIRS
100104
SBT_SOURCE_DIRS = $(addprefix $(base_dir)/,generators tools)
101105
SBT_SOURCES = $(call lookup_srcs,$(SBT_SOURCE_DIRS),sbt) $(base_dir)/build.sbt $(base_dir)/project/plugins.sbt $(base_dir)/project/build.properties
102106

103-
#########################################################################################
104-
# copy over bootrom files
105-
#########################################################################################
106107
$(build_dir):
107108
mkdir -p $@
108109

109-
$(BOOTROM_TARGETS): $(build_dir)/bootrom.%.img: $(TESTCHIP_RSRCS_DIR)/testchipip/bootrom/bootrom.%.img | $(build_dir)
110-
cp -f $< $@
111-
112110
#########################################################################################
113111
# compile scala jars
114112
#########################################################################################
@@ -233,6 +231,8 @@ $(TOP_SMEMS_CONF) $(MODEL_SMEMS_CONF) &: $(MFC_SMEMS_CONF) $(MFC_MODEL_HRCHY_JS
233231
--model-module-name $(MODEL) \
234232
--out-dut-smems-conf $(TOP_SMEMS_CONF) \
235233
--out-model-smems-conf $(MODEL_SMEMS_CONF)
234+
# for blackboxed SRAMs: add custom.mems.conf as blackbox and use generated module name in blackbox verilog source
235+
-[ -f $(GEN_COLLATERAL_DIR)/custom.mems.conf ] && cat $(GEN_COLLATERAL_DIR)/custom.mems.conf >> $(TOP_SMEMS_CONF)
236236

237237
# This file is for simulation only. VLSI flows should replace this file with one containing hard SRAMs
238238
TOP_MACROCOMPILER_MODE ?= --mode synflops
@@ -256,7 +256,7 @@ ifneq (,$(EXT_FILELISTS))
256256
else
257257
rm -f $@
258258
endif
259-
sort -u $(sim_files) $(ALL_MODS_FILELIST) | grep -v '.*\.\(svh\|h\)$$' >> $@
259+
sort -u $(sim_files) $(ALL_MODS_FILELIST) | grep -v '.*\.\(svh\|h\|conf\)$$' >> $@
260260
echo "$(TOP_SMEMS_FILE)" >> $@
261261
echo "$(MODEL_SMEMS_FILE)" >> $@
262262

@@ -305,15 +305,15 @@ get_loadarch_flag = +loadarch=$(subst mem.elf,loadarch,$(1))
305305
endif
306306

307307
# get the output path base name for simulation outputs, First arg is the binary
308-
get_sim_out_name = $(output_dir)/$(call get_out_name,$(1))
308+
get_sim_out_name = $(output_dir)/$(call get_out_name,$(1))$(if $(EXTRA_SIM_OUT_NAME),.$(EXTRA_SIM_OUT_NAME),)
309309
# sim flags that are common to run-binary/run-binary-fast/run-binary-debug
310310
get_common_sim_flags = $(SIM_FLAGS) $(EXTRA_SIM_FLAGS) $(SEED_FLAG) $(call get_loadmem_flag,$(1)) $(call get_loadarch_flag,$(1))
311311

312312
.PHONY: %.run %.run.debug %.run.fast
313313

314314
# run normal binary with hardware-logged insn dissassembly
315315
run-binary: check-binary $(BINARY).run
316-
run-binaries: check-binaries $(addsuffix .run,$(BINARIES))
316+
run-binaries: check-binaries $(addsuffix .run,$(wildcard $(BINARIES)))
317317

318318
%.run: %.check-exists $(SIM_PREREQ) | $(output_dir)
319319
(set -o pipefail && $(NUMA_PREFIX) $(sim) \
@@ -327,7 +327,7 @@ run-binaries: check-binaries $(addsuffix .run,$(BINARIES))
327327

328328
# run simulator as fast as possible (no insn disassembly)
329329
run-binary-fast: check-binary $(BINARY).run.fast
330-
run-binaries-fast: check-binaries $(addsuffix .run.fast,$(BINARIES))
330+
run-binaries-fast: check-binaries $(addsuffix .run.fast,$(wildcard $(BINARIES)))
331331

332332
%.run.fast: %.check-exists $(SIM_PREREQ) | $(output_dir)
333333
(set -o pipefail && $(NUMA_PREFIX) $(sim) \
@@ -340,7 +340,9 @@ run-binaries-fast: check-binaries $(addsuffix .run.fast,$(BINARIES))
340340

341341
# run simulator with as much debug info as possible
342342
run-binary-debug: check-binary $(BINARY).run.debug
343-
run-binaries-debug: check-binaries $(addsuffix .run.debug,$(BINARIES))
343+
run-binary-debug-bg: check-binary $(BINARY).run.debug.bg
344+
run-binaries-debug: check-binaries $(addsuffix .run.debug,$(wildcard $(BINARIES)))
345+
run-binaries-debug-bg: check-binaries $(addsuffix .run.debug.bg,$(wildcard $(BINARIES)))
344346

345347
%.run.debug: %.check-exists $(SIM_DEBUG_PREREQ) | $(output_dir)
346348
ifeq (1,$(DUMP_BINARY))
@@ -356,6 +358,19 @@ endif
356358
$(BINARY_ARGS) \
357359
</dev/null 2> >(spike-dasm > $(call get_sim_out_name,$*).out) | tee $(call get_sim_out_name,$*).log)
358360

361+
%.run.debug.bg: %.check-exists $(SIM_DEBUG_PREREQ) | $(output_dir)
362+
if [ "$*" != "none" ]; then riscv64-unknown-elf-objdump -D -S $* > $(call get_sim_out_name,$*).dump ; fi
363+
(set -o pipefail && $(NUMA_PREFIX) $(sim_debug) \
364+
$(PERMISSIVE_ON) \
365+
$(call get_common_sim_flags,$*) \
366+
$(VERBOSE_FLAGS) \
367+
$(call get_waveform_flag,$(call get_sim_out_name,$*)) \
368+
$(PERMISSIVE_OFF) \
369+
$* \
370+
$(BINARY_ARGS) \
371+
</dev/null 2> >(spike-dasm > $(call get_sim_out_name,$*).out) >$(call get_sim_out_name,$*).log \
372+
& echo "PID=$$!")
373+
359374
run-fast: run-asm-tests-fast run-bmark-tests-fast
360375

361376
#########################################################################################

fpga/src/main/scala/vc707/Configs.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import freechips.rocketchip.devices.debug.{DebugModuleKey, ExportDebug, JTAG}
88
import freechips.rocketchip.devices.tilelink.{DevNullParams, BootROMLocated}
99
import freechips.rocketchip.diplomacy.{RegionType, AddressSet}
1010
import freechips.rocketchip.resources.{DTSModel, DTSTimebase}
11+
import freechips.rocketchip.util.{SystemFileName}
1112

1213
import sifive.blocks.devices.spi.{PeripherySPIKey, SPIParams}
1314
import sifive.blocks.devices.uart.{PeripheryUARTKey, UARTParams}
@@ -32,7 +33,7 @@ class WithSystemModifications extends Config((site, here, up) => {
3233
val freqMHz = (site(SystemBusKey).dtsFrequency.get / (1000 * 1000)).toLong
3334
val make = s"make -C fpga/src/main/resources/vc707/sdboot PBUS_CLK=${freqMHz} bin"
3435
require (make.! == 0, "Failed to build bootrom")
35-
p.copy(hang = 0x10000, contentFileName = s"./fpga/src/main/resources/vc707/sdboot/build/sdboot.bin")
36+
p.copy(hang = 0x10000, contentFileName = SystemFileName(s"./fpga/src/main/resources/vc707/sdboot/build/sdboot.bin"))
3637
}
3738
case ExtMem => up(ExtMem, site).map(x => x.copy(master = x.master.copy(size = site(VC7074GDDRSize)))) // set extmem to DDR size (note the size)
3839
case SerialTLKey => Nil // remove serialized tl port

fpga/src/main/scala/vcu118/Configs.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import freechips.rocketchip.devices.debug.{DebugModuleKey, ExportDebug, JTAG}
88
import freechips.rocketchip.devices.tilelink.{DevNullParams, BootROMLocated}
99
import freechips.rocketchip.diplomacy.{RegionType, AddressSet}
1010
import freechips.rocketchip.resources.{DTSModel, DTSTimebase}
11+
import freechips.rocketchip.util.{SystemFileName}
1112

1213
import sifive.blocks.devices.spi.{PeripherySPIKey, SPIParams}
1314
import sifive.blocks.devices.uart.{PeripheryUARTKey, UARTParams}
@@ -33,7 +34,7 @@ class WithSystemModifications extends Config((site, here, up) => {
3334
val freqMHz = (site(SystemBusKey).dtsFrequency.get / (1000 * 1000)).toLong
3435
val make = s"make -C fpga/src/main/resources/vcu118/sdboot PBUS_CLK=${freqMHz} bin"
3536
require (make.! == 0, "Failed to build bootrom")
36-
p.copy(hang = 0x10000, contentFileName = s"./fpga/src/main/resources/vcu118/sdboot/build/sdboot.bin")
37+
p.copy(hang = 0x10000, contentFileName = SystemFileName(s"./fpga/src/main/resources/vcu118/sdboot/build/sdboot.bin"))
3738
}
3839
case ExtMem => up(ExtMem, site).map(x => x.copy(master = x.master.copy(size = site(VCU118DDRSize)))) // set extmem to DDR size
3940
case SerialTLKey => Nil // remove serialized tl port

0 commit comments

Comments
 (0)