我对建立时间和保持时间的理解

来源:互联网 发布:windows wc命令 编辑:程序博客网 时间:2024/05/17 04:12

        这篇文章主要是谈谈我对建立时间和保持时间的理解,文中前四张图片是引用特权同学《FPGA实战演练逻辑篇51:建立时间和保持时间》http://bbs.elecfans.com/jishu_499719_1_1.html (出处: 中国电子技术论坛)一书。我将以这四张图片及其延伸为例,进行推导。

        先说一下建立时间和保持时间的定义。定义都是一致,无异议的,即:

        建立时间(Tsu)是指在时钟上升沿到来之前数据必须保持稳定的时间。

        保持时间(Th)是指在时钟上升沿到来以后数据必须保持稳定的时间。

        它们的存在其实就是为了保证在采样点附近的数据是稳定的,所以对采样点前后的稳态时间做出了要求。

图1

        图1是硬件电路图。

图2 正常工作时的时序逻辑

        图2是能满足建立时间和保持时间要求、正常工作时图1中电路的时序逻辑。其中clk为寄存器reg1和reg2的同步时钟,reg1out是寄存器reg1的输出,reg2out是寄存器reg2的输出,它们也同时是与门的输入。reg3in是与门的输出,同时也是寄存器reg3的输入。clk_r3是寄存器reg3的时钟,本来应该与clk是同步的,但是因为线路延迟所以会落后clk一点。reg3out是寄存器reg3的输出。所有的寄存器都是在时钟上升沿对输入端的数据进行锁存。在clk_r3的上升沿上以及前后共有三条虚线,前两条构成的区间代表芯片要求的建立时间,后两条为保持时间,它们都是保证逻辑正常的最小值,可以从芯片的datasheet中查到。

图3 建立时间正常示意图

        图3中用红色线段标注了5个时间点,从左往右依次为A-E。区间AB是data delay,即数据延迟;区间CE是time delay,即时钟延迟;区间DE即为建立时间(保证工作的最小值)。前两者是实际存在的,可以测量。由此我们可以写出以下公式。








        由此四个式子可以推出:




        这就是我们判断建立时间是否违规的依据。若不满足该不等式,则建立时间违规。




       

图4 建立时间违规

        图4是建立时间违规的例子。可以看到红圈内部reg3in在建立时间的区间内发生了改变,这会导致采样结果不确定。

图5 建立时间违规示意图

        图5中不满足上述不等式,所以违规。

        同理进行保持时间的推导。

图6 保持时间正常示意图

        图6中区间AB为data delay;区间CD为time delay;区间DE为保持时间(保证正常工作的最小值)。





        由此推出:



        这是我们判断保持时间是否违规的依据。若不满足这个不等式,则保持时间违规。

图7 保持时间违规

        图7中红圈内部保持时间违规。


图8 保持时间违规示意图

        图8不满足上述不等式,故违规。


       



0 0
原创粉丝点击