Rebuild with changes to caravel host which where not included in previous rebuild. Also removed GL simulations from GitHub action as they take too long and where causing it to time out.
31 files changed
tree: 6e132b91097c30258c1629ac46a4a707f9b9d2e9
- .github/
- def/
- docs/
- gds/
- lef/
- mag/
- maglef/
- openlane/
- sdc/
- sdf/
- signoff/
- spef/
- spi/
- verilog/
- .gitignore
- LICENSE
- Makefile
- README.md
README.md
ExperiarSoC
RISC-V SoC designed for the Efabless Open MPW Program. This project
Features
- Dual RV32I cores
- Per core SRAM
- JTAG interface
- External flash controller
- Shared video SRAM
- Configurable VGA output
- 3x UART ports + 1 internal to caravel
- 1x SPI ports
- 4x PWM counters with 4x separate outputs (2 are internal read only)
Memory Map
Macro Layout
Build Status
- CaravelHost: Success
- ExperiarCore: Success
- Flash: Success
- Peripherals: Success
- Video: Success
- WishboneInterconnect: Success
- user_project_wrapper: Success
Tests
RTL
verify-coreArch-rtl: Success
verify-corePC-rtl: Success
verify-flash-rtl: Success
verify-memory-rtl: Success
verify-peripheralsGPIO-rtl: Success
verify-peripheralsPWM-rtl: Success
verify-peripheralsSPI-rtl: Success
verify-peripheralsUART-rtl: Success
verify-video-rtl: Success (Not validating correct pixel data)
GL
verify-corePC-gl: Success
verify-flash-gl: Not run
verify-memory-gl: Success
verify-peripheralsGPIO-gl: Success
verify-peripheralsPWM-gl: Success
verify-peripheralsSPI-gl: Success
verify-peripheralsUART-gl: Success
verify-video-gl: Success
Need to do
- Make final version of art
- Decide on probe values
- Check for any remaining errors
Could do
- Misaligned architecture instructions
- Look into simulation with CVC
- Write macro level simulations to get more coverage due to shorter simulations
- Add JTAG test
- Add interrupt test
- Add uart pin swapping
- Page based flash controller
- Tile map rendering
- Fetch next instruction a clock cycle earlier so instructions only take 2 cycles
- Allow JTAG to read from wishbone bus
Reference work and inspiration
- Zero to ASIC Course: Complete course on ASIC design. Also has useful references and terminology definitions.
- Openlane Documentation: Reference for a lot of configuration. The Variables and Hardening Macros pages have been particularity useful.
- Caravel Documentation: Reference for caravel and configuration. This seems slightly out of date, but an alternate version can be found in the github repository.
- Riscduino: Used for inspiration and as a reference for using openlane. There are a number of similar aspects to this project, but all have been reimplemented rather than copied.