微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 从D触发器的逻辑结构说明建立时间和保持时间

从D触发器的逻辑结构说明建立时间和保持时间

时间:10-02 整理:3721RD 点击:
从D触发器的角度说明建立和保持时间.




上图是用与非门实现的D触发器的逻辑结构图,CP是时钟信号输入端,S和R分别是置位和清零信号,低有效; D是信号输入端,Q信号输出端;
这里先说一下D触发器实现的原理:(假设S和R信号均为高,不进行置位和清零操作)
CP=0时: G3和G4关闭,Q3和Q4输出为’1’。那么G5和G6打开,Q5=D,Q6=/D。Q5,Q6
        的信号随输入信号D的改变而变化; G1和G2构成一个SR锁存器,我们知道,当
        SR锁存器的S、R的输入均为高的时候,锁存器的输出保持不变,所以Q和/Q保
        持不变.
CP从0跳变为1时: G3和G4打开,Q3=Q6=/D,Q4=Q5=D。由SR锁存器的特性,Q=Q3=D,/Q=/D;
CP=1时: 不管D怎么变化,Q3和Q4的信号都不会发生变化,所以输出也不会改变,具体原因由兴趣的可以推一下;
下面就又重复CP=0的时刻了.
从上面的分析可以知道,输入信号D是在CP=0的时刻,经过与G5和G6两个与非门的延迟Tsu之后才传输到Q5和Q6端的,然后再CP跳变为1的时候被锁存到输出端的.
我们假设Tsu=5ns,如果D输入信号在CP跳变为1之前4ns(<5ns)的时候,才发生变化,那么在CP跳变为1时,输入信号D还没有传输到Q5和Q6,SR锁存器锁存的将是D变化之前的数据。也就是说D输入信号只有在CP跳变之前>Tsu的时间里准备好,触发器才能将数据锁存到Q输出端口,也就是所说的要保证信号的建立时间.
在CP跳变为1之后,Q5和Q6的信号要经过G3和G4两个与非门的延迟(Thd)才能传递到Q3和Q4,构成SR锁存器之前的D输入的阻塞,保证在CP=1是输入数据变化不会影响锁存结果。
我们假设Thd=5ns,如果D输入信号在CP跳变为1之后5ns内发生跳变,因为此时Q3和Q4还没发生变化,均为’1’,Q5和Q6的状态将会发生跳变。在CP=1的时刻,Q3和Q4跟随Q5、Q6的改变也发生跳变,末端SR锁存器的输出Q也发生跳变,造成输出结果不对。   也就是说在CP跳变为1之后的Thd时间内,D信号不能发生变化,也就是所说的要保证信号的保持时间(Thd)。
以上是小弟今天重温数电的时候的一点小看法,有什么不足的或不对的,希望各位大神不吝赐教!

分析很好。但是在标准单元中的D触发器并不是用这个电路实现的。所以这个说明针对的不是MOS管级的设计,在ASIC和FPGA设计分析中用处不大,只能作为直观的理解参考。如果深究的话可以看看设计透视那本书。



    恩,这个只是结合TTL电路的与非门结构的D触发器的一个说明,有时间会再深入分析这个问题的...

不明白。



  好帖,从原理上说明建立保持时间,对数字前端的IT民工兄弟很有帮助啊:)

好,很脱俗



    “我们假设Thd=5ns,如果D输入信号在CP跳变为1之后5ns内发生跳变,因为此时Q3和Q4还没发生变化,均为’1’,Q5和Q6的状态将会发生跳变。”
  setup能够理解,这个hold有点疑问,CP在变为1之后,Q5,Q6的逻辑不是已经关闭了吗,为什么D的数据还能传进来?



    cp=1需要经过一个与非门的延迟T之后才能关闭Q5,Q6的逻辑,也就是说如果在T时间内D的输入有变化,还是可以通过Q5,Q6传输过来的.

是不是在连续传送数据的情况下,如果建立时间不满足,所有的数据都会被延迟一个时钟得到?

请小编在此基础上对“亚稳态”做一些分析!



    下午想了好久这个保持时间
   和我的想法是一样的 时钟拉低以后 前面一级不会立刻封住 此时前面一级的输入会造成后面一些不可预知的状态,而后面一级已经开始采样前面一级的输出了……
不过我后来想好像标准单元里那种前一级是由传输门控制的结构话 传输门封住的时候 D的变化似乎不存在这个保持时间问题

看了这个终于对建立时间和保持时间有一点理解了,谢谢小编!

好贴!

分析的很详细

分析的挺好的

很喜欢这种深入的分析,支持小编



    弱弱的问一下设计透视那本书的书名叫什么?

Digital Integrated Circuits: A Design Perspective

不懂是什么

学习了 不错

分析的挺好的。

路过,看看

现在用mos组件的DFF不一定是这种结构了

学习了

好贴,支持一下啊

   想法很好

我的理解,请各位评论一下:
现在的D触发器一般由反向器和传输门组成,2级结构。
Setup time的意义:数据从D端进入后到达存储节点(第一级结构)需要一定时间(传输门和反向器的器件延迟),假如时钟跳高前这段时间无法得到满足,存储节点会处于中间的亚稳态。
Hold time的意义:D触发器内部用到了时钟的正反相位,理论上应该是边沿严格对齐,但是实际情况下,会出现同是00的状态和同是11的状态(时钟从高跳低的时候出现00,从低跳高出现11),导致在一段时间内(11情况下)Q和D直接连接,假如这时D不稳定,Q就会出现亚稳态,所以在时钟跳高后也要求D稳定一段时间,这就是hold time.


值得学习,总结的很好

理解了一些,过于细节了,看的很绕头!这种电路深入没有实际意义的!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top