FPGA建立时间和保持时间详解
出处:电子发烧友 发布于:2019-06-19 15:25:40
建立时间(Tsu:set up TIme)是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建立的时间不满足要求那么数据将不能在这个时钟上升沿被稳定的打入触发器;保持时间(Th:hold TIme)是指数据稳定后保持的时间,如果保持时间不满足要求那么数据同样也不能被稳定的打入触发器。
建立时间和保持时间这两个指标说明器件本身不是理想的(有时延等),正是这个不理想的特性,限制了FPGA的时钟工作频率。
首先我们都知道setup TIme 和holdup time是由器件决定的,并不是说可以随着你FPGA设计的改变而改变。那么FPGA时钟频率是怎么计算的呢,在不考虑时钟延时抖动等条件下,一个信号从触发器的D端到Q端的延时假设是Tcd,从Q端出来之后会经过组合电路延时,这里注意即使没有组合电路,就单单经过导线也是有延时的,这个延时称作Tdelay,经过这个延时之后,信号将要去下一个触发器,而且必须要满足触发器的建立时间tsetup,不然时钟无法采样到稳定的数据。
所以这三个时间加起来应该比时钟周期要小,否则数据无法打入下一个触发器,那就会进入亚稳态。Tcd+Tdelay+Tsetup
至于FPGA时钟频率与holdup time的关系,具体做设计的时候还是需要满足Tcd+Tdelay+TsetupTholdup,也就是说Tholdup 决定了短路径的下限,也就是说组合逻辑是不能太大也不能太小的。这就是hold time 能起作用的地方吧。其实一般都能满足保持时间,一般只要考虑都是要满足建立时间。
建立时间与保持时间的简单示意图如下图1所示,在图1中我们看到clk_r3的前后各有一条虚线,前一条虚线(左边的虚线,左边代表出现时间早,与modelsim仿真时信号依次从左往右出现)到clk_r3上升沿的这段时间即为建立时间,clk_r3上升沿到后一条虚线(右边的虚线)的这段时间即为保持时间。
前面对建立时间和保持时间下定义时提到过,在这段时间内不能够有数据的变化,数据必须保持稳定。而在这个波形中,也确实没有看到在建立时间和保持时间内,reg3in的数据有任何的变化,因此我们可以稳定的将reg3in的数据锁存到reg3的输出reg3out中。
同样的一些信号,但我们发现reg3in在clk_r3的建立时间内发生了变化,这带来的后果就是clk_r3上升沿锁存到的reg3in数据不确定,那么随后的reg3out值也会处于一个不确定状态。比如个时钟周期,原本reg3in应该是稳定的低电平,但是由于整个路径上的延时时间(Tcd+Tdelay)过长,导致了reg3in在clk_r3的建立时间内数据还未能稳定下来,在建立时间内信号出现了电平从高到低的变化,即不稳定的状态,那么导致的后果就是reg3out的终输出不是确定的状态,很可能是忽高忽低的亚稳态,而不是原本期望的低电平。
我们再来看看保持时间违规的情况,这次是数据传输得太快了(不满足Tcd+Tdelay>Tholdup,也就是Tcd+Tdelay时延太小),原本应该下一个时钟周期到达clk_r3的数据竟然在clk_r3的前一个时钟周期的保持时间还未过去就来到了。因此,它出现的终危害也是后端输出的reg3out处于不确定的状态。
上一篇:LED电路的组成及其性能分析
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 什么是MOS管?NMOS、PMOS和三极管的区别2024/4/30 17:17:10
- MOSFET 开关损耗简介2024/4/29 16:52:06
- 信号二极管详细教程2024/4/28 16:20:03
- ROHM 6432尺寸金属板分流电阻器“PMR100”新增3款超低阻值产品!2024/4/28 15:26:33
- 光耦详细应用教程2024/4/26 16:43:32