Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/CircuitCoder/mill
RV32I by cats
https://github.com/CircuitCoder/mill
Last synced: 2 months ago
JSON representation
RV32I by cats
- Host: GitHub
- URL: https://github.com/CircuitCoder/mill
- Owner: CircuitCoder
- License: mit
- Created: 2020-09-30T16:40:36.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-09-04T02:52:49.000Z (over 1 year ago)
- Last Synced: 2024-10-26T22:53:02.127Z (3 months ago)
- Language: SystemVerilog
- Homepage: https://mill.thu.fail
- Size: 585 KB
- Stars: 17
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Mill
=======================> \[verb\] (transitive) To grind or otherwise process in a mill or other machine.
## What's in the box?
- A test framework, which test the CPU against:
- riscv/riscv-tests
- A educational 5-stage(?) RV32I implementation with SystemVerilog
- Documentation (in zh-CN), including
- The usage of the test framework
- The design of the CPU implementation
- The timeline of the development## CPU interface
See `rtl/top.sv`
## Run unit test
To run the unit test included in this repository, you will need to install the following dependencies first:
- verilator, tested on 5.006
- GCC (g++) 10, tested on 12.2.0. clang won't work (for now) because of its lacking the standard concept library.
- rust (rustc, cargo), tested on 1.74.0-nightly
- cxxbridge, tested on 1.0.107. This binary is provided in the `cxxbridge-cmd` rust crate.
- cmake, tested on 3.25.1. You may want to change the minimal version specified in the bridge/CMakeLists.txt to match your cmake version.
- ninja or makefile, tested on ninja 1.11.1. Ninja is recommended for better build dependency handling.Then, just simple invoke `cargo run -- -h` and you will get the help for the test runner.
A full run-through on a freshly installed ArchLinux:
```bash
pacman -Syy
pacman -S base-devel verilator rustup ninja cmake git
rustup install nightly
cargo install cxxbridge-cmdgit clone https://github.com/CircuitCoder/mill.git
cd mill
cargo run -- -h
```## License
All source code and related materials in this repository is distributed under the MIT license. You may get a copy of the license text in the LICENSE file located in the root of this repository.