Added test for the cores ability to access memory.
4 files changed
tree: 2456b417463a2a170ddf16c96c4156cb5d4c3d92
- .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.