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

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

3天内不再提示

自制RISC-V源码与设计流程案例分析

454398 来源:PYNQ开源社区 作者:PYNQ开源社区 2020-11-08 10:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Overlay 简介

RISC-V-On-PYNQ Overlay实现了在PYNQ-Z2板上的RISC-V处理器及工具链集成,并提供了完整的RISC-V源码与设计流程,得益于PYNQ软件框架,其支持在Jupyter Notebook对RISC-V进行编译、调试与验证,即可以在Jupyter Notebook上编写一段C/C++/RISC-V汇编程序,将编译后的二进制文件放到picoRV32上运行。

以下两张图是本Overlay的系统框图,其中picoRV32是一个开源的RISC-V核,它具有占用资源少的特点,并且它自带AXI接口,可以方便地使用Xilinx提供的各种基于AXI总线的IP。本项目有两个工程,它们的区别主要是picoRV32接的RAM:上图只使用BRAM,而下图同时使用到了BRAM和外部DRAM

快速开始

- 环境需求PYNQ V2.4。

- 在PS端,我们需要编译安装RISC-V工具链和对应的库。

Github内的项目文件Clone到本地。

git clone

https://github.com/Siudya/RISC-V-On-PYNQ.git /home/xilinx/ RISC-V-On-PYNQ

在RISC-V-On-PYNQ/notebooks/tutorial中有5个Notebook,包含了Overlay完整的部署流程。

鉴于从零开始部署的时间会较长,所以我们也提供了完整的镜像文件,直接烧录到SD卡就可以运行(注:提供的ext4分区剩余容量较小,请用户根据需要自行调整)。

在OpenHW的远程PYNQ实验平台上也已经为大家安装好了环境,可以直接使用。

示例Notebook

装好Overlay后,打开RISC-V-Examples/PicoRV32 Processor Mixed-Memory Processor Demo.ipynb,这是使用DRAM和BRAM混合储存器的示例工程。实际上代码与使用只BRAM的工程类似,只不过使用了不同的bit文件。

开始时下载bit文件,在这个过程中所有驱动都会注册完成。

可以用help函数查看Overlay和processor的有关信息,可以看到,这里的Overlay和processor使用了本项目设计的驱动,这说明驱动注册成功了。

在Notebook中包含了一段C程序,作用是返回一个数组的第二个元素。可以看到我们使用了python magics来声明并编译一段C程序,这和PYNQ本身对Microblaze核的编程方法类似。然后调用processor的run方法将程序装载进RAM中来运行picoRV32。

我们也可以调用BRAM controller的mmio来看看内存的情况。在这之后也有使用C++和汇编程序的例子,这里不作赘述,读者通过执行Jupyter Notebook中的代码来体验。

Overlay详解

- PS与PL功能划分

PS部分主要是用Python通过PYNQ框架控制PL中各IP的运行。

PL部分则例化一个pcioRV32核和和BRAM。

- Vivado工程block design介绍

具体硬件设计是这样的:

上图是项目的总体布局,下图是processor展开后的内容。

其中BRAM是一个双口RAM,它两端连接的是PS和picoRV32。另外,可以看到PS的GPIO连接的是processor的复位端,当二进制程序装入BRAM后,复位picoRV32,使它运行程序。picoRV32运行结束后,会触发一个中断。利用这个设计,可以例化许多RISC-V核心,并让其运行独立的程序,实现一个灵活可配置的众核处理器,事实上已经有用这种方法实现了例化超过一千个RISC-V核的项目。

在Processor内部,picoRV32通过AXI总线来访问其他IP,可以使用AXI总线来给它增加各种各样不同的外设。在这里,本项目只是添加了另一个内存(通过PS的HP AXI 0接口访问内存控制器)。

另外,这里的picoRV32核心的运行频率可以通过利用AXI总线配置时钟资源来调整。

注意:RISC-V核的hierarchy名字必须为processor,并且processor中的复位模块必须为rscvReset。如果改动这些名字,必须修改对应的驱动源文件,否则不能正确加载驱动。

Overlay API介绍

在此工程中,通过riscvc、riscvcpp和riscvasm这三个python magics来编译一段程序。例如:%%riscvcpp test_cpp overlay.processor。其中test_cpp是程序的名字,overlay.processor是想要写入的RISCV核hierarchy的名字。然后在本cell中编写代码,运行后将调用前面安装的RISC-V的工具链编译。

编译成功后,利用processor的run方法运行程序。例如:overlay.processor.run(test_cpp, test_cpp_arg)。其中test_cpp是程序名字,test_cpp_arg是参数数组,它兼容numpy的类型。

对于更详细的解释,可以参看前面的tutorial中5个notebook和项目中的.py源文件。

