【教程】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组件进行配置上的修改。)

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

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

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

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

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

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

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

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

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

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

生成硬件描述文件

  1. 完成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重新生成系统。

  1. 对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控制器介绍

相关推荐
智感子5 小时前
测控链路:从传感器到上位机
人工智能·嵌入式硬件·fpga开发
szxinmai主板定制专家18 小时前
基于Zynq的高精度多通道数据采集卡完整解决方案(工业振动/高速采集/边缘传输)
fpga开发·zynq·数据采集卡
szxinmai主板定制专家21 小时前
基于TI AM62x+FPGA的24bit高精度数据采集卡设计(振动/风电/发动机监测)
人工智能·fpga开发·arm+fpga·rk3588+fpga
szxinmai主板定制专家1 天前
基于 ARM+FPGA 雕刻机控制系统的设计
arm开发·人工智能·fpga开发·rk3576·半导体设备
吉他英雄一里2 天前
zynq入门教程
fpga开发·zynq
XMAIPC_Robot2 天前
RK3576/RK3588+FPGA+AI数据采集系统:实时性与边缘AI算力兼顾
人工智能·fpga开发·机器人·数据采集·rk3588+fpga·rk3576+fpga
156082072193 天前
JFMRFVU3P5G的bit正常,但烧录mcs程序后加载异常
fpga开发
狂奔蜗牛(bradley)3 天前
把 EtherCAT 初始化从 FPGA 搬到 ARM:命令通道的接口设计与11个坑
arm开发·人工智能·fpga开发·架构
女神下凡4 天前
芯参谋(37):EEPROM_电路设计指南
arm开发·单片机·嵌入式硬件·fpga开发·设计规范
szxinmai主板定制专家5 天前
工业视觉新思路:FPGA图像预处理+RK NPU推理,实现高速缺陷检测
人工智能·嵌入式硬件·fpga开发·rk3576+codesys