0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RISC V 开源芯片项目:PULP(Parallel Ultra Low Power)平台深度解读

eeDesigner ? 2025-04-09 15:16 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、项目背景与核心目标

PULP(Parallel Ultra Low Power)是由瑞士苏黎世联邦理工学院(ETH Zurich)和意大利博洛尼亚大学(University of Bologna)于2013年联合发起的开源多核计算平台。其核心目标是为物联网IoT)终端节点边缘计算设备提供低功耗、高性能嵌入式解决方案。通过硬件与软件的协同优化,PULP在毫瓦级功耗下实现高效并行计算,满足传感器数据流处理、实时信号处理等需求。
*附件:pulp-master.zip


二、技术架构解析

1. 硬件设计
  • 核心处理器
    • RI5CY :4级流水线、支持RV32IMC指令集的RISC-V内核,扩展硬件循环、乘累加指令(MAC)等DSP功能,主频可达250MHz,对标ARM Cortex-M4。
    • zero-riscy :2级流水线、面向极低功耗场景的RISC-V内核,支持RV32IC指令集,适用于简单控制任务。
  • 多核集群 :PULP采用 多核并行架构 (如8核集群),通过共享指令缓存(L1 Cache)和紧耦合数据缓存(SCM)提升并行效率,解决多核一致性问题。
  • 硬件加速器
    • uDMA(自主I/O子系统) :实现高效外设通信,减少CPU负载。
    • HWPEs(硬件处理引擎) :集成针对信号处理、神经网络的专用加速单元,提升卷积运算效率。
2. 内存与总线
  • 内存子系统 :支持多级缓存架构(如L1/L2 Cache)、SRAM和闪存分区,优化数据吞吐。
  • 总线互联 :AXI总线连接主核心与外设,APB总线挂载SPI、I2CUART接口,支持低延迟通信。
3. 低功耗设计
  • 动态电压频率调节(DVFS) :根据负载调整电压和频率。
  • 电源门控 :关闭闲置模块以节省功耗。
  • 事件驱动中断 :减少轮询开销,典型功耗低于10mW。

三、软件生态与开发工具

1. 操作系统支持
  • FreeRTOS :轻量级实时系统,适用于资源受限设备。
  • Nuttx :支持文件系统、网络协议栈,适合复杂嵌入式应用。
2. 工具链
  • RISC-V GCC工具链 :支持RV32IMC扩展指令编译。
  • Pulp-SDK :提供硬件抽象层(HAL)、驱动库及调试工具。
  • 仿真与验证 :基于Verilator和ModelSim的RTL仿真环境,支持FPGA部署。
3. 应用开发

四、典型应用场景

  1. 物联网终端 :处理多传感器数据流(如加速度计、麦克风阵列),适用于智能农业、工业监测。
  2. 边缘AI :GAP8处理器搭载神经处理器(NPU),实现本地化图像识别与语音处理。
  3. 医疗设备 :低功耗ECG监测、可穿戴健康设备,支持长时间运行。
  4. 自动驾驶感知 :实时处理激光雷达点云数据,优化路径规划。

五、开源生态与合作模式

  • 管理架构 :由lowRISC基金会主导标准化,联合西部数据、新唐科技等企业推动商业化。
  • 社区贡献
    • 学术机构 :苏黎世联邦理工学院贡献Zero-riscy核心,探索抗量子加密协议。
    • 产业合作 :Google将RI5CY集成至Pixel Visual Core评估,NXP用于车用MCU
  • 衍生项目
    • Pulpino :单核微控制器平台,简化PULP架构用于教学和小型设备。
    • Pulp-DroneNet :面向无人机的视觉处理框架,集成硬件加速器实现实时避障。

六、挑战与未来展望

  1. 技术挑战
    • 制造依赖 :部分工艺依赖台积电55nm/28nm制程,尚未完全实现开源流片。
    • 生态碎片化 :需与Arm TrustZone、Intel SGX等闭源方案竞争,推动RISC-V软件工具链统一。
  2. 未来方向
    • 异构计算 :整合CPU、GPU、NPU,支持更复杂的AI推理任务。
    • 车规级应用 :拓展至车载ECU和自动驾驶芯片,满足功能安全标准(ISO 26262)。
    • 量子安全 :研究抗量子攻击的硬件加密模块。

七、总结

