走向开放硅:Baochip-1x 的 RISC-V MCU 架构与工程实践

在开源硬件领域,一款既有芯片级代码又可用于工程实践的项目并不多见。baochip-1x 就是这样一个鲜明例子:它是一个围绕 RISC-V 架构、绝大部分开源逻辑描述的 MCU(微控制器)项目。该项目的代码托管在 GitHub 上,并提供部分 RTL(硬件逻辑)源码,支持文档自动生成与功能仿真。

22nm台积电工艺制造350MHz主频单片机完整流片RTL文件。

项目简介

Baochip-1x是一颗以开放源码RTL为主体、基于RISC-V指令集架构的微控制器,采用台积电22纳米工艺制造。其搭载的Vexriscv内核主频达350MHz,集成2MB RAM、4MB RRAM Flash、USB 2.0高速接口,以及基于PicoRV32设计、主频700MHz的四核I/O加速器。

所谓 RTL,是对数字硬件逻辑的结构化描述,可用于综合、仿真与验证,并能提取生成相关文档。该项目提供的 RTL 足够用于自动化文档生成与功能级仿真。

代码组织

  • 位于Xous代码库中的官方 Rust SDK。

https://github.com/betrusted-io/xous-core/

  • docs包含Baochip 1x 书籍的源代码。

https://baochip.github.io/baochip-1x/

  • rtl包含已流片的 RTL 的开源代码。

  • Vexriscv包含 Vex CPU 的源配置

  • scripts包含用于仓库管理的辅助脚本

  • verilate包含使用 Verilator 模拟 Baochip-1x 子集 RTL 模拟程序的文件。

  • arty包含用于构建面向 Arty-A7 的 SoC 存根的文件。可用于调试和开发未来的扩展功能。

核心特性

🧠 1. 主要由开源架构构成

项目的源代码主要采用开源技术栈,既有 Verilog / SystemVerilog 代码,也包括借助 SpinalHDL 与 Litex 生成的片段。尽管某些组件由于工程和 IP 原因未完全开源,但现有代码能完整描述 SoC 的主要结构,可用于建立文档和执行功能验证。

🔍 2. 文档与自动生成机制

项目中包含了一些自动化工具,可以从 RTL 代码自动提取以下信息:

  • SoC 外设的部分 SVD 文件

  • Xous 核心代码能使用的头文件

  • 可读的 SoC 结构文档

这些内容通过脚本从 RTL 自动生成,有助于理解芯片设计与使用。

🧪 3. 支持 Verilator 仿真

为了便于软件开发和验证,该项目支持使用 Verilator 进行功能仿真。Verilator 是一款开源的 Verilog 模拟器,相比商业级模拟工具,它执行速度更快,适合软件调试与大型 CI(持续集成)测试。

  • 通过 Verilator 仿真,你可以:

  • 启动和运行操作系统如 Xous

  • 查看 SoC 内部信号波形

  • 调试程序计数器、寄存器文件、AXI 总线状态等

  • 使用 GTKwave 结合 Codezoom 实现在仿真波形图中定位指令与状态

  • 尽管此仿真不处理时序细节和未知逻辑 X 状态,但在软件验证和开发流程中非常实用。

硬件验证

专门设计的开发板
https://github.com/baochip/dabao

总结

baochip-1x 是一个围绕 RISC-V 架构的开源 MCU 项目源码库,提供了 RTL 描述、自动文档生成与仿真工具支持。虽然部分模块由于工程原因尚未开源,但现有代码足以用于:

✔ 学习数字 SoC 架构与模块组织

✔ 在 Verilator 上进行功能模拟与软件开发

✔ 自动文档提取与头文件生成

✔ 支持后续开发板与软件堆栈构建

作为连接开源硬件与嵌入式软件世界的桥梁,这个项目为关注 RISC-V 与开源硅生态的工程师提供了一个极具参考价值的源代码资源。

相关推荐
搞全栈小苏2 小时前
嵌入式之 LVGL 的切换页面研究:杜绝内存泄漏(单片机与 Linux 平台)(链表与多进程方式)
linux·单片机·链表·lvgl
想放学的刺客2 小时前
单片机嵌入式试题(第20期)通信协议深度解析与系统调试实战
stm32·单片机·嵌入式硬件·物联网·51单片机
赤~峰2 小时前
S32DS for S32 Platform RTC输出时间
单片机·mcu
Y1rong11 小时前
STM32之中断(二)
stm32·单片机·嵌入式硬件
Y1rong11 小时前
STM32之中断(一)
stm32·单片机·嵌入式硬件
LaoZhangGong12312 小时前
学习TCP/IP的第3步:和SYN相关的数据包
stm32·单片机·网络协议·tcp/ip·以太网
小郭团队12 小时前
2_1_七段式SVPWM (经典算法)算法理论与 MATLAB 实现详解
嵌入式硬件·算法·硬件架构·arm·dsp开发
持戒波罗蜜12 小时前
ubuntu20解决intel wifi 驱动问题
linux·驱动开发·嵌入式硬件·ubuntu
不做无法实现的梦~12 小时前
使用ros2来跑通mid360的驱动包
linux·嵌入式硬件·机器人·自动驾驶