RISC-V soft-SoC extensible plaftorm for Xilinx FPGAs from University of Naples Federico II.
NOTE: the name is temporary...
The SoC comes in two flavors, hpc
and embedded
, with multiple boards supported for each configuration.
Valid Soc Configuration and boards are:
soc_config | board |
---|---|
embedded (Default) | Nexsys A7-100T (Default) |
embedded (Default) | Nexsys A7-50T |
hpc | Alveo U250 |
Embedded:
HPC:
Todo:
- (TBD) Zybo
- (TBD) ZCU102
- (TBD) Alveo U50
- (TBD) Alveo U280
The top-level Makefile can be used to build the System-on-Chip for the specific target board.
First, setup environment with:
source settings.sh <soc_config> <board>
NOTE: If no input parameter is specificed, the
embedded
profile and the Nexys A7-100T are selected.
Then, download rtl sources for non-xilinx IPS
make units
Finally, build the SoC bitstream by running:
make xilinx
The choice of the simulator is driven by the choice of the IPs and required licenses. We target two simulation flows:
- Unit tests: Verilator
- Royalty-free, good for students
- No support for Xilin IPs
- SoC-level tests, QuestaSim:
- Requires license
- Supports Xilinx IPs
- Students can access a licensed host for simulator access
This project was verified on Ubuntu 22.04. W.r.t. the single tools:
Tool | Verified version |
---|---|
Vivado | 2022.2/2023.1 |
Mentor Questa | 2020.4 |
g++ | TBD |
Verilator | TBD |
gtkwave | TBD |
If you need finer-grained documentation and insights to control the building flow, refer to the documentation:
- Units RTL hw/units/README.md
- Xilinx FPGA hw/xilinx/README.md
- Software build hw/sw/README.md
TBD
- Design address space
- Finalized linker script
- Device tree (template + generation)
Basic projects:
AXI Crossbar: Autogenerate linker script + Xilinx AXI crossbar address map from a configuration fileAXI UART: Bare-metal driver xlnx axi uart in C, not asssembyJTAG2AXI: Verify jtag2axi integrationAlveo porting: Port SoC on Alveo- Bootrom: design and development
- DRAM: MIG IP (DDR) integration
- Interrupts: interrupt system design
- SPI flash: Integrate + PoC boot from SPI flash
- Debugger: JTAG debug core + OpenOCD/GDB
Design probing: ILA integration in SoC flow
Advanced projects:
- Linux in-memory boot
- Linux SPI flash boot
- CoVe: extension implementation