This repo contains small FPGA projects, demos, and reusable blocks.
- Git + Git LFS (docs PDFs are stored via LFS).
- Python 3 (used by ROM/MIF generators).
- Make, Bash.
- Quartus Prime (Lite is fine) with MAX 10 device support.
- Device part used by this repo: 10M16SAU169C8G.
- On Windows/macOS/Linux, ensure Quartus programmer is installed for board flashing.
- NVC (VHDL simulator).
- UVVM sources (tracked as a git submodule).
- RISC-V GNU toolchain in
/opt/riscv/bin(for C demos):- expects
riscv32-unknown-elf-gcc,riscv32-unknown-elf-objcopy,riscv32-unknown-elf-objdump,riscv32-unknown-elf-readelf.
- expects
- Rust toolchain (for Rust demos):
rustup,rustc, and targetriscv32i-unknown-none-elf.llvm-tools-previewcomponent (providesllvm-objcopy/objdump/readelf).
- Clone with submodules and LFS:
git lfs installgit submodule update --init --recursive
- Install Quartus Prime + MAX 10 device support.
- (Optional) Install NVC for simulation.
- (Optional) Install firmware toolchains:
- C: install RISC-V GCC toolchain under
/opt/riscv. - Rust:
rustup toolchain install stablerustup target add riscv32i-unknown-none-elfrustup component add llvm-tools-preview
- C: install RISC-V GCC toolchain under
- HDL: VHDL only.
- Board-specific projects live under
projects/.
projects/: Quartus projects per boardlib/: reusable VHDL blocksdemos/: quick experiments
- Compile UVVM:
scripts/compile_uvvm_nvc.sh - Run reset TB:
scripts/run_reset_tb_nvc.sh
- Project:
projects/max1000_riscv - Open in Quartus:
projects/max1000_riscv/max1000_riscv.qpf - Ensure device:
10M16SAU169C8G - Build: Quartus "Compile Design"
- Program: Quartus Programmer with the generated
.sof
- Project:
projects/max1000_blinky - Open in Quartus:
projects/max1000_blinky/max1000_blinky.qpf - Build + Program as above
- Dir:
software/helloworld_c - Build ROM image:
make clean && make
- Outputs:
hello.binandprojects/max1000_riscv/rom.mif
- Dir:
software/helloworld_rust - Build ROM image:
make clean && make
- Outputs:
hello.binandprojects/max1000_riscv/rom.mif
- Build firmware ROM:
- C:
cd software/helloworld_c && make clean && make - Rust:
cd software/helloworld_rust && make clean && make
- C:
- Open Quartus project:
projects/max1000_riscv/max1000_riscv.qpf
- Compile design in Quartus.
- Program FPGA with the generated
.sof.