Skip to content
@retroSoC

retroSoC

A Customized ASIC for Retro Stuff!

Hi, retroSoC 👋

retroSoC contains a bundle of IPs which aim to improve development experience of processor and SoC design. Now it mainly focus on frontend and verification field. We hope it can be integrated by other components to build a common workflow for agile hardware development from frontend to backend one day.

Motivation

retroSoC information
TINY A Minimum RV32E Educational MCU(<10K instances)
CORE(ongoing): OSOC CORE(pre-learned, SCP, Single Cylcle Processor)
BUS: NATIVE bridge(NATIVE mux, NATIVE2APB), single power/clock domain, 16-32MHz(SMIC110, IHP/SKY130)
SYSTEM IP: 1xARCHINFO
MEMORY IP: 128KB OCM, 16MB SPI NOR FLASH, 512KB/1MB QPI FRAM, 8/16MB QPI PSRAM
INTERFACE IP: 2xUART, 4xGPIO, 2xTIMER, 1xI2C, 1xQSPI
PACKAGE: QFN48
DEMO: smart band
MINI A Lightweight RV32I/EMC MCU(10K~50K instances)
CORE: PicoRV32, KianV(RV32E, tt07), ongoing: DarkRISCV, SERV, tinyQV, FemtoRV32, TinySys, VexRiscv
BUS: NATIVE bridge(NATIVE mux, NATIVE2APB), single power/clock domain, 24-108MHz(SMIC110, IHP/SKY130)
SYSTEM IP: 1xARCHINFO, 1xRCU
MEMORY IP: 128KB OCM, 16MB SPI NOR FLASH, 512KB/1MB QPI FRAM, 8/16MB QPI PSRAM
INTERFACE IP: 2xUART, 16xGPIO, 2xTIMER, 1xRNG, 4xPWM, 1xWDG, 1xPS2, 1xI2C, 1xQSPI, 1xSDIO
MULTIMEDIA IP: 1xI2S
PACKAGE: QFN48/64
DEMO: smart band, micro quadcopter
STD A Complete RV32IMAC MCU(20K~80K instances)
CORE(ongoing): OSOC Core(RV32E, B-phase), Hummingbirdv2 E203, CV32E40P, ibex, Harzard3, SCR1, RV12(RVLogic), Glacial, VeeR EH1, VexRiscv
BUS: AHB/AXI bridge(AHB/AXI splitter, AHB/AXI2APB), single power, multi clock domain, 72-196MHz(SMIC110, IHP/SKY130)
SYSTEM IP: 1xARCHINFO, 1xRCU, 1XPLIC
MEMORY IP: 128KB OCM, 16MB SPI NOR FLASH, 512KB/1MB QPI FRAM, 8/16MB QPI PSRAM, 32MB DDR OPI PSRAM
INTERFACE IP: 2xUART, 16xGPIO, 2xTIMER, 1xRNG, 4xPWM, 1xPS2, 1xI2C, 1xQSPI, 1xSDIO
MULTIMEDIA IP: 1xI2S, 1xVGA, 1xDVP, 1xDMA
PACKAGE: QFN88
DEMO: game console
PRO A High-performance RV32/64GC SoC(60K~200K instances)
CORE(ongoing): OSOC Core(RV64G, A-phase), Nanhu-G(XiangShan), biriscv, CVA6, ‌VexRiscv, Rocket Chip, BOOM, RRV64, GreenRio
BUS: AXI bridge(AXI splitter, AXI2APB), single power, multi clock domain, 72-196MHz(SMIC110, IHP/SKY130)
SYSTEM IP: 1xARCHINFO, 1xRCU, 1XPLIC
MEMORY IP: 128KB OCM, 16MB SPI NOR FLASH, 512KB/1MB QPI FRAM, 8/16MB QPI PSRAM, 32MB DDR OPI PSRAM
INTERFACE IP: 2xUART, 32xGPIO, 4xTIMER, 1xRNG, 4xPWM, 1xPS2, 1xI2C, 2xQSPI, 1xSDIO
MULTIMEDIA IP: 1xI2S, 1xVGA, 1xDVP, 1xDMA, 1x2D GRAPHIC ACCEL
PACKAGE: QFP100
DEMO: game console, single board computer

IPs list and development state:

