基础知识~ 建立时间/保持时间
定义
建立时间 Tsu:触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的时间。
建立时间决定了该触发器之间的组合逻辑的最大延迟。
保持时间 Th:触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的时间。
保持时间决定了该触发器之间的组合逻辑的最小延迟。
为什么要满足建立时间和保持时间
因为触发器内部数据的形成是需要一定的时间的。
如果不满足建立和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输出将不稳定,在 0 和 1 之间变化,这时需要经过一个恢复时间,其输出才能稳定,但稳定后的值并不一定是你的输入值。
模型分析
理解建立时间保持时间需要一个模型,如图所示。起点是源触发器 D1 的采样时刻,终点是目的触发器 D2 的采样时刻,假设起点已经满足了建立时间和保持时间要求,现在分析终点采样时刻是否同样满足要求。
用到的参数:
- Tco: 数据正确采样后从 D 端到达 Q 端的延时,触发器固有属性,不可改变
- TDelay: D1 输出端到 D2 输入端的组合逻辑延时和布线延时
- Tsu: 触发器的建立时间,触发器固有属性,不可改变
- Th: 触发器的保持时间,触发器固有属性,不可改变
- Tclk: 时钟周期
- t1: 假设源时钟为 clka,clka 到达 D1 的延时
- t2: 同 t1,是 clka 到达 D2 的延时
假设 clk 传输没有延时:
先假设 clk 的传输没有任何延时,则每一个时钟上升沿都会同时到达 D1 和 D2。
时间起点,第一个时钟沿 D1 的采样时刻,时间终点,第二个时钟沿 D2 的采样时刻。物理起点,D1 的输入端,物理终点,D2 的输入端。
建立时间满足(关注数据头):
第一个时钟沿到来时,数据 data 的头部从起点①开始传输,经过 Tco 到达②,在经过 TDelay到达③。根据建立时间的要求,数据在时钟沿到来之前需要保持稳定的最小时间为 Tsu,假设这里刚好满足建立时间的要求,数据 data 到达③后经过 Tsu 的时间到达了④。计时是从第一个时钟沿开始的,采样在第二个时钟沿,采样的时候 data 在位置④,则有
Tco TDelay Tsu=Tclk
如果不是最极限的情况,则第二个时钟沿到达③时,data 的头部已经超过④,假设超过④的时间为 t,则有
Tco TDelay Tsu t=Tclk,t≥0
即有
Tco TDelay Tsu≤Tclk
如果这条路径是关键路径(Delay 最长),那么系统能跑到的最大频率为
Fmax=min(Tclk)=Tco TDelay Tsu
保持时间满足(关注数据尾):
第二个时钟沿到来时,D2 采集数据 data,同时 D1 在采集数据 new data,所以 data 的尾部在第二个时钟沿到来时开始从 D1 的输入端①开始向前传输,经过 Tco 和 TDelay 后到达 D2的输入端③,所以第二个时钟沿到来之后 data 稳定的时间为Tco TDelay;根据保持时间的定义,有Tco TDelay≥Th
加上 CLK 的传输时延
事实上 Clock 的传输也是有延时的,如图所示,两个触发器的源时钟为 clka,到达 D1 需要t1 的时间,到达 D2 需要 t2 的时间,t2−t1 其实就是我们常说的 clock skew(时钟偏斜),就是同一个时钟沿达到 D1 和 D2 的时延差别,如果 D1 和 D2 离的很远,那么相应的 clockskew 就会更大。
建立时间
加上 clk 传输时延后,变了的是第二个时钟沿到达 D2 的时间,从 Tclk 变为 Tclk t2−t1,所以有
Tco TDelay Tsu≤Tclk t2−t1;
因为 t2 大于 t1,所以对左边时间的限制其实是放宽了。
保持时间
与建立时间相反,因为第二个时钟沿晚来的原因,实际上对保持时间的要求更严格了
Tco TDelay−(t2−t1)≥Th;
从上面的分析可以看到,数据跑得越快(TDelay 越小),时钟传输时延越大(clock skew 越大)对建立时间的满足越有利,而对保持时间的满足越不利,相反则对满足保持时间越有利,对满足建立时间越不利。建立时间还跟时钟周期有关系,时钟周期越小,越容易发生建立时间违例,而保持时间则跟时钟周期没有关系。在设计中,我们常常关注的是建立时间是否满足要求,因为它关系到我们能使用的最小时钟周期有多小,能否跑到预定的工作频率,而因为时钟通常都是走专门的快速线路,很难存在时钟传输时延过大的问题,所以一般也不会出现保持时间违例的情况。
解决办法
对于建立时间违例的解决办法
- 降低时钟频率,即增大时钟周期
- 再时钟路径上加缓冲器(buffer),让时钟晚到来。
- 更换具有更小器件延迟的触发器。
- 组合逻辑优化或插入流水线,缩短关键路径。
对于保持时间违例的解决办法
- 在数据路径上插 buffer
- 更换具有更大器件延迟的触发器
- 优化时钟路径,让时钟更早到来。
可以看出,保持时间和建立时间基本是相反的。但是保持时间与时钟周期无关。
以上是文字说明,参考B站某博主的一个文档,仅支持自己学习,侵权必删!!!如果文字部分没有看懂,这里再提供一个视频讲解。
补充知识点
时间抖动 jitter/偏移 skew
jitter:由于晶振本身稳定性,电源以及温度变化等原因造成了时钟频率的变化,就是 jitter,指的是时钟周期的变化,也就是说时钟周期在不同的周期上可能加长或缩短。它是一个平均值为 0 的平均变量。指两个时钟周期之间存在的差值,这个误差是在时钟发生器内部产生的,和晶振或者 PLL 内部电路有关,布线对其没有影响。由于跟晶振本身的工艺有关,所以在设计中无法避免它能带来的影响,通常只能在设计中留有一定的余量。
skew:是指同样的时钟产生的多个子时钟信号之间的延时差异。skew 通常是时钟相位上的不确定。由于时钟源到达不同寄存器所经历路径的驱动和负载的不同,时钟边沿的位置有所差异,因此就带来了 skew。完成布局布线后,物理路径延时是固定的,所以在设计中考虑到时钟偏移,就可以避免偏移带来的影响。
毛刺 glitch
定义
FPGA 的设计中,毛刺现象是长期困扰电子设计工程师的设计问题之一, 是影响工程师设计效率和数字系统设计有效性和可靠性的主要因素。由于信号在 FPGA 的内部走线和通过逻辑单元时造成的延迟,在多路信号变化的瞬间,组合逻辑的输出常常产生一些小的尖峰,即毛刺信号,这是由 FPGA 内部结构特性决定的。毛刺现象在 FPGA 的设计中是不可避免的有时任何一点毛刺就可以导致系统出错,尤其是对尖峰脉冲或脉冲边沿敏感的电路更是如此。
如何解决该问题?
1 利用冗余项法
利用冗余项消除毛刺有 2 种方法:代数法和卡诺图法,两者都是通过增加冗余项来消除险象,只是前者针对于函数表达式而后者针对于真值表。以卡诺图为例,若两个卡诺圆相切,其对应的电路就可能产生险象。因此,修改卡诺图,在卡诺图的两圆相切处增加一个圆,以增加多余项来消除逻辑冒险。但该法对于计数器型产生的毛刺是无法消除的。
2 采样法
由于冒险多出现在信号发生电平跳变的时刻,即在输出信号的建立时间内会产生毛刺,而在保持时间内不会出现,因此,在输出信号的保持时间内对其进行采样,就可以消除毛刺信号的影响,常用的采样方法有 2 种:一种使用一定宽度的高电平脉冲与输出相与,从而避开了毛刺信号,取得输出信号的电平值。这种方法必须保证采样信号在合适的时间产生,并且只适用于对输出信号时序和脉冲宽度要求不严的情况。另一种更常见的方法叫锁存法,是利用 D 触发器的输入端 D 对毛刺信号不敏感的特点,在输出信号的保持时间内,用触发器读取组合逻辑的输出信号。由于在时钟的上升沿时刻,输出端 Q=D,当输入的信号有毛刺时,只要不发生在时钟的上升沿时刻,输出就不会有毛刺。这种方法类似于将异步电路转化为同步电路,实现简单,但同样会涉及到时序问题。
3 吸收法
由于产生的毛刺实际上是高频窄脉冲,故增加输出滤波,在输出端接上小电容 C 就可以滤除毛刺。但输出波形的前后沿将变坏,在对波形要求较严格时,应再加整形电路,该方法不宜在中间级使用。
4 延迟法
因为毛刺最终是由于延迟造成的,所以可以找出产生延迟的支路。对于相对延迟小的支路,加上毛刺宽度的延迟可以消除毛刺。但有时随着负载增加,毛刺会继续出现,而且,当温度变化,所加的电压变化或要增加逻辑门时,所加的延迟是不同的,必须重新设计延迟线,因而这种方法也是有局限性的。而且采用延迟线的方法产生延迟会由于环境温度的变化而使系统可靠性变差。
5 硬件描述语言法
这种方法是从硬件描述语言入手,找出毛刺产生的根本原因,改变语言设计,产生满足要求的功能模块,来代替原来的逻辑功能块。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfakke
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01