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

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

3天内不再提示

基于DE1-SOC开发板的oneAPI实验教程(2)

友晶FPGA 来源:友晶FPGA 2025-06-23 11:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本期我们介绍在DE1-SoC开发板的FPGA上实现并部署Simple DMASimple Adder两个案例。

上一期我们从oneAPI CLI Samples Browser复制保存的Simple DMA是基于Quartus Pro的Nios V示例,无法直接用在DE1-SoC开发板上,因此这一节我们用的Simple DMA是基于Quartus Standard的Nios II 示例,后续会计划用新版Quartus Standard软件将DE1-SoC的oneAPI示例升级到Nios V。

注:请复制链接http://mail.terasic.com.cn/~bingxia/My_First_oneAPI_de1_soc.zip到浏览器去下载My_First_oneAPI_de1_soc BSP,内含example code。

一、配置Simple DMA IP

使用oneAPI DPC++/C++编译器可以将Simple DMA编译成RTL IP硬件模块,然后将RTL IP集成到FPGA,使用Plarform Designer可以将该IP核集成到设计中。

1. 打开Intel oneAPI命令窗口,切换到My_First_oneAPI_de1_socexmple_codesimple_dmakernelssimple_dma路径,执行以下命令创建build文件夹,并指定FPGA为DE1-SoC开发板的5CSEMA5F31C6。

mkdir build && cd build

cmake .. -G "NMake Makefiles" -DFPGA_DEVICE=5CSEMA5F31C6

2eb251ae-4fd3-11f0-b715-92fbcf53809c.png

2. 执行nmake report编译DMA IP,生成IP组件及优化报告。

2eccd8f8-4fd3-11f0-b715-92fbcf53809c.png

3. 打开My_First_oneAPI_de1_socexmple_codesimple_dma路径下的Quartus工程。

2ee60846-4fd3-11f0-b715-92fbcf53809c.png

4. 从Quartus Tools菜单栏里打开Platform Designer,并打开simple_dma/nios2_system.qsys工程。

2ef68766-4fd3-11f0-b715-92fbcf53809c.png

5. 在nios2_system.qsys里添加oneAPI -->simple_dma_report_di IP,并按下图所示连接,再完成Assign Base Addresses。

2f078e44-4fd3-11f0-b715-92fbcf53809c.png

6. 点击Generate HDL-->Generate,生成HDL代码。

2f73567e-4fd3-11f0-b715-92fbcf53809c.png

2f82ea94-4fd3-11f0-b715-92fbcf53809c.png

7. 编译Quartus工程。

2f93a8de-4fd3-11f0-b715-92fbcf53809c.png

8. 将编译生成的.sof文件烧录到FPGA。

2fb00718-4fd3-11f0-b715-92fbcf53809c.png

9. 从Quartus Tools里打开Nios II Software Build Tools for Eclipse,workspace切换到simple_dma/software。

2fc5873c-4fd3-11f0-b715-92fbcf53809c.png

2fd134ba-4fd3-11f0-b715-92fbcf53809c.png

10. 右键点击simple_dma_bsp,选择Nios II > Generate BSP。

2fe4e618-4fd3-11f0-b715-92fbcf53809c.png

11. 右键点击simple_dma -->Run As --> 3 Nios II Hardware。

2ffacc8a-4fd3-11f0-b715-92fbcf53809c.png

12. 在Nios II Console终端上会显示程序运行结果。

300b62fc-4fd3-11f0-b715-92fbcf53809c.png

二、修改Simple DMA为Simple Adder

本节通过对Simple DMA设计进行扩展,添加基本算术功能,将其转换为Simple Adder。在保留原有DMA数据传输机制的同时引入两种类型的常量输入: c1--通过conduit接口提供;c2--通过CSR(Control and Status Register)配置。

在传输过程中,这些常量会被添加到数据中,这为如何在FPGA上集成数据处理和控制逻辑提供了一个示例。

接下来我们将解释如何配置和使用conduit接口与CSR接口以及它们之间的差异,并演示如何在Platform Designer中连接这些接口。我们还将介绍完整的开发流程,包括从SYCL(基于 C++ 的开放标准,用于简化异构计算如 CPUGPU、FPGA 等并行设备的编程)示例代码编译到IP生成、Quartus集成、硬件配置以及在FPGA上验证结果。

conduit接口

SYCL示例代码(My_First_oneAPI_de1_socexmple_codevector_addkernelsvector_addsrcvector_add.cpp)如下,将其配置成conduit。

3018ed1e-4fd3-11f0-b715-92fbcf53809c.png

