在时序电路设计中,建立时间/保持时间可以说是出现频率最高的几个词之一了,人们对其定义已经耳熟能详,对涉及其的计算(比如检查时序是否正确,计算最大频率等)网上也有很多。但抛开这些表面,建立时间/保持时间到底是如何产生的,了解的人却不是很多。本篇文章就透过现象看本质,打开触发器的“黑盒子”,来了解一下到底什么是建立时间/保持时间。
01
先来看一下建立时间/保持时间的定义:
建立时间(setup time):触发器的时钟信号上升沿到来以前,数据需要保持稳定的时间。
保持时间(hold time):触发器的时钟信号上升沿到来之后,数据需要保持稳定的时间。
值得注意的是,建立/保持时间的概念是针对触发器的特性来说的。但是不仅触发器有建立/保持时间,锁存器也有,而且触发器的建立/保持时间还是基于锁存器的特性得来的。为此,先来了解一下锁存器。
图1 锁存器的符号表示
典型的锁存器如图1所示,包括三个端口:数据输入端d,使能输入端g和数据输出端q。当使能端为高电平时,输出q随输入d变化;当使能端为低电平时,输出保持不变。锁存器的时序如图2所示。
图2 锁存器的时序特性
在使能端由高电平向低电平变化过程中,为了使锁存器正确锁存住数据,需要对输入数据的时间加以约束,因此便有了锁存器的建立时间和保持时间,即图2中的t_setup 和t_hold 。锁存器的这两个时序特性定义跟触发器很相似,不同的是在锁存器上这两个时序约束条件发生在使能端由高电平向低电平转化时。图2中的t_dgq为使能端到输出端的延时。
锁存器在使能信号为高电平时相当于透明,而如何组合锁存器,使其变成只在使能信号边沿锁存数据的触发器呢?答案是两个锁存器串联。如图3(a)所示,串联的前一个锁存器使能端为低电平触发(即反向使能),称为主锁存器,后一个锁存器称为从锁存器。在clk为低电平时,使能主锁存器,主锁存器的输出信号m随输入d变化,此时因为从锁存器未被使能,所以输出信号q无变化;在clk从低电平变为高电平时,m采样输入信号d并且保持,与此同时从锁存器打开,输出端输出被主锁存器锁存的信号值。触发器的符号表示如图3(b)。
图3 (a)两个锁存器组成的触发器 (b)触发器符号表示
为了进一步了解主从锁存器的工作原理,示例的波形图如图4所示。可以看到,当clk为低时,m跟随d变化;当clk由低变高,主锁存器锁存输入值,中间m停止变化,此时从锁存器打开,经过一段延迟后将中间信号送至输出。
图4 两个锁存器组成的触发器时序波形
为了不引起混淆,图4在重画的波形图上给出触发器的时序特性表示。其中t_dcq为触发器从clk端到q端的延迟。需要注意的是,在clk上升后到q端稳定以前,q端可能会变化多次,t_dcq 则是取从clk变化到稳定输出之间的延迟。
图5 触发器的时序特性表示
锁存器的时序特性和触发器的时序特性该如何对应呢?仔细一想就会得到答案:触发器的建立时间和保持时间其实就是主锁存器的建立时间和保持时间,而触发器的clk到q端的延迟t_dcq就是从锁存器的延迟t_dgq。
到这里我们已经打开了触发器的第一层“黑盒子”,但是建立时间和保持时间究竟是如何产生的呢?这就需要打开第二层“黑盒子”——触发器的门电路表示。
02
构成锁存器的电路多种多样,这里我们选择使用传输门和三态门构建的cmos锁存器,电路如图6所示。
图6 锁存器电路
当g为高电平时,传输门ug打开,信号从d端输入,经过ug、u2、u4到达输出端q,此时三态反相器为关闭状态;当g端变为低电平时,传输门关闭,u3打开,此时u2、u3构成双稳态器件将输入信号保持,输出端q也稳定输出双稳态器件保持的信号。
现在来探讨锁存器的建立时间和保持时间。在g为高电平时,输入d变化后为了能输出正确的值,存储器——即双稳态器件必须存储到正确的输入值。这意味着要想使输出正确,在g下降前输入值必须经过u2。由此得出建立时间
t_setup = tg + t2
其中tg和t2分别为传输门和反相器u2的延迟。
当g变为低电平后,输入值需要在传输门关闭之前保持不变,否则输入值就会穿过传输门,从而无法锁存正确的值。传输门的关闭信号需要经过u1,所以得出保持时间
t_hold = t1
其中t1为反相器u1的延迟。
接下来算一下t_dgq。g由高变低后,g的变化经过反相器u1到达传输门ug,使传输门关闭,输入的信号再经过ug、u2、u4到达输出端。所以
t_dgq = t1 + tg + t2 + t4
从输入端到输出端,信号经过了ug、u2、u4,所以输入到输出的延迟
t_ddq = tg + t2 + t4
因为在触发器中t_ddq意义不大,所以在此也不做过多赘述。
有了单个锁存器的基础,接下来进行触发器的探讨也会变得容易很多。
03
由第一段分析可知,触发器是由两个锁存器串联而组成的,由传输门和三态反相器构成的触发器如图7所示:
图7 触发器电路
可以看到在触发器电路中,ug1、u2、u3构成了主锁存器,ug2、u4、u5构成了主锁存器。为了更直观的展示触发器的原理,将图7中的时钟信号用彩色的连线代替,得到图8:
图8 触发器的原理图的直观表示
在图8中,主锁存器和从锁存器分别用虚线框出,红色连线为clk信号,蓝色连线为经过反相器u1后的clk信号。
触发器的建立时间和保持时间与主锁存器的相同:
t_setup = tg1 + t2
t_hold = t1
触发器的clk到q端延迟则为从锁存器的延迟,分析方法与锁存器的分析方法相同:
t_dcq = t1 + tg2 + t4
360N7Pro和OPPOR17哪个好
荣耀9和荣耀v9究竟是谁为难了谁?荣耀9和荣耀v9区别评测对比
温度的不同对于锂电池包来说会有什么影响
极路由正式开启极链全民公测,200万用户可体验区块链服务
顺丰员工闹情绪迟迟不肯发货, 上市之后走向膨胀
到底什么是建立时间/保持时间?
三星note8最新消息:继续提高屏占比,美的简直逆天
【S32K 进阶之旅】Interrupt 模块介绍与应用
华为鸿蒙系统什么时候可以搭载在笔记本电脑上使用
99个项目入选国家“智能制造试点示范项目”
电容器串联电抗器作用
美国市场的梗,华为p10/plus来破!2月26日发布会扬名!
如何强化你的服务器安全11张网络安全思维导图
彻底释放你的双手!Picbot实时面部追踪底座可实现360度旋转自拍
ST以全面解决方案推动NFC创新应用场景落地
Qualcomm的创新驱动物联网发展势头横跨数百个领导品牌
怎么计算密度计
润滑剂与径向密封圈材料的成套解决方案
远程医疗行业生物传感应用中的设计新挑战
油气回收系统的实时在线监测系统设计