Skip to content

Commit

Permalink
Merge pull request #370 from ucb-bar/jerryz123-patch-3
Browse files Browse the repository at this point in the history
  • Loading branch information
jerryz123 authored Dec 9, 2024
2 parents 0312ffc + 46158fb commit 8e116b2
Showing 1 changed file with 10 additions and 29 deletions.
39 changes: 10 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,6 @@ cd generators/gemmini
make -C software/libgemmini install
```

Setting Up Gemmini
------------------

Run the steps below to set up Gemmini configuration files, symlinks, and subdirectories:

```shell
cd chipyard/generators/gemmini
./scripts/setup-paths.sh
```

Building Gemmini Software
-------------------------
Expand Down Expand Up @@ -81,25 +72,18 @@ Building Gemmini Hardware and Cycle-Accurate Simulators
Run the instructions below to build a cycle-accurate Gemmini simulator using Verilator.

```shell
cd chipyard/generators/gemmini
./scripts/build-verilator.sh
cd chipyard/sims/verilator
make CONFIG=GemminiRocketConfig

# Or, if you want a simulator that can generate waveforms, run this:
# ./scripts/build-verilator.sh --debug
make debug CONFIG=GemminiRocketConfig
```

After running this, in addition to the cycle-accurate simulator, you will be able to find the Verilog description of your SoC in `generated-src/`.

Building Gemmini Functional Simulators
Using Gemmini Functional Simulators
---------------------------

Run the instructions below to build a functional ISA simulator for Gemmini (called "Spike").

```shell
cd chipyard/generators/gemmini
./scripts/build-spike.sh
```

Spike typically runs _much_ faster than cycle-accurate simulators like Verilator or VCS.
However, Spike can only verify functional correctness; it cannot give accurate performance metrics or profiling information.

Expand All @@ -109,19 +93,16 @@ Run Simulators
Run the instructions below to run the Gemmini RISCV binaries that we built previously, using the simulators that we built above:

```shell
cd chipyard/generators/gemmini
cd chipyard/sims/verilator

# Run a large DNN workload in the functional simulator
./scripts/run-spike.sh resnet50
spike --extension=gemmini pk ../../generators/gemmini/software/gemmini-rocc-tests/build/imagenet/resnet50-pk

# Run a smaller workload in baremetal mode, on a cycle-accurate simulator
./scripts/run-verilator.sh template
# Run a small DNN workload in the functional simulator
spike --extension=gemmini ../../generators/gemmini/software/gemmini-rocc-tests/build/imagenet/resnet50-baremetal

# Run a smaller workload with the proxy-kernel, on a cycle accurate simulator
./scripts/run-verilator.sh --pk template

# Or, if you want to generate waveforms in `waveforms/`:
# ./scripts/run-verilator.sh --pk --debug template
# Run a smaller workload in baremetal mode, on a cycle-accurate simulator
make CONFIG=GemminiRocketConfig run-binary BINARY=../../generators/gemmini/software/gemmini-rocc-tests/build/baremetalC/template-baremetal
```

Next steps
Expand Down

0 comments on commit 8e116b2

Please sign in to comment.