将代码转换为RTL IP后,该接口就可以在Platform Designer中看到。

30373404-4fd3-11f0-b715-92fbcf53809c.png

导出conduit接口,并在DE1_SOC_golden_top.v文件中例化连接到DE1-SoC开发板的滑动开关。

30557f90-4fd3-11f0-b715-92fbcf53809c.png

控制状态寄存器

常量c2使用控制状态寄存器(CSR)来定义。在内核中声明此变量时,不需要额外的参数,默认为控制状态寄存器(CSR)。

3063e0d0-4fd3-11f0-b715-92fbcf53809c.png

c2的寄存器偏移自动产生,可在kernels/vector_add/build/vector_add.report.prj/include/kernel_headers/VectorAddTwoConst_register_map.h中找到。

3079cf3a-4fd3-11f0-b715-92fbcf53809c.png

测试步骤

按照以下步骤在DE1-SoC开发板的FPGA上实现并部署Simple Adder。

1. 打开Intel oneAPI 命令窗口,执行chcp 65001命令将语言编码更改为UTF-8,并切换到My_First_oneAPI_de1_socexmple_codevector_addkernelsvector_add路径。

308b3cd4-4fd3-11f0-b715-92fbcf53809c.png

2. 执行以下命令创建并切换到build文件夹,以及指定FPGA为DE1-SoC开发板的5CSEMA5F31C6。

mkdir build && cd build

cmake .. -G "NMake Makefiles" -DFPGA_DEVICE=5CSEMA5F31C6

309f8608-4fd3-11f0-b715-92fbcf53809c.png

3. 执行nmake report命令编译Simple Adder IP,生成IP组件以及优化报告。

30b07210-4fd3-11f0-b715-92fbcf53809c.png

4. 打开DE1_SOC_golden_top.qpf工程。

30c9c10c-4fd3-11f0-b715-92fbcf53809c.png

5. 打开vector_add/nios2_system.qsys工程。

30e16906-4fd3-11f0-b715-92fbcf53809c.png

6. 添加oneAPI里的vector_add_report_di,并按下图所示连接。

30fa5efc-4fd3-11f0-b715-92fbcf53809c.png

7. 点击Generate HDL-->Generate生成HDL。

31134732-4fd3-11f0-b715-92fbcf53809c.png

8. 编译Quartus工程,并将生成的.sof烧录到FPGA。

312af472-4fd3-11f0-b715-92fbcf53809c.png

313e1598-4fd3-11f0-b715-92fbcf53809c.png

9. 运行Nios II Software Build Tools for Eclipse,将workspace切换到vector_add/software。

3156bf80-4fd3-11f0-b715-92fbcf53809c.png

31668a1e-4fd3-11f0-b715-92fbcf53809c.png

10. 右键点击vector_add_bsp,选择Nios II -->Generate BSP,生成BSP;右键点击vector_add选择Build Project编译工程。

11. 右键点击vector_add,选择Run As > 3 Nios II Hardware,烧录.elf文件运行工程。然后在Nios II Console终端显示结果。

317684a0-4fd3-11f0-b715-92fbcf53809c.png

三、Q&A

1. Quartus Standard v23.1的Nios II Software Build Tools for Eclipse如果无法运行起来,请参考Getting Start Install Eclipse IDE into Nios EDS文档里的步骤安装Eclipse IDE。

2. vector_add Nios II工程无法编译,请参考Getting Start Install WSL安装WSL。

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

    关注

    1656

    文章

    22291

    浏览量

    630401
  • dma
    dma
    +关注

    关注

    3

    文章

    577

    浏览量

    105370
  • 开发板
    +关注

    关注

    25

    文章

    6128

    浏览量

    113486
  • 编译器
    +关注

    关注

    1

    文章

    1670

    浏览量

    51083

原文标题:基于DE1-SoC的My_First_oneAPI(二)