PULP通过开源硬件设计模块化架构 ,成为物联网与边缘计算领域的标杆平台。其多核并行、低功耗特性在AIoT场景中展现出显著优势,未来有望通过生态扩展和技术迭代,推动RISC-V在工业与消费电子中的普及。


参考GitHub
https://github.com/pulp-platform/pulp

PULP平台

PULP (Parallel Ultra-Low-Power) 是一个开源多核计算平台,是苏黎世联邦理工学院和博洛尼亚大学之间持续合作的一部分 - 始于 2013 年。

PULP 架构针对需要灵活处理多个传感器生成的数据流的物联网终端节点应用,例如加速度计、低分辨率摄像头、麦克风阵列、生命体征监测器。

PULP 由先进的微控制器架构组成,在完整性和复杂性方面比 PULPino 领先了一大步,负责自主 I/O、高级数据预处理、外部中断,并包括一个紧密耦合的处理器集群,计算密集型内核扫描从主处理器卸载到该集群。PULP 架构包括:

  • RI5CY 内核或零 riscy 内核作为主内核
  • 自主输入/输出子系统 (uDMA)
  • 新的内存子系统
  • 支持硬件处理引擎 (HWPE)
  • 新的简单中断控制器
  • 新外设
  • 新的并行计算集群
  • 新系统 DMA
  • 新建事件单元
  • 新 SDK

RISCY 是一个有序的单发射内核,具有 4 个流水线级,它具有接近 1 的 IPC,完全支持基本整数指令集 (RV32I)、压缩指令 (RV32C) 和乘法指令集扩展 (RV32M)。它可以配置为具有单精度浮点指令集扩展 (RV32F)。它实现了多个 ISA 扩展,例如:硬件循环、后递增加载和存储指令、位作指令、MAC作、支持定点作、打包 SIMD 指令和点积。它旨在提高超低功耗信号处理应用的能效。RISCY 实现了 1.9 特权规范的子集。有关内核的更多信息,请参见http://ieeexplore.ieee.org/abstract/document/7864441/ 和 IP 文档。

Zero-Riscy 是一个有序、单发射内核,具有 2 个流水线级,它完全支持基本整数指令集 (RV32I) 和压缩指令 (RV32C)。它可以配置为具有乘法指令集扩展 (RV32M) 和减少的寄存器数扩展 (RV32E)。它旨在针对超低功耗和超低面积限制。zero-riscy 实现 1.9 特权规范的子集。有关内核的更多信息,请参见http://ieeexplore.ieee.org/document/8106976/ 和 IP 文档。

PULP 包括一个新的高效 I/O 子系统,通过 uDMA (micro-DMA) 与外设自主通信。内核只需要对 uDMA 进行编程并等待它处理传输。有关内核的更多信息,请参见http://ieeexplore.ieee.org/document/8106971/ 和 IP 文档。

PULP 支持接口上的 I/O,例如:

  • SPI (作为主设备)
  • I2S 系列
  • 摄像头接口 (CPI)
  • I2C 接口
  • 串口
  • JTAG

PULP 还支持集成硬件加速器 (HardwareProcessing Engines),这些加速器与 RI5CY 内核共享内存,并在内存映射上编程。可以在 hwpe-mac-engine 中找到一个示例加速器,该加速器在定点值的向量上执行乘法累加(更新 IP 后:请参阅下面的“入门”部分)。hwpe-stream 和 hwpe-ctrl 文件夹包含将流加速器插入数据和控制平面上的 PULP 系统所需的 IP。有关如何设计和集成此类加速器的更多信息,请参阅 hwpe-stream/doc 和 https://arxiv.org/abs/1612.05974。

开始

