免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

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

【教程】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中添加PIO1. 在Quartus Prime 25.1.1 中打开DE25-Nano的GHRD工程。2. 在Platform Designer中打开\Demonstration\SoC_FPGA\GHRD\peripheral_subsys\peripheral_subsys.qsys。3. 从IP Catalog搜索PIOParallel 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中断线编号1FPGA 中断在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基地址0x20010060PIO地址空间大小例如 0x1016字节中断号在Platform Designer中HPS分配的SPI编号为18PIO数据位宽2往期阅读【教程】Agilex 5 SOC FPGA的HPS端如何响应FPGA端中断一——GIC控制器介绍
返回列表