Skip to content

English

RISC-V SoC workspace

mpc-soc

给多项目芯片提供可仿真、可跑软件的 RISC-V SoC 底板。把 core 接到现有槽位,在同一套文档工作台里查看地址空间和 IP 状态。

打开用户指南
TOPasicTop
CLOCK50 MHz
DATA32 bit
RESET PC0x3000_0000
Verilator 5.050
SOC DATA PATH

一个 AXI master,一组可仿真外设

asicTop / SimTop
RISC-V core slotCORE_SEL 选择待测 CPU
AXI4 XBarAXI4 → APB4 外设互连
Flash / PSRAMXIP + 24 MiB 软件窗口
SimTop board modelsUART · GPIO · SPI · I2C
selected coreclock on · reset off
other CORE_SEL slotsheld in reset
memory interconnect unused slots
mpc-soc
$ make doctor
$ make check
SOC SMOKE CHECK PASS

用户阶段通过 CORE_SEL 选择待测 core。完整 bootrom 回归走维护者入口。

IP功能地址 / 实例状态测试验证边界
CPU core执行 RISC-V 软件,发起 AXI 访问并接收中断core slot 0,默认 CORE_SEL=0冒烟通过SoC 启动、基础软件指令完整性、异常/特权态、性能、长时间运行
CLINT软件中断、定时器中断、mtime/mtimecmp0x0201_0000冒烟通过clint多核语义、竞态、边界时序
PLIC外部中断汇聚、优先级和分发0x0c00_0000冒烟通过plic多源并发、优先级边界、压力场景
UART0 / UART16550控制台串口、16550 寄存器和 FIFO0x1000_0000冒烟通过uart_poll、UART 输入波特率边界、溢出、错误帧、持续收发
SPISPI Flash 接口和 XIPFlash:0x3000_0000冒烟通过flash_xip、启动取指真实器件时序、擦写、掉电恢复、兼容性
RCU时钟选择、分频和复位控制0x1000_2000冒烟通过rcu动态切换、复位时序、时钟门控
RTC实时时钟计数0x1000_4000冒烟通过rtc校准、低功耗、跨时钟域、长期漂移
WDG看门狗计数、超时和复位0x1000_5000冒烟通过wdg复位竞争、时钟异常、系统恢复
ArchInfo架构和芯片信息寄存器0x1000_6000冒烟通过archinfo配置兼容性、只读属性完整检查
GPIOGPIO 输入、输出和方向控制0x1010_0000冒烟通过gpio、gpio_toggle方向切换、边沿/中断、PAD 电气特性
UART1APB4 UART 收发0x1010_3000冒烟通过uart1边界、错误和中断场景
I2CI2C 主机控制器和开漏接口0x1010_4000冒烟通过i2c多从机、仲裁、ACK/NACK、总线恢复
PWM4 路 PWM 输出0x1010_6000冒烟通过pwm频率/占空比边界、动态改配、抖动
TimerAPB 定时器,共 4 个实例0x1010_8000 - 0x1010_b000冒烟通过timer、timer_multi溢出、重启、并发、中断边界
QSPI四线 SPI 控制器0x1020_0000冒烟通过qspi实际传输、模式/时钟、Flash 兼容性
RNG伪随机数生成0x1030_0000冒烟通过rng随机性统计、种子和重复周期;不代表安全 RNG
CRCCRC8/CRC16/CRC32 计算0x1030_1000冒烟通过crc全参数组合、连续数据、边界长度
PSRAM 控制器3 片 PSRAM 访问,总计 24 MiB0xc000_0000冒烟通过psram_basic真实时序、带宽、刷新、温度/电压、长期压力
20 个映射区域
memoryflash0x3000_0000

External SPI flash XIP window. · 0x0100_0000

memorypsram0xC000_0000

External PSRAM window, three 8MiB chips. · 0x0180_0000

peripheralclint0x0201_0000

Core-local interruptor. · 0x0001_0000

peripheralplic0x0C00_0000

Platform-level interrupt controller. · 0x0040_0000

peripheraluart00x1000_0000

UART16550 console. · 0x0000_1000

peripheralrcu0x1000_2000

Reset and clock control unit. · 0x0000_1000

peripheralrtc0x1000_4000

Real-time clock. · 0x0000_1000

peripheralwdg0x1000_5000

Watchdog timer. · 0x0000_1000

peripheralarchinfo0x1000_6000

Architecture information registers. · 0x0000_1000

peripheralgpio00x1010_0000

GPIO controller. · 0x0000_1000

peripheraluart10x1010_3000

APB4 UART controller. · 0x0000_1000

peripherali2c0x1010_4000

APB4 I2C controller. · 0x0000_1000

peripheralpwm0x1010_6000

PWM controller. · 0x0000_1000

peripheraltimer00x1010_8000

APB timer. · 0x0000_1000

peripheraltimer10x1010_9000

APB timer. · 0x0000_1000

peripheraltimer20x1010_A000

APB timer. · 0x0000_1000

peripheraltimer30x1010_B000

APB timer. · 0x0000_1000

peripheralqspi0x1020_0000

APB4 QSPI controller. · 0x0000_1000

peripheralrng0x1030_0000

Pseudo-random number generator. · 0x0000_1000

peripheralcrc0x1030_1000

CRC calculation engine. · 0x0000_1000

Documentation is maintained from one bilingual source tree.