[](https://github.com/pulp-platform/pulp#getting-started)

先决条件

[](https://github.com/pulp-platform/pulp#prerequisites)

为了能够使用 PULP 平台,您需要 PULP 工具链。获取说明可在此处找到:https://github.com/pulp-platform/pulp-riscv-gnu-toolchain。

构建 RTL 仿真平台

[](https://github.com/pulp-platform/pulp#building-the-rtl-simulation-platform)

要构建 RTL 仿真平台,首先要获取构成 PULP 系统的最新版本的 IP:

source setup/vsim.sh

make checkout

make scripts

make build

注意:运行脚本时可能会出现错误(无法生成子进程。打开的文件太多(os 错误 24)。虽然修复是 WIP,但解决方法是通过设置(例如 ulimit)4096 (ulimit -n 4096) 来增加计算机可用的进程数。

此命令构建一个不依赖于外围设备的外部模型的仿真平台版本。有关如何插入某些型号的真实 SPI、I2C、I2S 外设的详细信息,请参见下文(专有验证 IP)。

默认的依赖管理是使用 bender 来收集 IP 来完成的。如果您想使用旧版 IPApproX 工具,请设置 IPAPPROX 环境变量,例如通过运行 export IPAPPROX=1,并继续作,风险自负。

在 IP 上工作

[](https://github.com/pulp-platform/pulp#working-on-ips)

处理单个 IP 的最简单方法是使用 bender 和以下命令克隆它:

./bender clone $IP

这会将 IP 检出到 working_dir 目录,在那里可以修改 IP 并提交和推送更改。正确的链接将通过 Bender.local 文件中的覆盖来设置,从而强制 bender 工具使用此版本的依赖项。要构建平台,请确保在调用 ./bender clone 后从上面的 make scripts 步骤开始。

更改完成后,请确保使用新版本相应地更新调用 IP 依赖项的软件包中的 Bender.yml 文件。bender parents 命令可以帮助确定哪些依赖项的 Bender.yml 文件需要更新。请注意,在修改依赖项版本时,需要调用 ./bender update 命令以重新解析正确的版本。更新完成后,可以删除 Bender.local 中的相应行以恢复正常的依赖项解析,不再使用 working_dir 中的版本(请务必调用 ./bender update)。有关更多信息,请查看 bender 文档。

下载并运行简单的 C 回归测试

[](https://github.com/pulp-platform/pulp#downloading-and-running-simple-c-regression-tests)

最后,您可以下载并运行测试;为此,您可以查看以下存储库:

  • 运行时测试:https://github.com/pulp-platform/regression_tests
  • 纸浆运行时间:https://github.com/pulp-platform/pulp-runtime

现在你可以将目录更改为你喜欢的测试,例如:对于 hello worldtest,运行

git clone https://github.com/pulp-platform/regression_tests.git

git clone https://github.com/pulp-platform/pulp-runtime.git

source pulp-runtime/configs/pulp.sh

export PATH=*path to riscv gcc toolchain*/bin:$PATH

export PULP_RISCV_GCC_TOOLCHAIN= *path to riscv gcc toolchain*

cd regression_tests/hello

mae clean all run gui=1

开源仿真平台依靠 JTAG 来模拟 PULP L2 内存的预加载。如果您想模拟更真实的场景(例如访问外部 SPI Flash),请查看以下部分。

如果您想查看 Modelsim GUI,只需键入

make conf gui=1

在开始模拟之前。

如果要保存(压缩的)VCD 以供进一步检查,请键入

make conf vsim/script=export_run.tcl

在开始模拟之前。您将在build//pulp/export.vcd.gz 中找到 VCD,其中 是测试的 C 源代码的名称。

专有验证 IP

[](https://github.com/pulp-platform/pulp#proprietary-verification-ips)

完整的仿真平台可以利用一些商用 SPI、I2C、I2S 外设模型连接到开源 PULP 仿真平台。在 rtl/vip/spi_flash、rtl/vip/i2c_eeprom、rtl/vip/i2s 中,您可以找到安装 SPI、I2C 和 I2S 型号的说明。

安装 SPI flash 模型后,可以切换到更真实的引导模拟,其中 PULP 的内部 ROM 用于执行初始引导并开始从 SPI flash 中自主获取程序。为此,测试台的 LOAD_L2 参数必须从JTAG 切换到 STANDALONE。

PULP-SDK 开发工具包

[](https://github.com/pulp-platform/pulp#pulp-sdk)

如果您是软件开发人员,您可以在此处找到 PULP-SDK:https://github.com/pulp-platform/pulp-sdk。

PULP 平台结构

[](https://github.com/pulp-platform/pulp#pulp-platform-structure)

按照 入门 部分所述进行完全设置后,此根存储库的结构如下:

  • rtl/tb 包含主平台 TestBench 和相关文件。
  • rtl/vip 包含用于模拟外部外设的验证 IP,例如 SPI 闪光灯和相机。
  • rtl 还可以包含其他材料(例如,全局包含、顶级文件)
  • sim 包含 ModelSim/QuestaSim 仿真平台。
  • pulp-sdk 包含 PULP 软件开发包;pulp-sdk/tests包含随 SDK 一起发布的所有测试。
  • Bender.yml 包含 bender 工具的所有依存关系和源文件信息。

要求

[](https://github.com/pulp-platform/pulp#requirements)

RTL 平台有以下要求:

  • 相对较新的基于 Linux 的作系统;我们测试了 Ubuntu 16.04 和CentOS 7。
  • ModelSim 的最新版本(我们使用 10.6b 版本对其进行了测试)。
  • Python 3.4,安装了 pyyaml 模块(您可以通过pip3 install pyyaml 获取它)。
  • SDK 有自己的依赖项,如https://github.com/pulp-platform/pulp-sdk/blob/master/README.md

仓库组织

[](https://github.com/pulp-platform/pulp#repository-organization)

PULP 平台是高度分层的,各种 IP 的 Git 存储库遵循层次结构,以保持最大的灵活性。IP 更新系统的大部分复杂性都隐藏在 bender 工具后面;但是,需要了解一些详细信息:

  • 不要假设任意 IP 的 master 分支是稳定的;许多内部 IP 可能包含其历史记录的某个时间点的不稳定更改。相反,在顶级平台(pulpissimo、pulp)中,我们总是使用稳定版本的 IP。因此,您应该能够安全地使用 pulpissimo 的master 分支。
  • 默认情况下,将使用 HTTPS 从 GitHub 收集 IP。这使得每个人都可以在不先将 SSH 密钥上传到 GitHub 的情况下克隆它们。但是,对于开发来说,使用 SSH 通常更容易,特别是如果您想将更改推回去。

用于收集 IP 和创建仿真脚本的工具具有许多功能,这些功能不一定适用于最终用户,但对开发人员可能很有用;如果您想了解更多信息,例如将 ownrepository 集成到流程中,您可以在https://github.com/pulp-platform/bender/blob/master/README.md 中找到文档

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RISC
    +关注

    关注

    6

    文章

    482

    浏览量

    85080
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    明晚开播 |开源芯片系列讲座第28期:高性能RISC-V微处理器芯片

    鹭岛论坛开源芯片系列讲座第28期「高性能RISC-V微处理器芯片」明晚(30日)20:00精彩开播期待与您云相聚,共襄学术盛宴!|直播信息报告题目高性能
    的头像 发表于 07-29 17:02 ?408次阅读
    明晚开播 |<b class='flag-5'>开源</b><b class='flag-5'>芯片</b>系列讲座第28期:高性能<b class='flag-5'>RISC-V</b>微处理器<b class='flag-5'>芯片</b>

    芯新闻|昊芯亮相第五届RISC-V中国峰会,共绘开源芯片新纪元

    展会现场7月盛夏,万众瞩目的第五届RISC-V中国峰会在上海张江科学会堂成功举办,昊芯携最新RISC-V架构芯片及多款解决方案精彩亮相,展示了近年来在开源
    的头像 发表于 07-28 18:30 ?151次阅读
    芯新闻|昊芯亮相第五届<b class='flag-5'>RISC-V</b>中国峰会,共绘<b class='flag-5'>开源</b><b class='flag-5'>芯片</b>新纪元

    RISC-V平台思维和生态思维

    RISC-V 的魅力在于以模块化、开源、开放的指令集为底座,通过平台化技术框架降低芯片与应用开发门槛,并以协同共建的产业生态弥合碎片、加速落地。因此,高通高级副总裁 Leendert
    发表于 07-17 14:04 ?3880次阅读

    直播预约 |开源芯片系列讲座第28期:高性能RISC-V微处理器芯片

    鹭岛论坛开源芯片系列讲座第28期「高性能RISC-V微处理器芯片」7月30日(周三)20:00精彩开播期待与您云相聚,共襄学术盛宴!|直播信息报告题目高性能
    的头像 发表于 07-14 17:34 ?461次阅读
    直播预约 |<b class='flag-5'>开源</b><b class='flag-5'>芯片</b>系列讲座第28期:高性能<b class='flag-5'>RISC-V</b>微处理器<b class='flag-5'>芯片</b>

    大象机器人携手进迭时空推出 RISC-V 全栈开源六轴机械臂产品

    全球80多个国家和地区。 近日,大象机器人联合进迭时空推出全球首款RISC-V全栈开源六轴机器臂“myCobot 280 RISC-V”,为开发者打造全新的机器人开源创新
    发表于 04-25 17:59

    RISC V 开源芯片项目:OpenTitan 详细解读

    OpenTitan 是由 Google 主导的开源安全芯片项目,旨在为硬件系统提供 可信的硬件信任根(Root of Trust, RoT)? ,通过透明化设计和开源协作提升硬件安全水
    的头像 发表于 04-09 14:45 ?1905次阅读
    <b class='flag-5'>RISC</b> <b class='flag-5'>V</b> <b class='flag-5'>开源</b><b class='flag-5'>芯片</b><b class='flag-5'>项目</b>:OpenTitan 详细<b class='flag-5'>解读</b>

    原来,它们用的都是国产RISC-V芯片

    2025年,RISC-V生态迎来重大发展机遇。据媒体报道,中国计划首次发布政策指导,鼓励在全国范围内使用开源RISC-V芯片,以加速减少对西方技术的依赖。
    的头像 发表于 04-02 11:42 ?613次阅读
    原来,它们用的都是国产<b class='flag-5'>RISC-V</b><b class='flag-5'>芯片</b>

    芯来科技携手芯芒科技发布RISC-V CPU系统仿真平台

    专业RISC-V处理器IP及解决方案公司芯来科技与杭州芯芒科技深入合作,共同研发推出芯来全系列RISC-V CPU系统仿真平台。帮助下游SoC和产品开发团队基于该仿真平台快速构建从
    的头像 发表于 03-19 14:36 ?878次阅读

    泰凌微电子RISC-V芯片的应用和优势

    在当今芯片架构的浪潮中,RISC-V正以其开源、灵活和高效能的特点迅速崛起,成为全球芯片市场的“新宠”。
    的头像 发表于 03-10 15:36 ?833次阅读
    泰凌微电子<b class='flag-5'>RISC-V</b><b class='flag-5'>芯片</b>的应用和优势

    关于RISC-V芯片的应用学习总结

    RISC-V芯片作为一种基于精简指令集计算(RISC)原则的开源指令集架构(ISA)芯片,近年来在多个领域展现出了广泛的应用潜力和显著优势。
    发表于 01-29 08:38

    深度数智DC-ROMA RISC-V Laptop II入选IEEE Spectrum“Top Tech 2025”

    深度数智在开源硬件领域的创新突破,也标志着深度数智的RISC-V笔记本在未来计算领域占据了重要位置。IEEESpectrum文章截图深度数智
    的头像 发表于 01-09 17:40 ?821次阅读
    <b class='flag-5'>深度</b>数智DC-ROMA <b class='flag-5'>RISC-V</b> Laptop II入选IEEE Spectrum“Top Tech 2025”

    RISC-V在MCU中有哪些知名的开源项目

    RISC-V在MCU中有哪些知名的开源项目
    发表于 12-30 19:48

    圣诞特辑 |开源芯片系列讲座第25期:RISC-V架构在高性能领域的进展与挑战

    鹭岛论坛开源芯片系列讲座第25期「RISC-V架构在高性能领域的进展与挑战」圣诞夜(周三)20:00精彩开播期待与您云相聚,共襄学术盛宴!|直播信息报告题目RISC-V架构在高性能领域
    的头像 发表于 12-24 08:03 ?889次阅读
    圣诞特辑 |<b class='flag-5'>开源</b><b class='flag-5'>芯片</b>系列讲座第25期:<b class='flag-5'>RISC-V</b>架构在高性能领域的进展与挑战

    RISC-V能否复制Linux 的成功?》

    以及支持社区和生态系统的重要性,还探讨了开源硬件对商业芯片制造商的意义。 质量及生态系统是关键 OpenHW集团总裁兼首席执行官Rick O\'Connor认为RISC-V等同于Linux内核,他在
    发表于 11-26 20:20

    RISC-V拥有巨大市场潜力的原因

    1、开源优势:RISC-V是一个开源的指令集架构,这意味着任何人都可以自由地使用、修改和分发它,这为创新和定制化设计提供了极大的灵活性。中国科学院计算技术研究所与北京开源
    发表于 09-30 14:20