@@ -48,13 +48,13 @@ search () {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
submodules=("cva6" "boom" "gemmini" "hwacha" "icenet" "nvdla" "rocket-chip" "sha3" "sifive-blocks" "sifive-cache" "testchipip" "riscv-sodor")
|
submodules=("cva6" "boom" "ibex" "gemmini" "hwacha" "icenet" "nvdla" "rocket-chip" "sha3" "sifive-blocks" "sifive-cache" "testchipip" "riscv-sodor")
|
||||||
dir="generators"
|
dir="generators"
|
||||||
if [ "$CIRCLE_BRANCH" == "master" ] || [ "$CIRCLE_BRANCH" == "dev" ]
|
if [ "$CIRCLE_BRANCH" == "master" ] || [ "$CIRCLE_BRANCH" == "dev" ]
|
||||||
then
|
then
|
||||||
branches=("master")
|
branches=("master" "main")
|
||||||
else
|
else
|
||||||
branches=("master" "dev")
|
branches=("master" "main" "dev")
|
||||||
fi
|
fi
|
||||||
search
|
search
|
||||||
|
|
||||||
|
|||||||
@@ -252,6 +252,13 @@ jobs:
|
|||||||
group-key: "group-cores"
|
group-key: "group-cores"
|
||||||
project-key: "chipyard-sodor"
|
project-key: "chipyard-sodor"
|
||||||
timeout: "30m"
|
timeout: "30m"
|
||||||
|
chipyard-ibex-run-tests:
|
||||||
|
executor: main-env
|
||||||
|
steps:
|
||||||
|
- run-tests:
|
||||||
|
group-key: "group-cores"
|
||||||
|
project-key: "chipyard-ibex"
|
||||||
|
timeout: "30m"
|
||||||
chipyard-multiclock-rocket-run-tests:
|
chipyard-multiclock-rocket-run-tests:
|
||||||
executor: main-env
|
executor: main-env
|
||||||
steps:
|
steps:
|
||||||
@@ -309,7 +316,7 @@ jobs:
|
|||||||
tools-version: "esp-tools"
|
tools-version: "esp-tools"
|
||||||
group-key: "group-accels"
|
group-key: "group-accels"
|
||||||
project-key: "chipyard-hwacha"
|
project-key: "chipyard-hwacha"
|
||||||
timeout: "30m"
|
timeout: "60m"
|
||||||
chipyard-gemmini-run-tests:
|
chipyard-gemmini-run-tests:
|
||||||
executor: main-env
|
executor: main-env
|
||||||
steps:
|
steps:
|
||||||
@@ -455,6 +462,9 @@ workflows:
|
|||||||
- chipyard-sodor-run-tests:
|
- chipyard-sodor-run-tests:
|
||||||
requires:
|
requires:
|
||||||
- prepare-chipyard-cores
|
- prepare-chipyard-cores
|
||||||
|
- chipyard-ibex-run-tests:
|
||||||
|
requires:
|
||||||
|
- prepare-chipyard-cores
|
||||||
- chipyard-dmirocket-run-tests:
|
- chipyard-dmirocket-run-tests:
|
||||||
requires:
|
requires:
|
||||||
- prepare-chipyard-peripherals
|
- prepare-chipyard-peripherals
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ LOCAL_FIRESIM_DIR=$LOCAL_CHIPYARD_DIR/sims/firesim/sim
|
|||||||
|
|
||||||
# key value store to get the build groups
|
# key value store to get the build groups
|
||||||
declare -A grouping
|
declare -A grouping
|
||||||
grouping["group-cores"]="chipyard-cva6 chipyard-rocket chipyard-hetero chipyard-boom chipyard-sodor chipyard-digitaltop chipyard-multiclock-rocket"
|
grouping["group-cores"]="chipyard-cva6 chipyard-ibex chipyard-rocket chipyard-hetero chipyard-boom chipyard-sodor chipyard-digitaltop chipyard-multiclock-rocket"
|
||||||
grouping["group-peripherals"]="chipyard-dmirocket chipyard-blkdev chipyard-spiflashread chipyard-spiflashwrite chipyard-mmios chipyard-lbwif"
|
grouping["group-peripherals"]="chipyard-dmirocket chipyard-blkdev chipyard-spiflashread chipyard-spiflashwrite chipyard-mmios chipyard-lbwif"
|
||||||
grouping["group-accels"]="chipyard-nvdla chipyard-sha3 chipyard-hwacha chipyard-gemmini chipyard-streaming-fir chipyard-streaming-passthrough"
|
grouping["group-accels"]="chipyard-nvdla chipyard-sha3 chipyard-hwacha chipyard-gemmini chipyard-streaming-fir chipyard-streaming-passthrough"
|
||||||
grouping["group-tracegen"]="tracegen tracegen-boom"
|
grouping["group-tracegen"]="tracegen tracegen-boom"
|
||||||
@@ -71,6 +71,7 @@ mapping["chipyard-blkdev"]=" CONFIG=SimBlockDeviceRocketConfig"
|
|||||||
mapping["chipyard-hwacha"]=" CONFIG=HwachaRocketConfig"
|
mapping["chipyard-hwacha"]=" CONFIG=HwachaRocketConfig"
|
||||||
mapping["chipyard-gemmini"]=" CONFIG=GemminiRocketConfig"
|
mapping["chipyard-gemmini"]=" CONFIG=GemminiRocketConfig"
|
||||||
mapping["chipyard-cva6"]=" CONFIG=CVA6Config"
|
mapping["chipyard-cva6"]=" CONFIG=CVA6Config"
|
||||||
|
mapping["chipyard-ibex"]=" CONFIG=IbexConfig"
|
||||||
mapping["chipyard-spiflashread"]=" CONFIG=LargeSPIFlashROMRocketConfig"
|
mapping["chipyard-spiflashread"]=" CONFIG=LargeSPIFlashROMRocketConfig"
|
||||||
mapping["chipyard-spiflashwrite"]=" CONFIG=SmallSPIFlashRocketConfig"
|
mapping["chipyard-spiflashwrite"]=" CONFIG=SmallSPIFlashRocketConfig"
|
||||||
mapping["chipyard-mmios"]=" CONFIG=MMIORocketConfig verilog"
|
mapping["chipyard-mmios"]=" CONFIG=MMIORocketConfig verilog"
|
||||||
|
|||||||
@@ -100,6 +100,9 @@ case $1 in
|
|||||||
chipyard-sodor)
|
chipyard-sodor)
|
||||||
run_asm ${mapping[$1]}
|
run_asm ${mapping[$1]}
|
||||||
;;
|
;;
|
||||||
|
chipyard-ibex)
|
||||||
|
run_bmark ${mapping[$1]} #TODO: Find 32-bit test
|
||||||
|
;;
|
||||||
chipyard-nvdla)
|
chipyard-nvdla)
|
||||||
make -C $LOCAL_CHIPYARD_DIR/tests
|
make -C $LOCAL_CHIPYARD_DIR/tests
|
||||||
make -C $LOCAL_SIM_DIR ${mapping[$1]} BINARY=$LOCAL_CHIPYARD_DIR/tests/nvdla.riscv run-binary
|
make -C $LOCAL_SIM_DIR ${mapping[$1]} BINARY=$LOCAL_CHIPYARD_DIR/tests/nvdla.riscv run-binary
|
||||||
|
|||||||
6
.github/scripts/check-commit.sh
vendored
6
.github/scripts/check-commit.sh
vendored
@@ -47,13 +47,13 @@ search () {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
submodules=("cva6" "boom" "gemmini" "hwacha" "icenet" "nvdla" "rocket-chip" "sha3" "sifive-blocks" "sifive-cache" "testchipip" "riscv-sodor")
|
submodules=("cva6" "ibex" "boom" "gemmini" "hwacha" "icenet" "nvdla" "rocket-chip" "sha3" "sifive-blocks" "sifive-cache" "testchipip" "riscv-sodor")
|
||||||
dir="generators"
|
dir="generators"
|
||||||
if [ "$CIRCLE_BRANCH" == "master" ] || [ "$CIRCLE_BRANCH" == "dev" ]
|
if [ "$CIRCLE_BRANCH" == "master" ] || [ "$CIRCLE_BRANCH" == "dev" ]
|
||||||
then
|
then
|
||||||
branches=("master")
|
branches=("master" "main")
|
||||||
else
|
else
|
||||||
branches=("master" "dev")
|
branches=("master" "main" "dev")
|
||||||
fi
|
fi
|
||||||
search
|
search
|
||||||
|
|
||||||
|
|||||||
3
.github/scripts/defaults.sh
vendored
3
.github/scripts/defaults.sh
vendored
@@ -37,7 +37,7 @@ LOCAL_FIRESIM_DIR=$LOCAL_CHIPYARD_DIR/sims/firesim/sim
|
|||||||
|
|
||||||
# key value store to get the build groups
|
# key value store to get the build groups
|
||||||
declare -A grouping
|
declare -A grouping
|
||||||
grouping["group-cores"]="chipyard-cva6 chipyard-rocket chipyard-hetero chipyard-boom chipyard-sodor chipyard-digitaltop chipyard-multiclock-rocket"
|
grouping["group-cores"]="chipyard-cva6 chipyard-ibex chipyard-rocket chipyard-hetero chipyard-boom chipyard-sodor chipyard-digitaltop chipyard-multiclock-rocket"
|
||||||
grouping["group-peripherals"]="chipyard-dmirocket chipyard-blkdev chipyard-spiflashread chipyard-spiflashwrite chipyard-mmios chipyard-lbwif"
|
grouping["group-peripherals"]="chipyard-dmirocket chipyard-blkdev chipyard-spiflashread chipyard-spiflashwrite chipyard-mmios chipyard-lbwif"
|
||||||
grouping["group-accels"]="chipyard-nvdla chipyard-sha3 chipyard-hwacha chipyard-gemmini chipyard-streaming-fir chipyard-streaming-passthrough"
|
grouping["group-accels"]="chipyard-nvdla chipyard-sha3 chipyard-hwacha chipyard-gemmini chipyard-streaming-fir chipyard-streaming-passthrough"
|
||||||
grouping["group-tracegen"]="tracegen tracegen-boom"
|
grouping["group-tracegen"]="tracegen tracegen-boom"
|
||||||
@@ -59,6 +59,7 @@ mapping["chipyard-blkdev"]=" CONFIG=SimBlockDeviceRocketConfig"
|
|||||||
mapping["chipyard-hwacha"]=" CONFIG=HwachaRocketConfig"
|
mapping["chipyard-hwacha"]=" CONFIG=HwachaRocketConfig"
|
||||||
mapping["chipyard-gemmini"]=" CONFIG=GemminiRocketConfig"
|
mapping["chipyard-gemmini"]=" CONFIG=GemminiRocketConfig"
|
||||||
mapping["chipyard-cva6"]=" CONFIG=CVA6Config"
|
mapping["chipyard-cva6"]=" CONFIG=CVA6Config"
|
||||||
|
mapping["chipyard-ibex"]=" CONFIG=IbexConfig"
|
||||||
mapping["chipyard-spiflashread"]=" CONFIG=LargeSPIFlashROMRocketConfig"
|
mapping["chipyard-spiflashread"]=" CONFIG=LargeSPIFlashROMRocketConfig"
|
||||||
mapping["chipyard-spiflashwrite"]=" CONFIG=SmallSPIFlashRocketConfig"
|
mapping["chipyard-spiflashwrite"]=" CONFIG=SmallSPIFlashRocketConfig"
|
||||||
mapping["chipyard-mmios"]=" CONFIG=MMIORocketConfig verilog"
|
mapping["chipyard-mmios"]=" CONFIG=MMIORocketConfig verilog"
|
||||||
|
|||||||
3
.github/scripts/run-tests.sh
vendored
3
.github/scripts/run-tests.sh
vendored
@@ -101,6 +101,9 @@ case $1 in
|
|||||||
chipyard-cva6)
|
chipyard-cva6)
|
||||||
make run-binary-fast -C $LOCAL_SIM_DIR $DISABLE_SIM_PREREQ ${mapping[$1]} BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv
|
make run-binary-fast -C $LOCAL_SIM_DIR $DISABLE_SIM_PREREQ ${mapping[$1]} BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv
|
||||||
;;
|
;;
|
||||||
|
chipyard-ibex)
|
||||||
|
run_bmark ${mapping[$1]} #TODO: Find 32-bit test
|
||||||
|
;;
|
||||||
chipyard-sodor)
|
chipyard-sodor)
|
||||||
run_asm ${mapping[$1]}
|
run_asm ${mapping[$1]}
|
||||||
;;
|
;;
|
||||||
|
|||||||
22
.github/workflows/chipyard-run-tests.yml
vendored
22
.github/workflows/chipyard-run-tests.yml
vendored
@@ -329,6 +329,26 @@ jobs:
|
|||||||
project-key: "chipyard-cva6"
|
project-key: "chipyard-cva6"
|
||||||
- uses: ./.github/actions/job-end
|
- uses: ./.github/actions/job-end
|
||||||
|
|
||||||
|
chipyard-ibex-run-tests:
|
||||||
|
name: chipyard-ibex-run-tests
|
||||||
|
needs: prepare-chipyard-cores
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: ucbbar/chipyard-ci-image:554b436
|
||||||
|
options: --entrypoint /bin/bash
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- uses: ./.github/actions/job-start
|
||||||
|
id: job-start
|
||||||
|
- name: Run tests
|
||||||
|
if: steps.job-start.outputs.run_result != 'success'
|
||||||
|
uses: ./.github/actions/run-tests
|
||||||
|
with:
|
||||||
|
group-key: "group-cores"
|
||||||
|
project-key: "chipyard-ibex"
|
||||||
|
- uses: ./.github/actions/job-end
|
||||||
|
|
||||||
chipyard-sodor-run-tests:
|
chipyard-sodor-run-tests:
|
||||||
name: chipyard-sodor-run-tests
|
name: chipyard-sodor-run-tests
|
||||||
needs: prepare-chipyard-cores
|
needs: prepare-chipyard-cores
|
||||||
@@ -690,7 +710,7 @@ jobs:
|
|||||||
all_tests_passed:
|
all_tests_passed:
|
||||||
name: "all tests passed"
|
name: "all tests passed"
|
||||||
needs: [commit-on-master-check, tutorial-setup-check, documentation-check,
|
needs: [commit-on-master-check, tutorial-setup-check, documentation-check,
|
||||||
chipyard-rocket-run-tests, chipyard-hetero-run-tests, chipyard-boom-run-tests, chipyard-cva6-run-tests,
|
chipyard-rocket-run-tests, chipyard-hetero-run-tests, chipyard-boom-run-tests, chipyard-cva6-run-tests, chipyard-ibex-run-tests,
|
||||||
chipyard-sodor-run-tests, chipyard-dmirocket-run-tests, chipyard-spiflashwrite-run-tests,
|
chipyard-sodor-run-tests, chipyard-dmirocket-run-tests, chipyard-spiflashwrite-run-tests,
|
||||||
chipyard-spiflashread-run-tests, chipyard-lbwif-run-tests, chipyard-sha3-run-tests,
|
chipyard-spiflashread-run-tests, chipyard-lbwif-run-tests, chipyard-sha3-run-tests,
|
||||||
chipyard-streaming-fir-run-tests, chipyard-streaming-passthrough-run-tests, chipyard-hwacha-run-tests,
|
chipyard-streaming-fir-run-tests, chipyard-streaming-passthrough-run-tests, chipyard-hwacha-run-tests,
|
||||||
|
|||||||
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -140,3 +140,6 @@
|
|||||||
[submodule "tools/rocket-dsp-utils"]
|
[submodule "tools/rocket-dsp-utils"]
|
||||||
path = tools/rocket-dsp-utils
|
path = tools/rocket-dsp-utils
|
||||||
url = https://github.com/ucb-bar/rocket-dsp-utils
|
url = https://github.com/ucb-bar/rocket-dsp-utils
|
||||||
|
[submodule "generators/ibex"]
|
||||||
|
path = generators/ibex
|
||||||
|
url = https://github.com/ucb-bar/ibex-wrapper
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ lazy val chipyard = (project in file("generators/chipyard"))
|
|||||||
.dependsOn(rocketchip, boom, hwacha, sifive_blocks, sifive_cache, iocell,
|
.dependsOn(rocketchip, boom, hwacha, sifive_blocks, sifive_cache, iocell,
|
||||||
sha3, // On separate line to allow for cleaner tutorial-setup patches
|
sha3, // On separate line to allow for cleaner tutorial-setup patches
|
||||||
dsptools, `rocket-dsp-utils`,
|
dsptools, `rocket-dsp-utils`,
|
||||||
gemmini, icenet, tracegen, cva6, nvdla, sodor)
|
gemmini, icenet, tracegen, cva6, nvdla, sodor, ibex)
|
||||||
.settings(libraryDependencies ++= rocketLibDeps.value)
|
.settings(libraryDependencies ++= rocketLibDeps.value)
|
||||||
.settings(commonSettings)
|
.settings(commonSettings)
|
||||||
|
|
||||||
@@ -218,6 +218,11 @@ lazy val cva6 = (project in file("generators/cva6"))
|
|||||||
.settings(libraryDependencies ++= rocketLibDeps.value)
|
.settings(libraryDependencies ++= rocketLibDeps.value)
|
||||||
.settings(commonSettings)
|
.settings(commonSettings)
|
||||||
|
|
||||||
|
lazy val ibex = (project in file("generators/ibex"))
|
||||||
|
.dependsOn(rocketchip)
|
||||||
|
.settings(libraryDependencies ++= rocketLibDeps.value)
|
||||||
|
.settings(commonSettings)
|
||||||
|
|
||||||
lazy val sodor = (project in file("generators/riscv-sodor"))
|
lazy val sodor = (project in file("generators/riscv-sodor"))
|
||||||
.dependsOn(rocketchip)
|
.dependsOn(rocketchip)
|
||||||
.settings(libraryDependencies ++= rocketLibDeps.value)
|
.settings(libraryDependencies ++= rocketLibDeps.value)
|
||||||
|
|||||||
@@ -24,6 +24,10 @@ Processor Cores
|
|||||||
An in-order RISC-V core written in System Verilog. Previously called Ariane.
|
An in-order RISC-V core written in System Verilog. Previously called Ariane.
|
||||||
See :ref:`Generators/CVA6:CVA6 Core` for more information.
|
See :ref:`Generators/CVA6:CVA6 Core` for more information.
|
||||||
|
|
||||||
|
**Ibex Core**
|
||||||
|
An in-order 32 bit RISC-V core written in System Verilog.
|
||||||
|
See :ref:`Generators/Ibex:Ibex Core` for more information.
|
||||||
|
|
||||||
Accelerators
|
Accelerators
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
|||||||
14
docs/Generators/Ibex.rst
Normal file
14
docs/Generators/Ibex.rst
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Ibex Core
|
||||||
|
====================================
|
||||||
|
|
||||||
|
`Ibex <https://github.com/lowRISC/ibex>`__ is a parameterizable RV32IMC embedded core written in SystemVerilog, currently maintained by `lowRISC <https://lowrisc.org>`__.
|
||||||
|
The `Ibex core` is wrapped in an `Ibex tile` so it can be used with the `Rocket Chip SoC generator`.
|
||||||
|
The core exposes a custom memory interface, interrupt ports, and other misc. ports that are connected from within the tile to TileLink buses and other parameterization signals.
|
||||||
|
|
||||||
|
.. Warning:: The Ibex mtvec register is 256 byte aligned. When writing/running tests, ensure that the trap vector is also 256 byte aligned.
|
||||||
|
|
||||||
|
.. Warning:: The Ibex reset vector is located at BOOT_ADDR + 0x80.
|
||||||
|
|
||||||
|
While the core itself is not a generator, we expose the same parameterization that the Ibex core provides so that all supported Ibex configurations are available.
|
||||||
|
|
||||||
|
For more information, see the `GitHub repository for Ibex <https://github.com/lowRISC/ibex>`__.
|
||||||
@@ -28,6 +28,7 @@ so changes to the generators themselves will automatically be used when building
|
|||||||
SiFive-Generators
|
SiFive-Generators
|
||||||
SHA3
|
SHA3
|
||||||
CVA6
|
CVA6
|
||||||
|
Ibex
|
||||||
NVDLA
|
NVDLA
|
||||||
Sodor
|
Sodor
|
||||||
|
|
||||||
|
|||||||
15
generators/chipyard/src/main/scala/config/IbexConfigs.scala
Normal file
15
generators/chipyard/src/main/scala/config/IbexConfigs.scala
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package chipyard
|
||||||
|
|
||||||
|
import chisel3._
|
||||||
|
|
||||||
|
import freechips.rocketchip.config.{Config}
|
||||||
|
|
||||||
|
// ---------------------
|
||||||
|
// Ibex Configs
|
||||||
|
// ---------------------
|
||||||
|
|
||||||
|
// Multi-core and 32b heterogeneous configs are supported
|
||||||
|
|
||||||
|
class IbexConfig extends Config(
|
||||||
|
new ibex.WithNIbexCores(1) ++
|
||||||
|
new chipyard.config.AbstractConfig)
|
||||||
1
generators/ibex
Submodule
1
generators/ibex
Submodule
Submodule generators/ibex added at bdf41a0548
Submodule generators/testchipip updated: 0743c5a941...5917176c91
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/build.sbt b/build.sbt
|
diff --git a/build.sbt b/build.sbt
|
||||||
index 3123c4b8..487fc428 100644
|
index b1f7e004..f39c3712 100644
|
||||||
--- a/build.sbt
|
--- a/build.sbt
|
||||||
+++ b/build.sbt
|
+++ b/build.sbt
|
||||||
@@ -184,7 +184,7 @@ lazy val testchipipLib = "edu.berkeley.cs" %% "testchipip" % "1.0-020719-SNAPSHO
|
@@ -184,7 +184,7 @@ lazy val testchipipLib = "edu.berkeley.cs" %% "testchipip" % "1.0-020719-SNAPSHO
|
||||||
@@ -7,11 +7,11 @@ index 3123c4b8..487fc428 100644
|
|||||||
.sourceDependency(testchipip, testchipipLib)
|
.sourceDependency(testchipip, testchipipLib)
|
||||||
.dependsOn(rocketchip, boom, hwacha, sifive_blocks, sifive_cache, iocell,
|
.dependsOn(rocketchip, boom, hwacha, sifive_blocks, sifive_cache, iocell,
|
||||||
- sha3, // On separate line to allow for cleaner tutorial-setup patches
|
- sha3, // On separate line to allow for cleaner tutorial-setup patches
|
||||||
+// sha3, // On separate line to allow for cleaner tutorial-setup patches
|
+ //sha3, // On separate line to allow for cleaner tutorial-setup patches
|
||||||
dsptools, `rocket-dsp-utils`,
|
dsptools, `rocket-dsp-utils`,
|
||||||
gemmini, icenet, tracegen, cva6, nvdla, sodor)
|
gemmini, icenet, tracegen, cva6, nvdla, sodor, ibex)
|
||||||
.settings(libraryDependencies ++= rocketLibDeps.value)
|
.settings(libraryDependencies ++= rocketLibDeps.value)
|
||||||
@@ -223,11 +223,11 @@ lazy val sodor = (project in file("generators/riscv-sodor"))
|
@@ -228,11 +228,11 @@ lazy val sodor = (project in file("generators/riscv-sodor"))
|
||||||
.settings(libraryDependencies ++= rocketLibDeps.value)
|
.settings(libraryDependencies ++= rocketLibDeps.value)
|
||||||
.settings(commonSettings)
|
.settings(commonSettings)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user