D触发器结构
每次在做数字电路的时候,关于时序的问题总会遇到setup、hold,
在搞清楚为什么有这些参数的时候,首先要清楚D触发器的结构
D触发器可以由静态逻辑实现,也可以由动态逻辑实现,这里仅讨论静态CMOS D触发器的结构
构成一个D触发器最普遍方法是采用主从结构,由一个负latch(主级)和正latch(从级)串联而成,而latch可以采用传输门构成。
主从触发器的工程主要是分为一下2个节拍。
那为什么会有建立时间? 首先明确建立时间的概念
建立时间:输入数据D在时钟上升沿之前必须有效的时间
在上图中所示的触发器的具体结构之中,反相器的延时都是tin,传输门的延时都是tx。对于传输门型的主从边沿触发器,输入数据必须在时钟上升沿到来之前必须传播通过I1、T1、I3、I2,这才能保证当时钟上升沿到来导致T2打开时,其两端的电压是相等的,否则交叉耦合反相器就会停留在一个不正确的值。
因此该结构的建立时间
Tsetup=3∗tin+tx
保持时间:输入数据D在时钟上升沿之后必须保持稳定的时间
保持时间其实是为了保证在时钟上升沿之后,D端的数据不能影响触发器在该上升沿采集的数据。我们都知道时钟上升沿之后,主latch将处于锁存状态,也就是D数据是无法传输到主latch中的,那为什么还有这样一个保持时间要求呢?
仔细观察上图结构,D端数据不再影响主latch中数据的条件是当时钟上升沿到来时,传输门T1关断。但是注意,由于从D触发器的D pin和CLK pin到传输门T1的延时是不同的,以及传输门的关断本身需要时间,因此在CLK信号到达传输门T1控制端并且完成关断动作之前,传输门T1前的数据端必须保持不变(注意不是D pin端数据),由此即可计算出保持时间要求。
假设传输门的关断不需要时间,而CLK net上的反相器和D net上的反相器延时相同,那么建立时间就为0
如果CLK net的反相器延时为tclk,D net的反相器延时为tdin,那么保持时间
Thold=tclk−tdinv
参考资料 电子技术基础p246