0

0

vivado进行仿真时,GSR信号的理解和影响

蓮花仙者

蓮花仙者

发布时间:2025-10-22 13:09:14

|

301人浏览过

|

来源于php中文网

原创

本篇重点探讨在使用vivado进行仿真时,对gsr信号的理解及其可能带来的影响。

当我们在vivado中完成FPGA设计代码与测试激励的编写后,点击“Run Simulation”以启动modelsim等仿真工具进行验证。

此时,在波形窗口中除了能看到自己定义的信号外,还会观察到一个名为GSR的信号。该信号初始为1,大约在100ns时刻由高变低,呈现为一条虚线。

vivado进行仿真时,GSR信号的理解和影响

这个信号从何而来?

实际上,vivado在启动仿真流程时,会自动加载一个名为glbl.v的系统级模块文件。而GSR信号正是在这个全局模块中被声明并驱动的。

它会对仿真结果产生影响吗?

通常情况下,许多工程师会选择直接隐藏或忽略该信号,认为其存在与否不影响功能验证。然而,这种做法在某些场景下可能会掩盖潜在问题。

那么GSR到底有何作用?难道只是一个冗余信号?

直到一次进行时序仿真(post-layout simulation)时,发现了一个异常现象:

vivado进行仿真时,GSR信号的理解和影响

图中所示为两个信号a、b经过一个与门输出y的逻辑路径,且其前级是异步复位寄存器。在GSR仍为高电平期间,尽管a和b均已稳定为高电平,但y并未如预期输出高电平;而当GSR变为0之后,电路行为恢复正常。

这表明:问题很可能出在GSR上。

进一步查看时序仿真的网表文件可知,此时所仿真的并非原始RTL代码,而是综合、实现后由FPGA底层原语构成的门级网表。

(提示:后仿真使用的是映射到实际器件结构的网表文件)

讯飞智作-虚拟主播
讯飞智作-虚拟主播

讯飞智作是一款集AI配音、虚拟人视频生成、PPT生成视频、虚拟人定制等多功能的AI音视频生产平台。已广泛应用于媒体、教育、短视频等领域。

下载

深入查找相关元件模型(位于Xilinx的unisims库中),可以找到FDCE触发器的仿真模型定义。

vivado进行仿真时,GSR信号的理解和影响

继续查看FDCE内部实现细节:

vivado进行仿真时,GSR信号的理解和影响
vivado进行仿真时,GSR信号的理解和影响

可以看出,FDCE的行为受GSR信号控制——在GSR为高期间,无论D输入如何变化,Q输出都将被强制维持在初始状态(通常是0),直到GSR释放(拉低)后,寄存器才开始正常响应时钟和数据输入。

这就解释了前述bug的原因:即使用户复位已经释放,只要GSR仍处于激活状态(高电平),寄存器依然无法更新其输出。

该如何应对这种情况?

解决方案有两种思路:一是调整GSR拉低的时间点(不推荐),二是将有效激励信号的施加时间推迟至GSR释放之后。

建议做法:在进行仿真(尤其是时序仿真)时,确保所有关键信号(包括复位信号)的有效动作延迟至少100ns以上,即避开GSR的默认有效周期。

简要总结GSR的作用机制:它是FPGA内部的一个全局复位信号,用于在上电或配置完成后统一初始化所有寄存器。

在vivado仿真环境中,GSR信号的存在对于准确模拟FPGA真实启动过程至关重要。仿真器会在t=0时刻自动激活GSR一段时间(约100ns),以此模拟硬件上电后配置完成前的全局清零阶段。随后GSR自动释放,用户设计中的逻辑(包括用户自定义复位逻辑)才能真正开始运行。

因此,在波形中关注glbl.GSR的变化时机,以及各寄存器在此期间的状态转换,是验证系统启动顺序和复位可靠性的关键环节。

除非有特殊调试目的,否则不应随意屏蔽或修改GSR的默认行为,否则可能导致仿真与实际硬件行为不一致。

相关专题

更多
PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

7

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

48

2026.01.18

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

106

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

152

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

58

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

44

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

20

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

111

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

45

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SciPy 教程
SciPy 教程

共10课时 | 1.2万人学习

PHP开发微信公众号平台从简到精
PHP开发微信公众号平台从简到精

共25课时 | 5.9万人学习

破釜沉舟,PHP 王者归来!
破釜沉舟,PHP 王者归来!

共5课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号