编辑:hfy

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

    关注

    73

    文章

    2209

    浏览量

    132175
  • AXI
    AXI
    +关注

    关注

    1

    文章

    145

    浏览量

    18057
  • 内存控制器
    +关注

    关注

    0

    文章

    40

    浏览量

    9463
  • RISC-V
    +关注

    关注

    49

    文章

    2985

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    图解芯技术 | RISC-V 同构融合计算

    图解芯技术 | RISC-V 同构融合计算
    的头像 发表于 05-20 18:04 95次阅读
    图解芯技术 | <b class='flag-5'>RISC-V</b> 同构融合计算

    RT-Thread 邀您参与“开放・连接”2026玄铁 RISC-V 生态大会,携手共铸 RISC-V“芯”纪元

    2026年3月24日,由浦东新区人民政府科经委指导,达摩院主办,上海开放处理器产业创新中心、RISC-V工作委员会、中国开放指令(RISC-V)生态联盟联合协办的本届玄铁RISC-V生态大会,将在
    的头像 发表于 03-22 10:05 700次阅读
    RT-Thread 邀您参与“开放・连接”2026玄铁 <b class='flag-5'>RISC-V</b> 生态大会,携手共铸 <b class='flag-5'>RISC-V</b>“芯”纪元

    RISC-V不支持 Nx吗?

    RISC-V architecture! · nrwl/nx · Discussion #27915 如果能够支持 RISC-V,那就太好了。目前我无法在我的 VisionFive2 板上
    发表于 02-04 06:27

    重磅合作!Quintauris 联手 SiFive,加速 RISC-V 在嵌入式与 AI 领域落地

    SoC 开发流程,帮开发者省时间; 优化下一代 RISC-V 设计的性能和能效,进一步拉高性能上限; 把 RISC-V 打造成能和传统专有处理器架构抗衡的方案,毕竟 RISC-V
    发表于 12-18 12:01

    为什么RISC-V是嵌入式应用的最佳选择

    最近RISC-V基金会在社交媒体上发文,文章说物联网和嵌入式系统正在迅速发展,需要更高的计算性能、更低的功耗和人工智能。RISC-V是为未来而建的,包括超高效的MCU到高性能应用处理器,RISC-V使开发人员能够设计以下解决方案
    的头像 发表于 11-07 10:09 1957次阅读

    RISC-V B扩展介绍及实现

    B扩展简介 RISCV B扩展指的是RISCV用于位运算加速的一个扩展指令集,目的是使用一条指令实现原本需要2-3条指令才能实现的位操作指令。具体包含内容如下: B扩展就是RISC-V一个可选
    发表于 10-21 13:01

    大湾区RISC-V生态全景展示:RISC-V生态发展论坛、开发者Workshop和生态应用专区

    继7月份上海的RISC-V中国峰会之后,中国RISC-V生态和产业发展最新动态将在10月份深圳的湾芯展上全景展示。   RISC-V,这个以开放、简约、模块化重塑处理器架构格局的开源指令集(ISA
    的头像 发表于 10-13 09:18 840次阅读
    大湾区<b class='flag-5'>RISC-V</b>生态全景展示:<b class='flag-5'>RISC-V</b>生态发展论坛、开发者Workshop和生态应用专区

    普华基础软件亮相2025 RISC-V中国峰会

    此前,7月16日至18日,第五届RISC-V中国峰会在上海盛大召开。普华基础软件副总经理兼战略研究院院长张晓先受邀参会,发表《开源小满助力RISC-V软硬协同生态发展》主题演讲,分享了开源小满
    的头像 发表于 07-28 16:51 1431次阅读
    普华基础软件亮相2025 <b class='flag-5'>RISC-V</b>中国峰会

    RISC-V 手册

    以下是关于RISC-V的详细介绍,结合其核心技术特点与当前发展现状:核心概念RISC-V(第五代精简指令集)是一种基于精简指令集(RISC)的开源指令集架构(ISA),由加州大学伯克利分校于2010
    发表于 07-28 16:27 11次下载

    2025新思科技RISC-V科技日活动圆满结束

    新思科技深度参与2025 RISC-V中国峰会并于2025年7月16日举办同期活动“新思科技RISC-V科技日”技术论坛,聚焦“从芯片到系统重构RISC-V创新”主题,议题覆盖当前最前沿的技术领域
    的头像 发表于 07-25 17:31 1681次阅读

    时擎科技亮相2025 RISC-V中国峰会,深度解析高性能RISC-V SoC技术挑战与创新

    2025年7月16-18日,第五届RISC-V中国峰会在上海张江科学会堂成功举办,作为全球RISC-V领域顶级盛会之一,本届峰会汇聚了数百家企业、研究机构及开源社区,共同探讨RISC-V生态
    的头像 发表于 07-21 17:37 1940次阅读
    时擎科技亮相2025 <b class='flag-5'>RISC-V</b>中国峰会,深度解析高性能<b class='flag-5'>RISC-V</b> SoC技术挑战与创新

    RISC-V 发展态势与红帽系统适配进展

    2025 年 7 月 18 日,在第五届(2025)RISC-V 中国峰会的软件与生态系统分论坛上,红帽软件(北京)有限公司首席软件工程师、RISC-V 国际基金会大使傅炜分享的主题是《红帽在
    发表于 07-18 10:55 4281次阅读
    <b class='flag-5'>RISC-V</b> 发展态势与红帽系统适配进展

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

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

    RISC-V International CEO:RISC-V 应用全面开花,2031 年渗透率将达 25.7%

    7 月 16 日~19 日,第五届(2025)RISC-V 中国峰会在上海张江科学会堂拉开帷幕。峰会设置 1 场主论坛、8 大垂直领域分论坛、多场研习会及多项同期活动。在 7 月 17 日的主论坛上
    发表于 07-17 10:28 3835次阅读
    <b class='flag-5'>RISC-V</b> International CEO:<b class='flag-5'>RISC-V</b> 应用全面开花,2031 年渗透率将达 25.7%

    RISC-V和ARM有何区别?

    在微处理器架构领域,ARM与RISC-V是两个备受关注的体系。ZLG致远电子在推出ARM核心版后,又推出了基于RISC-V的MR6450核心版,这引发了人们对这两种架构差异的深入探讨。ARM
    的头像 发表于 06-24 11:38 2372次阅读
    <b class='flag-5'>RISC-V</b>和ARM有何区别?