Riscduino is a 32 bit RISC V-based SOC design pin-compatible to Arduino platform and this soc targetted for efabless Shuttle program. This project uses only open-source toolsets for simulation, synthesis, and backend tools. The SOC flow follows the openlane methodology and SOC environment is compatible with efabless/carvel methodology.
Riscduino Block Diagram- Open-sourced under Apache-2.0 License (see LICENSE file) - unrestricted commercial use allowed.
- 32 Bit RISC-V core
- 2KB SRAM for instruction cache
- 2KB SRAM for data cache
- 2KB SRAM for Tightly coupled memory - For Data Memory
- Quad SPI Master
- UART with 16Byte FIFO
- USB 1.1 Host
- I2C Master
- UART Master
- Simple SPI Master
- 6 Channel ADC (in Progress)
- 6 PWM
- Pin Compatible to Arduino Uno
- Wishbone compatible design
- Written in System Verilog
- Open-source toolset
- Simulation - iverilog
- Synthesis - yosys
- Backend/sta - openlane tool set
- Verification suite provided.
Carvel SOC provides 38 GPIO pins for user functionality. Riscduino SOC GPIO Pin Mapping as follows vs ATMEGA328 and Arduino.
Riscduino SOC Integrated 32 Bits RISC V core. The initial version of theSingle-core RISC-V core is picked from Syntacore SCR1 (https://github.com/syntacore/scr1)
RISC V core customization for Riscduino SOCFollowing Design, changes are done on the basic version of syntacore RISC core
- Some of the sv syntex is changed to standard verilog format to make itcompatible with opensource tool iverilog & yosys
- Instruction Request is changed from Single word to 4 Word Burst
- Multiplication and Division are changed to improve timing
- Additional pipeline stages wereadded to improve the RISC timing closure near to 50Mhz
- 2KB instruction cache
- 2KB data cache
- Additional routers are added towards theinstruction cache
- Additional routers are added towards data cache
- Modified AXI/AHB interface to wishbone interface for instruction and data memory interface
- RV32I or RV32E ISA base + optional RVM and RVC standard extensions
- Machine privilege mode only
- 2 to 5 stage pipeline
- 2KB icache
- 2KB dcache
- Optional Integrated Programmable Interrupt Controller with 16 IRQ lines
- Optional RISC-V Debug subsystem with JTAG interface
- Optional on-chip Tightly-Coupled Memory
- Register Map: Wishbone HOST
- Register: GLBL_CTRL
- Register: BANK_CTRL
- Register: CLK_SKEW_CTRL1
- Register Map: SPI MASTER
- Register: GLBL_CTRL
- Register: DMEM_CTRL1
- Register: DMEM_CTRL2
- Register: IMEM_CTRL1
- Register: IMEM_CTRL2
- Register: IMEM_ADDR
- Register: IMEM_WDATA
- Register: IMEM_RDATA
- Register: SPI_STATUS
- Register Map: Global Register
- Register: RISC_FUSE
- Register: INTR_CTRL
- EFabless MPW-5 Project - https://platform.efabless.com/projects/670
- Github Repo - https://github.com/dineshannayya/riscduino
This project was created by Dinesh Annayya, and we are sharing it here to help spread the word about the EFabless Open MPW Shuttle Program.
Comments