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艺术创作大模型

下载

深入查找相关元件模型(位于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的默认行为,否则可能导致仿真与实际硬件行为不一致。

相关专题

更多
PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

11

2026.01.19

java输出数组相关教程
java输出数组相关教程

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

3

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

4

2026.01.19

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

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

13

2026.01.19

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

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

93

2026.01.18

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

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

112

2026.01.16

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

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

155

2026.01.16

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
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号