@@ -48,7 +48,7 @@ accepted at [ARCS 2025](https://arcs-conference.org/home).
4848
4949Prerequisit for this project is a working installation of
5050the RISC-V tools. Chances are high that you can install
51- them with your packet manager (see below).
51+ them with your package manager (see below).
5252
5353Wildcat is written in [ Chisel] ( https://www.chisel-lang.org/ ) .
5454Therefore, you need a for Java, best installed with [ SDKMAN] ( https://sdkman.io/ ) ,
@@ -60,9 +60,10 @@ and for the Artix 7 based Nexys A7.
6060
6161To start with Wildcat either fork the project or clone it from here with:
6262
63- git clone https://github.com/schoeberl/wildcat
64- cd wildcat
65- git submodule update --init --recursive
63+ ```
64+ git clone --recursive https://github.com/schoeberl/wildcat
65+ cd wildcat
66+ ```
6667
6768Here you can start the ISA simulator executing a simple program with
6869
@@ -124,14 +125,14 @@ make test
124125Here are resource and fmax results for the 3-, 4-, and 5-stages pipeline.
125126We exclude instruction and data memory/cache in the numbers.
126127
127- Cyclon IV has 4-bit LUTs and the timing info
128+ Cyclone IV has 4-bit LUTs and the timing info
128129is for the Slow 1200mV 85C Model.
129130
130131Artix 7 has 6-bit LUTs.
131132
132133Skywater130 timing info is for max_tt_025C_1v80.
133134
134- | Design (Cyclon IV) | Fmax | LEs | Regs | RAM bits |
135+ | Design (Cyclone IV) | Fmax | LEs | Regs | RAM bits |
135136| :---------------------------| :---------| :------| :------| :---------|
136137| Three stages (regfile FF) | 80.2 MHz | 3,130 | 1,295 | 0 |
137138| Three stages (regfile mem) | 86.2 MHz | 1,756 | 379 | 2,048 |
@@ -169,38 +170,40 @@ RAMs is zero.
169170
170171### Tools on MacOS
171172
172- Use brew to install gcc :
173+ Use [ Mac Homebrew ] ( https:// brew.sh/ ) to install the Chisel and RISC-V tools :
173174
174175```
175176brew install sbt riscv64-elf-binutils
176177```
177178
178- The below was an older version. Still valid?
179- ```
180- brew tap riscv-software-src/riscv
181- brew install riscv-gnu-toolchain --with-NOmultilib
182- ```
183-
184179### Tools on Ubuntu:
185180
186181Should be best installed with apt-get:
187182
188- sudo apt-get install -y gcc-riscv64-unknown-elf
183+ ```
184+ sudo apt-get install -y gcc-riscv64-unknown-elf
185+ ```
189186
190187#### Build from source
191188
192- If you want to compiler them from source, here are some notes:
189+ If you want to compiler them from source, here are some notes (this
190+ really shouldn't be necessary on most platforms):
193191
194- sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc
195- git clone https://github.com/riscv/riscv-tools.git
196- cd riscv-tools
197- git submodule update --init --recursive
198- export RISCV=$HOME/riscv-tools/local
199- ./build.sh
192+ ```
193+ sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc
194+ git clone https://github.com/riscv/riscv-tools.git
195+ cd riscv-tools
196+ git submodule update --init --recursive
197+ export RISCV=$HOME/riscv-tools/local
198+ ./build.sh
199+ ```
200200
201201Then add the tools to your PATH in .bashrc or .profile with:
202202
203- export PATH=$PATH:$HOME/riscv-tools/local/bin
203+ ```
204+ export PATH=$PATH:$HOME/riscv-tools/local/bin
205+ ```
206+
204207
205208See also: [ RISC-V Ubuntu Setup] ( https://github.com/schoeberl/cae-lab#vm-and-tool-installation )
206209
@@ -221,7 +224,7 @@ Here a list of project that could be a BSc, an MSc, a special course, an AdvCA p
221224* Tapeout
222225 - Tiny Tapeout
223226 - Edu4Chip
224- - efabless
227+ - efabless (R.I.P.)
225228* Rust and WCET analysis
226229* ISA extensions
227230* Comparing RISC-V cores (start from https://dl-acm-org.proxy.findit.cvt.dk/doi/pdf/10.1145/3457388.3458657 )
@@ -235,8 +238,8 @@ Here a list of project that could be a BSc, an MSc, a special course, an AdvCA p
235238 - floating point emulation
236239 - compressed instructions
237240* Interrupts and interrupt controller
238- * G extension
239241* floating-point unit
242+ * G extension (= Multiply M, Atomics A, and Floating point FD)
240243* Compare Ibex, Wildcat, and a third RISC-V core
241244* Towards booting uLinux and full Linux
242245* SoC stuff: interconnect, peripherals, ...
@@ -263,30 +266,30 @@ prerequisite for running embedded Rust using the ISA simulator.
263266
264267Once ``` rustup ``` has been installed, the following components should be added by executing the following commands:
265268#### Target for RV32I
266- - ``` rustup target add riscv32i-unknown-none-elf `` `
269+ - ` rustup target add riscv32i-unknown-none-elf `
267270##### LLVM tools
268- - ``` rustup component add llvm-tools-preview `` `
269- - ``` cargo install cargo-binutils `` `
271+ - ` rustup component add llvm-tools-preview `
272+ - ` cargo install cargo-binutils `
270273
271274### Getting started
272275Currently, a simple starter project has been setup at [ rust/starter-project] ( rust/starter-project ) .
273276To compile and run the starter project with the ISA simulator,
274277execute the following command from the root of the Wildcat project:
275- - ``` make rust-compile `` ` (compiles)
276- - ``` make rust-run `` ` (executes)
278+ - ` make rust-compile ` (compiles)
279+ - ` make rust-run ` (executes)
277280
278281Furthermore, the disassembly can be viewed by executing the following command:
279- - ``` make rust-disassemble `` ` (prints disassembly)
282+ - ` make rust-disassemble ` (prints disassembly)
280283
281284### Creating new Rust projects
282285To maintain an organized project structure, a new Rust project can be created by executing the following command
283286from the root of the Wildcat project:
284- - ``` cargo new rust/[YOUR_PROJECT_NAME] --vcs=none `` `
287+ - ` cargo new rust/[YOUR_PROJECT_NAME] --vcs=none `
285288
286289To compile and run the new project with the ISA simulator,
287290execute the following command from the root of the Wildcat project:
288- - ``` make rust-compile RUST_PROJECT=[YOUR_PROJECT_NAME] `` ` (compiles target project)
289- - ``` make rust-run RUST_PROJECT=[YOUR_PROJECT_NAME] `` ` (executes target project)
291+ - ` make rust-compile RUST_PROJECT=[YOUR_PROJECT_NAME] ` (compiles target project)
292+ - ` make rust-run RUST_PROJECT=[YOUR_PROJECT_NAME] ` (executes target project)
290293
291294Furthermore, the disassembly for the new project can be viewed by executing the following command:
292- - ``` make rust-disassembly `` ` (prints disassembly)
295+ - ` make rust-disassembly ` (prints disassembly)
0 commit comments