【教程】Altera Reset Release IP 的介绍与使用举例
一、前言
本文介绍参考Altera的文档:Device Configuration User Guide Agilex™ 5 FPGAs and SoCs 。
本文实操是在 DE23_Lite_HDMI_block_move.rar (链接: https://pan.baidu.com/s/1Tq3V6lccIK_tyeuVE9aBmA 提取码: tera)的基础上进行验证。该案例来自教程:【教程】基于友晶Agilex 3开发板DE23-Lite的HDMI显示方块移动实验(含完整工程免费下载)。
二、为什么需要Reset Release IP
它的核心作用是在FPGA芯片完全配置完成并进入“用户模式”之前,将你的整个用户设计(Application Logic)强制保持在复位(Reset)状态。
换句话说,Reset Release IP 的主要任务是防止你的逻辑在错误的时间启动。在FPGA配置完成、时钟稳定、电源电压达标之前,系统处于一个不确定的中间状态。如果没有这个IP,你的寄存器、状态机等逻辑可能会在电压不稳或时钟未锁定的情况下就开始工作,导致无法预料的错误。
这主要是由现代FPGA的架构决定的。像 Agilex 3、Agilex 5、Agilex 7、Stratix 10等 这样的大容量、高性能FPGA,其内核逻辑分布在多个不同的区域(Sector)。在配置过程中,这些区域是并行且独立地完成初始化的,它们不会在同一时刻精确地退出复位状态。
三、Reset Release IP nINIT_DONE的内部互联示意图
这个IP内部只有一个输出信号:nINIT_DONE,由芯片的配置管理单元(SDM,Secure Device Manager)驱动,当整个器件完全进入用户模式(即配置完成,一切就绪)时,nINIT_DONE信号才会被拉低。
用户可以将nINIT_DONE信号直接连接到所有需要同步复位的模块上,这样就确保它们只在器件完全就绪后才开始工作,从而构建一个稳定可靠的系统启动流程。
四、在设计里面例化Reset Release IP
本文案例使用Quartus Pro 25.3 版本。
编译DE23_Lite_HDMI_block_move工程会提示:
Critical Warning(20759): Use the Reset Release IP in Intel Agilex 3 FPGA designs to ensure a successful configuration. For more information about the Reset Release IP, refer to the Configuration User Guide.
在IP Catalog里面键入release 找到Reset Release IP:
双击进入IP 命名界面,将其命名为reset_release_ip,然后点击Create:
接下会自动进入Reset Release IP的设置界面, 保持设置不变,直接点击Generate HDL...
点击Generate:
点击Close:
这时候,当你打开Project——Add /Remove Files in Project菜单,就可以看到reset_release_ip.ip文件已经被添加到工程了:
接下来是修改 Quartus 工程的top level文件,先找到DE23_Lite_HDMI_block_move\reset_release_ip里面的reset_release_ip_inst.v文件:
拷贝reset_release_ip_inst.v文件的内容到top level文件,修改如下:
将系统里面其他模块的复位信号都改成 sys_rst_n 即可:
重新编译工程将不会再出现Critical Warning(20759): Use the Reset Release IP in Intel Agilex 3 FPGA designs to ensure a successful configuration. For more information about the Reset Release IP, refer to the Configuration User Guide.的提示。
虽然之前没有添加这个IP系统也可以正常运行,但是添加这个IP才是规范操作,防止开发板运行时出现意外。
通过网盘分享的文件:DE23_Lite_HDMI_block_move_reset_release_ip.rar
链接: 百度网盘 请输入提取码 提取码: tera