clusterIP MILESTONE
system Common Component, Interrupt Controller, Reset&Clock Unit
common
archinfo
clint
plic
rcu
interface Low-speed Peripherals
gpio
uart
ps2
timer
pwm
wdg
rtc
i2c
application Specific Field IPs
rng
crc
multimedia SPI/QSPI TFT-LCD, VGA/LCD, SDIO TF/WiFi, CMOS Camera, DMA, 2D Graphic Accel.
spi
i2s
vga
dma
dvp
sdio
memory on-chip SRAM, QPI SDR FRAM/PSRAM, OPI DDR PSRAM, 16-bit SDR SDRAM
sram
fram
psram
sdram
other
tapeout1
  1. this PRIVATE repo contains some tapeout-verified IPs:
    1. chiplink: a 8-bits D2D(die-to-die) bus interface derived from SiFive ChipLink.
    2. keyboard: an axi4-lite based ps2 keyboard IP.
    3. spi: an apb3-based standard SPI IP.
    4. uart: an apb3-based UART IP compatible with UART16550.
state badge statement
SPC: SPEC complete RTF: RTL frozen SMT: SMOKE test UVV: UVM verif FUC: FUNCTION coverage
COC: CODE coverage SOI: SoC integ FPE: FPGA emu TPT: TAPEOUT test
More Info

Template

Refer to the template repo. If you want to create a new ip repo, You need to:

  • Use this repository template to create a new repo
  • Update the content [IP NAME] in header file and remove the header file.

Style

refer to the style.md.

Contribution

If you want to contribute to this project, be sure to review the guidelines. This is an open project and contributions and collaborations are always welcome!! This project adheres to retroSoC's code_of_conduct. By participating, you are expected to uphold this code.

we use GitHub issues for tracking requests and bugs, so please direct specific questions to issues panel.

The retroSoC project strives to abide by generally accepted best practices in open-source software development, you can issue bugs, pull requests, new features and modification suggestions freely. Your feedbacks could help us ensure a bright future for this project. We value and treasure every issue or contribution, big or small. 😄

License

All of the IPs codes are redistributed or released under the OSI Approved LICENSE MulanPSL2.

Acknowledgement

Reference

Pinned Loading

  1. retroSoC retroSoC Public

    A Customized ASIC for Retro Stuff!

    C 4

  2. psram psram Public

    An AXI4-based PSRAM Controller

    SystemVerilog 4 1

  3. sram sram Public

    An AXI4-based SRAM Controller

    SystemVerilog 6

  4. vga vga Public

    An AXI4-based VGA Controller

    SystemVerilog 3

  5. common common Public

    A SystemVerilog Components Library

    SystemVerilog 3

  6. uart uart Public

    An APB4-based UART Controller

    SystemVerilog 3

Repositories

Showing 10 of 32 repositories
  • retroSoC/retroSoC.github.io’s past year of commit activity
    0 0 0 0 Updated Apr 24, 2025
  • .github Public
    retroSoC/.github’s past year of commit activity
    0 0 0 0 Updated Apr 23, 2025
  • sdram Public

    An AXI4-based SDRAM Controller

    retroSoC/sdram’s past year of commit activity
    0 0 0 0 Updated Apr 21, 2025
  • dvp Public
    retroSoC/dvp’s past year of commit activity
    0 0 0 0 Updated Apr 21, 2025
  • sdio Public

    An APB4-based SDIO Controller

    retroSoC/sdio’s past year of commit activity
    0 0 0 0 Updated Apr 21, 2025
  • retroSoC Public

    A Customized ASIC for Retro Stuff!

    retroSoC/retroSoC’s past year of commit activity
    C 4 0 0 0 Updated Apr 21, 2025
  • fram Public

    A Native/AXI4-based QPI FRAM Controller

    retroSoC/fram’s past year of commit activity
    0 0 0 0 Updated Apr 20, 2025
  • uart Public

    An APB4-based UART Controller

    retroSoC/uart’s past year of commit activity
    SystemVerilog 3 MulanPSL-2.0 0 1 0 Updated Apr 20, 2025
  • pwm Public

    An APB4-based PWM Controller

    retroSoC/pwm’s past year of commit activity
    SystemVerilog 1 MulanPSL-2.0 0 1 0 Updated Apr 20, 2025
  • ps2 Public

    An APB4-based PS/2 Keyboard and Mouse Controller

    retroSoC/ps2’s past year of commit activity
    SystemVerilog 1 MulanPSL-2.0 0 0 0 Updated Apr 20, 2025

Top languages

Loading…

Most used topics

Loading…