建立时间和保持时间
- 格式:docx
- 大小:21.66 KB
- 文档页数:2
建立时间和保持时间X 数据∣÷-1 SIr^l<~th~~时钟「tsu:建立时间th:保持时间信号经过传输线到达接收端之后,就牵涉到建立时间和保持时间这两个时序参数,Setup/Hold time是测试芯片对输入信号和时钟信号之间的时间要求, 也就是它们表征了时钟边沿触发前后数据需要在锁存器的输入持续时间,是芯片本身的特性。
建立时间是指触发器的时钟信号提升沿到来以前,数据稳定不变的时间。
输入信号应提前时钟提升沿(如提升沿有效)T时间到达芯片,这个T就是建立时间Setup time.如不满意Setup time,这个数据就不能被这一时钟打入触发器, 只有在下一个时钟提升沿,数据才能被打入触发器;保持时间是指触发器的时钟信号提升沿到来以后,数据也必需保持一段时间,数据保持不变以便能够稳定读取(信号在器件内部通过连线和规律单元时,都有行定的延时。
延时的大小与连线的长短和规律单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。
信号的凹凸电平转换也需要肯定的过渡时间假如hold time 不够,数据便不能被有效读取并转换为输出。
假如数据信号在时钟边沿触发前后持续的时间分别超过建立时间和保持时间,那么这部分超过的重量分别称为建立时间裕量和保持时间裕量。
(这期间其实还涉及到竞争冒险的问题,也就是毛刺,稍后在讨论,建立保持时间的存在即是触发器内部的特性又在屏蔽毛刺方面起到了肯定的作用。
)其实建立时间就是在脉冲信号到来时,输入信号已经稳定等待的时间;而保持时间是信号脉冲到来后,而输入信号还没有到达下降沿的时间。
举个例子:建立时间就是你到伴侣家做客去早了,但是仆人还没回来,你等待的时间就是建立时间;保持时间就是进入房子后,逗留的(有效)时间。
当然在实际测试中我发觉时钟信号也是存在抖动和偏移的。
虽然系统时序设计中对时钟信号的要求特别严格,由于我们全部的时序计算都是以恒定的时钟信号为基准。
关于setup time和hold time2007-10-07 18:58建立时间:决定了触发器之间的组合逻辑的最大延迟保持时间:决定了触发器之间的组合逻辑的最小延迟只有满足了这两个条件触发器的值才会和你希望的一样建立时间:触发器在时钟沿来到前,其数据输入端的数据必须保持不变的时间;保持时间:触发器在时钟沿来到后,其数据输入端的数据必须保持不变的时间因为触发器内部数据的形成是需要一定的时间的,如果不满足建立和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输出将不稳定,在0和1之间变化,这时需要经过一个恢复时间,其输出才能稳定,但稳定后的值并不一定是你的输入值。
这就是为什么要用两级触发器来同步异步输入信号。
这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。
两级触发器可防止亚稳态传播的原理:假设第一级触发器的输入不满足其建立保持时间,它在第一个脉冲沿到来后输出的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输出的亚稳态数据在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间,如果都满足了,在下一个脉冲沿到来时,第二级触发器将不会出现亚稳态,因为其输入端的数据满足其建立保持时间。
同步器有效的条件:第一级触发器进入亚稳态后的恢复时间 + 第二级触发器的建立时间 < = 时钟周期。
1、setup time的意义:为什么Data需要在Clock到达之前到达?其实在实际的问题中,setup time并不一定是大于零的,因为Clock到达时刻并不等同于latch 的传输门A关闭的时刻(更何况这种关闭并不是绝对的和瞬间完成的),这之间有一个未知的延迟时间。
为使问题简化,假设Clock的到达时刻为传输门A关闭、传输们B打开的时刻。
如果Data没有在这之前足够早的时刻到达,那么很有可能内部的feedback线路上的电压还没有达到足够使得inv1翻转的地步(因为inv0有延时,Data有slope,传输门B打开后原来的Q值将通过inv2迫使feedback保持原来的值)。
i2c 建立保持时间原理解释
I2C总线协议是一种常见的串行总线,由一条数据线SDA和一条时钟线SCL组成。
在I2C总线上进行一次数据传输称为一帧,这一过程包括了启动信号、寻址字节以及若干个数据字节。
建立保持时间是电路时序中的重要概念。
建立时间(Tsu)是指触发器时钟上升沿到来之前,数据必须保持不变的时间;保持时间(Th)是指触发器时钟上升沿到来之后,数据必须保持不变的时间。
这两个时间的要求对于电路的正确工作至关重要,因为它们确保了数据的稳定和准确传输。
在I2C总线上,主控器与被控器之间的数据传输也需要遵循建立保持时间的原理。
具体来说,激活(获胜)的主机会根据Hs模式的毛刺抑制要求调整SDAH和SCLH的输入滤波器,同时也会调整建立和保持时间,以及SDAH和SCLH输出级的设置。
总体而言,建立保持时间原理在I2C总线上的应用是为了确保数据传输的准确性和稳定性,防止由于时序问题导致的数据传输错误。
1 什么是Setup 和Holdup时间?建立时间(Setup Time)和保持时间(Hold time)。
建立时间是指在时钟边沿前,数据信号需要保持不变的时间。
保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。
见图1。
如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现metastability的情况。
如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
图1 建立时间和保持时间示意图2什么是竞争与冒险现象?怎样判断?如何消除?在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。
产生毛刺叫冒险。
如果布尔式中有相反的信号则可能产生竞争和冒险现象。
解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。
3 用D触发器实现2倍分频的逻辑电路?Verilog描述:module divide2( clk , clk_o, reset);input clk , reset;output clk_o;wire in;reg out ;always @ ( posedge clk or posedge reset)if ( reset)out <= 0;elseout <= in;assign in = ~out;assign clk_o = out;endmodule图形描述:4 什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?线与逻辑是两个输出信号相连可以实现与的功能。
在硬件上,要用oc门来实现,由于不用oc门可能使灌电流过大,而烧坏逻辑门。
同时在输出端口应加一个上拉电阻。
5 什么是同步逻辑和异步逻辑?同步逻辑是时钟之间有固定的因果关系。
异步逻辑是各时钟之间没有固定的因果关系。
6 请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲器)。
建立时间和保持时间giltch1.jpg图1建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。
如图1 。
数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时间和保持时间的值可以为零。
QUOTE:DC,建立时间不满足,只能重新综合设计,并以违例路径为目标进行优化,以及对涉及到违例的组合逻辑以及子模块加紧约束。
保持时间不满足,可在布图前或者布图后再修改这些违例,通常布图后再修改。
因为布图前综合,时序分析采用统计线载模型,在布局前修正保持时间违例可能会导致布图后建立时间违例。
QUOTE:1、setup time的意义:为什么Data需要在Clock到达之前到达?其实在实际的问题中,setup time并不一定是大于零的,因为Clock到达时刻并不等同于latch的传输门A关闭的时刻(更何况这种关闭并不是绝对的和瞬间完成的),这之间有一个未知的延迟时间。
为使问题简化,假设Clock的到达时刻为传输门A关闭、传输们B打开的时刻。
如果Data没有在这之前足够早的时刻到达,那么很有可能内部的feedback线路上的电压还没有达到足够使得inv1翻转的地步(因为inv0有延时,Data有slope,传输门B打开后原来的Q值将通过inv2迫使feedback保持原来的值)。
如果这种竞争的情况发生,Q的旧值将有可能获胜,使Q不能够寄存住正确的Data值;当然如果feedback上的电压已经达到了足够大的程度也有可能在竞争中取胜,使得Q能够正确输出。
如果inv0、inv1和inv2的延时较大(Data的变化影响feedback和Q的时间越长),那么为了保证正确性就需要更大的setup time。
题目:时钟周期为T,触发器D1的建立时间最大为T1max,最小为Timin。
组合逻辑电路最大延迟为T2max, 最小为T2min。
问,触发器D2的建立时间T3和保持时间应满足什么条件。
Tffpd :触发器输岀的响应时间,也可以理解为触发器输岀在elk上升沿到来后的时间内发生变化,之后稳定,也可以理解输岀延迟。
Tcomb:触发器输出的变化经过组合逻辑元件所需的附加时间,也就是题目中的组合逻辑延迟tsetup:建立时间thold:保持时间telk:时钟周期建立时间容限:这里用容限的概念是为了数学推导方便,时间容限仅仅是一个概念,在这里我们对建立时间容限的要求是大于0,当然有的地方可能就是小于0 了。
同样保持时间容限也是需要大于0的。
从图中,我们可以很清楚的看出,建立时间容限=tclk-tffpd(max)-tcomb(max)-tsetup这里应该理解到,tffpd和teomb都是要考虑最大值的那么根据建立时间容限>=0推导出tsetup<=tclk-tffpd(max)-tcomb(max)这里,我们是不是很清楚了理解了建立时间的要求是<=T-T2MAX,因为题目中没有考虑tffpd。
同理,保持时间容限tffpd(min)+tcomb(min)-thold ,这里是要取最小值,那么根据保持时间容限>=0推导出thold<=tffpd(min)+tcomb(min)因为题目中没有考虑tffpd,而tcomb就是t2min,所以thold<=t2min。
取最小值的原因就是在延时最小的情况下都应该满足保持时间。
否则触发器输入无效。
在这里我们应该发现,从数学上看,虽然既有max又有min,但是thold,和tsetup都是小于最小值,因为tsetup<t-t2max,注意t2max前的负号!这就很符合物理上的思想,对与触发器来说,我们希望它越快越好!也就是建立保持时间越短越好!越不容易进入亚稳态!tclk。
建立时间、保持时间和时序约束条件1、什么是建立时间(Tsu)和保持时间(Th)以上升沿锁存为例,建立时间是指在时钟翻转之前输入的数据D必须保持稳定的时间;保持时间是在时钟翻转之后输入数据D必须保持稳定的时间[1]。
如下图所示,一个数据要在上升沿被锁存,那么这个数据就要在时钟上升沿的建立时间和保持时间内保持稳定。
图1 建立时间和保持时间建立时间与保持时间,是对触发器(或者寄存器)和锁存器而言,以能够稳定准确的锁存或者触发为目的,对其输入数据信号保持稳定的时间要求,具体数值与具体器件的内部结构特点密切相关,不能人为控制。
建立时间和保持时间在时序分析中是一个很重要的准备知识,弄清楚这个两个时间对时序分析的原理的理解很有帮助。
2、根据内部结构分析建立时间和保持时间图2 经典的上升沿D触发器内部结构关于为什么会有建立时间和保持时间,我曾试图从触发器或锁存器内部的结构去分析和证实,但是看了许多资料,由于触发器的内部结构有很多,所以分析方法很多,说法也很多。
下面我选两个比较经典的结构来分析一下建立时间和保持时间。
以经典边沿触发的D触发器为例子,从内部结构上分析一下D触发器建立时间和保持时间。
这个说明主要来源于EETOP的一篇帖子,其结构在维基百科的触发器词条可以得到验证。
如上图所示,这是一个上升沿触发的D触发器,需要注意的是,图中的6个与非门都是有延迟的,也就是在某一时刻输入组合逻辑的数据,在一段时间之后才能影响其输出,这是产生建立时间和保持时间要求的最根本原因。
首先,我们在假设所有的与非门的延迟为0,叙述一下这个触发器的整体工作流程。
当CLK=0时,与非门G3和G4的输出均为1,输出的1反馈到G1和G2作为输入,导致G1和G2的输出分别为D和/D,输出的D和/D又反馈到G3和G4;而G5和G6在此期间一直锁存着之前的数据,不受输入影响。
图3 CLK=0时触发器内部信号详情当CLK=1时,与非门G3和G4的输出变为/D和D,输出到G5和G6作为输入,根据锁存器的原理,G5和G6最终会稳定的输出Q和/Q。
建立时间和保持时间关系详解图1建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。
如图1 。
数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时间和保持时间的值可以为零。
PLD/FPGA开发软件可以自动计算两个相关输入的建立和保持时间。
个人理解:1、建立时间(setup time)触发器在时钟沿到来之前,其数据的输入端的数据必须保持不变的时间;建立时间决定了该触发器之间的组合逻辑的最大延迟。
2、保持时间(hold time)触发器在时钟沿到来之后,其数据输入端的数据必须保持不变的时间;保持时间决定了该触发器之间的组合逻辑的最小延迟。
关于建立时间保持时间的考虑华为题目:时钟周期为T,触发器D1的建立时间最大为T1max,最小为T1min。
组合逻辑电路最大延迟为T2max,最小为T2min。
问:触发器D2的建立时间T3和保持时间T4应满足什么条件?分析:Tffpd:触发器输出的响应时间,也就是触发器的输出在clk时钟上升沿到来之后多长的时间内发生变化并且稳定,也可以理解为触发器的输出延时。
Tcomb:触发器的输出经过组合逻辑所需要的时间,也就是题目中的组合逻辑延迟。
Tsetup:建立时间Thold:保持时间Tclk:时钟周期建立时间容限:相当于保护时间,这里要求建立时间容限大于等于0。
保持时间容限:保持时间容限也要求大于等于0。
由上图可知,建立时间容限=Tclk-Tffpd(max)-Tcomb(max)-Tsetup,根据建立时间容限≥0,也就是Tclk-Tffpd(max)-Tcomb(max)-Tsetup≥0,可以得到触发器D2的Tsetup≤Tclk-Tffpd(max)-Tcomb(max),由于题目没有考虑Tffpd,所以我们认为Tffpd=0,于是得到Tsetup≤T-T2max。
为什么寄存器会有建立时间,保持时间要求,以及传
输延时的概念
寄存器以及建立保持时间,传输延迟的介绍
寄存的图标一般如下图(忽略复位端)。
这里先介绍一下传输门。
CMOS传输门如下图所示。
由一个PMOS和一个NMOS组成。
en接NMOS的G端,en的反向en’接PMOS的G端。
我们知道,NMOS的G端为高电平时,NMOS管两端导通;PMOS的G端为低电平时,PMOS管两端导通。
故当en为高时,PMOS和NMOS管都导通,输入in可以传输到out端;否则,传输门关闭。
问题:为什幺要用两个管子,一个PMOS和一个NMOS来实现传输门,而不只用一个NMOS管,或者PMOS来实现传输门?
答案:前面讲CMOS实现与或门时已经提过。
下面给出主从上升沿触发的寄存器MOS级电路图。
可以看到,前后两级电路一致,就是传输门的clk接法相反,故叫主从式。
建立时间和保持时间
信号经过传输线到达接收端之后,就牵涉到建立时间和保持时间这两个时序参数,Setup/Hold time 是测试芯片对输入信号和时钟信号之间的时间要求,也就是它们表征了时钟边沿触发前后数据需要在锁存器的输入持续时间,是芯片本身的特性。
建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间Setup time.如不满足Setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器;
保持时间是指触发器的时钟信号上升沿到来以后,数据也必须保持一段时间,数据保持不变以便能够稳定读取(信号在器件内部通过连线和逻辑单元时,都有一定的延时。
延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。
信号的高低电平转换也需要一定的过渡时间。
)。
如果hold time 不够,数据便不能被有效读取并转换为输出。
如果数据信号在时钟边沿触发前后持续的时间分别超过建立时间和保持时间,那么这部分超过的分量分别称为建立时间裕量和保持时间裕量。
(这期间其实还涉及到竞争冒险的问题,也就是毛刺,稍后在研究,建立保持时间的存在即是触发器内部的特性又在屏蔽毛刺方面起到了一定的作用。
)其实建立时间就是在脉冲信号到来时,输入信号已经稳定等待的时间;
而保持时间是信号脉冲到来后,而输入信号还没有到达下降沿的时间。
举个例子:建立时间就是你到朋友家做客去早了,但是主人还没回来,你等待的时间就是建立时间;保持时间就是进入房子后,逗留的(有效)时间。
当然在实际测试中我发现时钟信号也是存在抖动和偏移的。
虽然系统时序设计中对时钟信号的要求非常严格,因为我们所有的时序计算都是以恒定的时钟信号为基准。
但实际中时钟信号往往不可能那么理想,常会出现抖动(Jitter)和偏移(Skew)问题。
(估计没有真正稳定的信号)。
所谓抖动(jitter),是指两个时钟周期之间存在的差值,这个误差是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响。
除此之外,还有一种由于周期内信号的占空比发生变化而引起的抖动,称之为半周期抖动。
总的来说,jitter可以认为在时钟信号本身在传输过程中的一些偶然和不定的变化之总和;
时钟偏移(skew)是指同样的时钟产生的多个子时钟信号之间的延时差异。
包含时钟缓冲器的多个输出之间的偏移;也包含由于PCB走线的误差而造成的接收端和驱动端时钟信号之间的偏移。
在时序设计中都需要考虑这些因素。
器件手册中可以查到每个器件的建立和保持时间参数,工程设计的最大目标是尽量提高建立时间裕量和保持时间裕量,以保证系统在外界环境发生有限改变的情况下正常工作。