官方论坛
官方淘宝
官方博客
微信公众号
点击联系吴工 点击联系周老师
您的当前位置:主页-old > 教程中心 > 问题解答 >

在仿真的时候,出现“半个时钟周期”信号是怎么回事?

发布时间:2023-04-13   作者:wuqi 浏览量:
在仿真的时候,出现“半个时钟周期”信号是怎么回事?如下图





答:FPGA在做功能仿真的时候,通常是如下理想的波形:数据变化和时钟上升沿是对齐的。


上面是理想的波形。但实际上,FPGA是硬件电路来的,信号是在时钟上升沿的触发下变化的,即先有时钟上升沿,再有信号的变化。信号的变化,是稍微延迟于时钟的。因此更实际一点的波形如下图。

我们编写测试文件的时候,是模拟数字电路的情况,因此在给激励的时候,就应该模拟上图那样给信号,比较理想的情况,是信号稍微延迟于时钟上升沿一点点,例如延迟1个单位:#1。(这个时候时钟波形就是“1个周期-1ns”,总之不是一个完整时钟周期)
但是很多情况下,有没有必要延迟上升沿一点点呢?延时多一点点(例如改为#5)也无所谓嘛,这个时候波形就像是“1个周期-5ns”(也不是一个完整周期)。反正你看代码的时候,只看时钟上升沿有效的时刻就可以了。
如果你有强迫症,那您就把那个#5改为#1,甚至改为#0.01都行,越小,越像是一个完整的周期。
BY THE WAY,其实纠结于上面问题,最根本原因,是“凭感觉来做设计”,因为觉得“看起来不是一个完整周期”(差5ns和差1ns其实都不是一个完整周期)。其实只要做过仿真,对着代码和波形多对比,是很容易找到问题所在的。 
   拓展阅读