news 2026/9/3 15:51:28

【教程】Agilex 5 SOC FPGA的HPS端如何响应FPGA端中断(二)——修改Quartus工程(GHRD工程)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【教程】Agilex 5 SOC FPGA的HPS端如何响应FPGA端中断(二)——修改Quartus工程(GHRD工程)

修改GHRD工程

要在FPGA侧产生按键中断,首先需要在硬件设计中添加一个支持中断输出的PIO外设,并将其中断信号连接到HPS的FPGA中断输入口上。

本教程基于DE25-Nano开发板的GHRD工程,其硬件设计框图可参考下图(截图来自GitHub - altera-opensource/ghrd-socfpga · GitHub):

下面以Button产生中断为例进行PIO添加和配置说明,其实Button对应的PIO已经添加到GHRD当中,本教程中无需再次添加该PIO,本文只是把添加的过程再说明一遍,方便读者学习。

请根据您的开发环境参考教程如何在ubuntu系统上安装和卸载Quartus Prime Pro Edition 25.3 或者 最新版Quartus Prime Pro 25.1 的安装和使用演示(含Questa仿真) 安装好Quartus软件。

在Platform Designer中添加PIO

1. 在Quartus Prime 25.1.1 中打开DE25-Nano的GHRD工程。

2. 在Platform Designer中打开\Demonstration\SoC_FPGA\GHRD\peripheral_subsys\peripheral_subsys.qsys。

3. 从IP Catalog搜索PIO(Parallel I/O) 核并双击它即可将该IP添加到系统。(本教程无需添加新的PIO,只需对现有的PIO组件进行配置上的修改。)

4. 双击System View界面的button_pio组件修改PIO参数:

位宽:根据按键数量设置(DE25-Nano的FPGA端用户按键是2,所以这里位宽从4位修改为2位)

方向:保持Input(用于读取按键状态)设置

边沿捕获寄存器设置:保持选择FALLING,仅在信号下降沿时捕获。保持Enable bit-clearing设置,允许软件清除已捕获的边沿标志位。

中断:使能中断,保持触发类型 EDGE。

5. 系统互联:保持button-pio的时钟、复位信号连接到系统的时钟和复位模块上,以及保持其slave端口继续连接到Avalon Memory Mapped Pipeline Bridge IP上。

6. 端口导出:保持button-pio的external-connection端口和irq端口的导出设置。

7. 分配地址:继续保留0x00010060的地址分配。

8. 连接中断信号:保持将PIO的 irq 输出端口连接到HPS组件的f2h_irq0_in 接口上。

可以看到这里按键的中断对应FPGA中断线编号1,FPGA 中断在HPS中的系统中断编号偏移为 17,所以按键对应系统中断编号为18。

生成硬件描述文件

9. 完成Platform Designer配置后,点击 Generate HDL 生成系统。

qsys_top.qsys包含三个子系统:jtag_subsys、hps_subsys、peripheral_subsys。因为修改过\Demonstration\SoC_FPGA\GHRD\peripheral_subsys\peripheral_subsys.qsys,所以既要对peripheral_subsys.qsys重新生成系统,还要对\Demonstration\SoC_FPGA\GHRD\qsys_top.qsys重新生成系统。

10. 对GHRD工程进行全编译,生成golden_top .sof 配置文件。然后按照连接

【教程】Agilex 5 SoC 的两种启动模式的开发演示(一)(FPGA Configuration First) 将FPGA配置文件固化到QSPI FLASH里面去。

在后续的设备树和驱动开发中,需要用到以下信息:

PIO基地址:0x20010060

PIO地址空间大小:例如 0x10(16字节)

中断号:在Platform Designer中HPS分配的SPI编号为18

PIO数据位宽:2

往期阅读:

【教程】Agilex 5 SOC FPGA的HPS端如何响应FPGA端中断(一)——GIC控制器介绍

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 15:49:13

电赛电磁炮开关电源设计:从UC3843反激拓扑到硬件工程实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 15:48:20

荣耀Magic视界技术深度解析:从SLAM原理到AR应用开发实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 15:44:52

AI眼镜OTA升级接入运动健康数据:从被动问答到主动服务

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 15:43:13

【MATLAB例程】二维萨维茨基-戈莱滑动窗口滤波(SG)图像降噪与质量评价,附MATLAB程序(m文件)的下载链接

完整代码,附下载链接 文章目录程序介绍例程定位算法原理运行结果MATLAB源代码程序介绍 面向灰度图像局部噪声抑制与细节保持问题,独立实现二维萨维茨基-戈莱滑动窗口滤波(SG)。程序在每个局部窗口内拟合二维二次多项式&#xff0c…

作者头像 李华
网站建设 2026/9/3 15:42:19

Go 用 -race 抓数据竞争:一个偶发崩溃的排查、原理与修复

Go 用 -race 抓数据竞争:一个偶发崩溃的排查、原理与修复 你的 Go 服务在本地跑得好好的,压测或上线后偶尔崩一下,报个 fatal error: concurrent map read and map write,或者更诡异——某个计数器统计出来的值总比实际少一点,重启又好了。这类"偶发、难复现、和并发有关&…

作者头像 李华