文章出处:【微信号:友晶FPGA,微信公众号:友晶FPGA】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于DE1-SOC开发板oneAPI实验教程(1

    在算力需求爆炸式增长的时代,异构计算已成为突破性能瓶颈的首选路径。然而,多架构编程困境、传统硬件开发高门槛(如FPGA)、硬件优化与算法快速迭代,这些无不制约着创新的效率。
    的头像 发表于 06-23 11:14 1418次阅读
    基于<b class='flag-5'>DE1-SOC</b><b class='flag-5'>开发板</b>的<b class='flag-5'>oneAPI</b><b class='flag-5'>实验</b>教程(<b class='flag-5'>1</b>)

    基于FPGA开发板DE10-Standard和T-Core的串口通信设计

    本文适用于DE10-Standard、T-Core、DE1-SOC以及DE10-Nano等有GPIO引脚外扩的FPGA开发板
    的头像 发表于 10-28 11:15 4134次阅读
    基于FPGA<b class='flag-5'>开发板</b><b class='flag-5'>DE</b>10-Standard和T-Core的串口通信设计

    基于DE1-SOC开发板的太空射击游戏

    今天继续常春藤名校之一——康奈尔大学的FPGA课程ECE 5760典型案例分享:基于DE1-SOC开发板的太空射击游戏。
    的头像 发表于 08-04 10:47 3469次阅读
    基于<b class='flag-5'>DE1-SOC</b><b class='flag-5'>开发板</b>的太空射击游戏

    求购de1-soc开发版。有的请联系我。急求呢。QQ:528369266

    求购de1-soc开发版。有的请联系我。急求呢。QQ:528369266
    发表于 12-15 16:00

    DE1-SOC新货转让

    本人研究生,在暑假期间参加了一个比赛,获得了一块DE1-SOC作为比赛奖品,于2015年12月26日拿到奖品,淘宝官网上卖价1575,现在想低价转售,暂定价格1200,可议价,开发套件还未拆封,保证
    发表于 12-27 10:43

    DE1-SoC官方自带ControlPanel代码解读与AV图像采集处理?

    DE1-SoC一段时间了,官方给的controlPanel那个示例给出了工具链的安装方式,而且给了用这块开发QT界面的一套流程,目前想在该代码上修改,想结合AV端采集图像,通过Opencv进行图像处理,可如何与Opencv进
    发表于 05-06 22:18

    DE1-Soc用户手册

    DE1-Soc用户手册
    发表于 08-05 16:08

    小弟求购Altera DE1-SOC开发板,哪位大神玩剩下了传承一下,多谢!

    小弟想自学FPGA,预购Altera DE1-SOC。哪位大神玩过了,技术了熟于胸。也别冷落了板子,赠人玫瑰手有余香,请联系小弟,让技术继续发挥余热,价格可谈。 联系方式:***注:10.22不能入手就在淘宝买了,之后就不用耽误大神时间了。非常感谢!
    发表于 11-18 15:00

    Altera DE2 开发板测试说明

    1 安装 Quartus II 5.1 Web Edition Full;2DE2 System 光盘中的全部内容复制到PC 机上,其中DE2_control_panel文件夹内
    发表于 07-21 16:35 0次下载

    如何在DE1-SOC开发板上搭建NIOS II处理器运行UCOS

    介绍了如何在DE1-SOC开发板上搭建NIOS II处理器运行UCOS II,一步一步指导的,特此上传,希望能帮点忙。
    发表于 06-14 15:29 12次下载

    DE1-SoC开发工具包的详细用户和使用手册资料免费下载

    带宽互连主干与FPGA结构无缝连接。DE1-SoC开发板配备了高速DDR3存储器、视频和音频能力、以太网
    发表于 10-16 16:55 113次下载
    <b class='flag-5'>DE1-SoC</b><b class='flag-5'>开发</b>工具包的详细用户和使用手册资料免费下载

    ALTERA公司的DE1 SoC FPGA开发板的培训教程免费下载

    本文档的主要内容详细介绍的是ALTERA公司的DE1 SoC FPGA开发板的培训教程免费下载包括了:第1DE1-SOC 快速入门,第
    发表于 07-08 08:00 45次下载
    ALTERA公司的<b class='flag-5'>DE1</b> <b class='flag-5'>SoC</b> FPGA<b class='flag-5'>开发板</b>的培训教程免费下载

    DE1-SoC结构及电路图

    DE1-SoC结构及电路图免费下载。
    发表于 04-07 11:33 45次下载

    DE1-SOC进行硬件加速的2D N-Body重力模拟器设计

    该项目的目标是创建一个用DE1-SOC进行硬件加速的2D N-Body重力模拟器。
    的头像 发表于 04-09 11:08 1329次阅读
    用<b class='flag-5'>DE1-SOC</b>进行硬件加速的<b class='flag-5'>2</b>D N-Body重力模拟器设计

    在友晶DE1-SOC开发板实现Chirikov标准映射求解器

    该项目是在友晶DE1-SOC开发板实现Chirikov标准映射的求解器,并将其应用于图像加密和解密的概念验证。
    的头像 发表于 07-07 15:22 1637次阅读
    在友晶<b class='flag-5'>DE1-SOC</b><b class='flag-5'>开发板</b>实现Chirikov标准映射求解器