建立时间和保持时间
建立时间和保持时间
建立时间和保持时间X 数据∣÷-1 SIr^l<~th~~时钟「tsu:建立时间th:保持时间信号经过传输线到达接收端之后,就牵涉到建立时间和保持时间这两个时序参数,Setup/Hold time是测试芯片对输入信号和时钟信号之间的时间要求, 也就是它们表征了时钟边沿触发前后数据需要在锁存器的输入持续时间,是芯片本身的特性。
建立时间是指触发器的时钟信号提升沿到来以前,数据稳定不变的时间。
输入信号应提前时钟提升沿(如提升沿有效)T时间到达芯片,这个T就是建立时间Setup time.如不满意Setup time,这个数据就不能被这一时钟打入触发器, 只有在下一个时钟提升沿,数据才能被打入触发器;保持时间是指触发器的时钟信号提升沿到来以后,数据也必需保持一段时间,数据保持不变以便能够稳定读取(信号在器件内部通过连线和规律单元时,都有行定的延时。
延时的大小与连线的长短和规律单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。
信号的凹凸电平转换也需要肯定的过渡时间假如hold time 不够,数据便不能被有效读取并转换为输出。
假如数据信号在时钟边沿触发前后持续的时间分别超过建立时间和保持时间,那么这部分超过的重量分别称为建立时间裕量和保持时间裕量。
(这期间其实还涉及到竞争冒险的问题,也就是毛刺,稍后在讨论,建立保持时间的存在即是触发器内部的特性又在屏蔽毛刺方面起到了肯定的作用。
)其实建立时间就是在脉冲信号到来时,输入信号已经稳定等待的时间;而保持时间是信号脉冲到来后,而输入信号还没有到达下降沿的时间。
举个例子:建立时间就是你到伴侣家做客去早了,但是仆人还没回来,你等待的时间就是建立时间;保持时间就是进入房子后,逗留的(有效)时间。
当然在实际测试中我发觉时钟信号也是存在抖动和偏移的。
虽然系统时序设计中对时钟信号的要求特别严格,由于我们全部的时序计算都是以恒定的时钟信号为基准。
数据传输模型(建立时间与保持时间)
数据传输模型(建⽴时间与保持时间)关于建⽴时间和保持时间的详细介绍以及相关例题可以参考以下⽂章:在介绍数据传输模型之前必须要了解的两个概念是建⽴时间和保持时间,下⾯就介绍⼀下建⽴时间和保持时间的含义及其物理意义?建⽴时间就是时钟触发事件来临之前,数据需要保持稳定的最⼩时间,以便数据能够被时钟正确的采样。
保持时间就是时钟触发事件来临之后,数据需要保持稳定的最⼩时间,以便数据能够被电路准确的传输。
可以通俗的理解为:时钟到来之前,数据需要提前准备好;时钟到来之后,数据还要稳定⼀段时间。
建⽴时间和保持时间组成了数据稳定的窗⼝,如下图所⽰。
下⾯看⼀种典型的上升沿 D 触发器,来说明建⽴时间和保持时间的由来。
G1~G4 与⾮门是维持阻塞电路,G5~G6 组成 RS 触发器。
时钟直接作⽤在 G2/G3 门上,时钟为低时 G2/G3 通道关闭,为⾼时通道打开,进⾏数据的采样传输。
但数据传输到 G2/G3 门之前,会经过 G4/G1 与⾮门,将引⼊时间延迟。
引⼊建⽴时间的概念,就是为了补偿数据在 G4/G1 门上的延迟。
即时钟到来之前,G2/G3 端的输⼊数据需要准备好,以便数据能够被正确的采样。
数据被时钟采样完毕后,传输到 RS 触发器进⾏锁存之前,也需要经过 G2/G3 门,也会引⼊延迟。
保持时间就是为了补偿数据在 G2/G3 门上的延迟。
即时钟到来之后,要保证数据能够正确的传输到 G6/G5 与⾮门输⼊端。
如果数据在传输中不满⾜建⽴时间或保持时间,则会处于亚稳态,导致传输出错。
1、数据发起时间沿和捕获时间沿CLK。
(1)输⼊端⼝到FPGA内部的第⼀级触发器;(2)FPGA内部寄存器之间的路径;(3)FPGA内部末级触发器到输出端⼝的路径;如果是hold的数据到达时间,则是从Capture Edge开始,再加上Tclka+Tco+Tdata;也即⽐setup的数据到达之间多了⼀个clk的时间。
这⾥是需要区分的,因为后⾯计算setup和hold的裕量时会⽤到。
建立时间、保持时间、建立余量、保持余量的理解
建立时间、保持时间、建立余量、保持余量的理解分析说明:D2:目的寄存器;D1:源寄存器;edge2:下一个时钟上升沿;edge1:当前时钟上升沿;edge0:当前时钟上升沿的前一个时钟沿;如下图:建立时间:触发器D2(数据要到达目的的地方)在时钟上升沿edge1(以edge1是当前的时钟上升沿)输入端的数据data1(data1是edge0时D1打给D1的数据,或者说是edge0时刻D1的输出。
edge0是edge1的前一个上升沿)的前一段时间t_setup要求data1数据稳定(为什么要这样要求呢?)。
很明显建立时间是对D2的输入数据的时间要求,或者说data1要在edge1来之前的某段时间内到达D2。
1、为什么要求建立时间呢?为了使数据正确的锁存就需要数据是稳定的,如果知道触发器的实现电路的话。
如果在edge1-t_setup到edge1这段时间有可能变动的话,就会造成不知道锁存的是1还是0,这就是所说的亚稳态情况之一。
这样是不能使数据可靠传输的。
所以需要建立时间。
2、数据data1(来自触发器D1,即数据源)要传输到D2的输入端,这个数据data1到达D2时间t12如何计算呢?在edge0来的时候之后的某个很小的时间t1(可以认为是触发器的传播延时),开始由D1出发,经过组合逻辑延时t2,到达D2(数据的目的地)。
答案已经知道t12= t1 + t2。
(一定要注意当前时刻是edge1,对于t12的分析是以edge0作为参考时钟。
为什么要这样呢?看3小点。
)此时时钟到达D2,D1的差没有考虑,即时钟抖动。
还有t2一般都是给最大延时,最小延时即t2max, t2min。
具体用哪个看等等说。
3、在当前时刻edge1的D2 data1建立时间的时候,那data1的数据在什么时候由D1输出呢?再次强调建立时间是分析D2输入端的数据时间要求。
此时刻即edge1,D2输入端的数据在哪个时刻由D1发出呢(假设在同步系统中,为什么要做这个假设呢?)?肯定是在某个edge,或者说是……edge2,edge1,还是edge0,edge(-1),………。
建立保持时间的理解
建⽴保持时间的理解
建⽴保持时间的基本概念
1. 建⽴时间
建⽴时间,也就是数据在时钟达到之前需要维持稳定的时间。
以时序逻辑中常见的D触发器为例,数据从D端⼝开始,当时钟边沿到达,数据电平开始影响输出,直⾄输出等于输⼊。
这个过程中,数据电平需要提前于时钟,以确保数据不会由于触发器内部延时导致数据丢失。
2. 保持时间
保持时间,也就是数据在时钟到达后需要维持稳定的时间。
时钟不可能在边沿⼀结束就将触发器稳定关闭,如果此时数据过早变化,则数据可能会被⼆次修改。
3. 延时
建⽴时间和保持时间不是实际的延时,只是⼀个可以接受的范围。
延时是存在于物理硬件上的,建⽴保持时间是基于延时得到的。
建⽴保持时间和延时的加和构成了时序收敛的条件。
收敛的特征简单理解就是⼀个周期内,数据能够跨过所有的延时完成数据的延时。
建⽴保持时间的作⽤
1. 时序分析
建⽴时间和保持时间是静态时序分析的两个主要⽅向。
通过解析建⽴时间余量和保持时间余量可以有效得到数据的传输稳定与否。
(⼤部分情况下是理论上的稳定)
2. 性能优化
根据时间余量,可以了解那个部分的设计速度较快,哪个部分的速度慢。
⽤速度快得替换速度慢的,即可得到更⾼性能的设计。
建⽴保持时间的理解
建⽴时间等于本时钟发送数据的时间减去本时钟到达的时间;
保持时间等于上⼀个时钟到达的时间减去本时钟发送数据的时间;
建⽴时间就是能否按时在下⼀个周期接受到数据;
保持时间就是能否稳住上⼀个周期的数据;
具体设计内容可以从时序分析报告中查看。
建立时间与保持时间
欢迎讨论!
图
建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变 的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;
保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的 时间,如果保持时间不够,数据同样不能被打入触发器。
下面用数字来说明一下加深理解(以下举例暂不考虑hold time):
建立时间
假设Tco(触发器固有的建立时间)=2ns
假设
假设2,Clock delay="0",data Delay = 3ns,那么数据port的新数据必须 在时钟port的时钟沿到来之前5ns就得赶到数据port,其中的3ns用来使新数据 从数据port赶到触发器的D端(由于data Delay),剩下的2ns用来满足触发器 的Tco。
从图中可以看出如果:
T-Tco-Tdelay>T3
即:
那么就满足了建立时间的要求,其中T为时钟的周期,这种情况下第二个触
图3符合要求的时序图
如果组合逻辑的延时过大使得
T-Tco-Tdelay<T3
那么将不满足要求,第二个触发器就在第二个时钟的升沿将采到的是一个不 定态,如图4所示。那么电路将不能正常的工作。
下面通过时序图来分析:设第一个触发器的输入为D1,输出为Q1,第二个触 发器的输入为D2,输出为Q2;
时钟统一在上升沿进行采样,为了便于分析我们讨论两种情况即第一:假设 时钟的延时Tpd为零,其实这种情况在FPGA设计中是常常满足的,由于在FPG A设计中一般是采用统一的系统时钟,也就是利用从全局时钟管脚输入的时钟, 这样在内部时钟的延时完全可以忽略不计。这种情况下不必考虑保持时间,因为 每个数据都是保持一个时钟节拍同时又有线路的延时,也就是都是基于CLOCK的延迟远小于数据的延迟基础上,所以保持时间都能满足要求,重点是要关心建 立时间,此时如果D2的建立时间满足要求那么时序图应该如图3所示。
1 什么是 和Holdup 时间? Hold time)。建立时间是指在
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 请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲器)。
关于建立时间(setup time)保持时间(hold time)以及时序的一些问题集合
建立时间和保持时间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。
建立时间、保持时间和时序约束条件
建立时间、保持时间和时序约束条件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。
建立时间和保持时间
建立时间和保持时间信号经过传输线到达接收端之后,就牵涉到建立时间和保持时间这两个时序参数,Setup/Hold time是测试芯片对输入信号和时钟信号之间的时间要求,也就是它们表征了时钟边沿触发前后数据需要在锁存器的输入持续时间,是芯片本身的特性。
建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间Setup time.如不满足Setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器;保持时间是指触发器的时钟信号上升沿到来以后,数据也必须保持一段时间,数据保持不变以便能够稳定读取(信号在器件内部通过连线和逻辑单元时,都有一定的延时。
延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。
信号的高低电平转换也需要一定的过渡时间。
)。
如果holdtime不够,数据便不能被有效读取并转换为输出。
如果数据信号在时钟边沿触发前后持续的时间分别超过建立时间和保持时间,那么这部分超过的分量分别称为建立时间裕量和保持时间裕量。
(这期间其实还涉及到竞争冒险的问题,也就是毛刺,稍后在研究,建立保持时间的存在即是触发器内部的特性又在屏蔽毛刺方面起到了一定的作用。
)其实建立时间就是在脉冲信号到来时,输入信号已经稳定等待的时间;而保持时间是信号脉冲到来后,而输入信号还没有到达下降沿的时间。
举个例子:建立时间就是你到朋友家做客去早了,但是主人还没回来,你等待的时间就是建立时间;保持时间就是进入房子后,逗留的(有效)时间。
当然在实际测试中我发现时钟信号也是存在抖动和偏移的。
虽然系统时序设计中对时钟信号的要求非常严格,因为我们所有的时序计算都是以恒定的时钟信号为基准。
但实际中时钟信号往往不可能那么理想,常会出现抖动(Jitter)和偏移(Skew)问题。
(估计没有真正稳定的信号)。
建立时间保存时间详解
0 技术交流fpga欢迎您的加入什么是Setup 和Holdup时间?a) 什么是Setup 和Holdup时间?建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。
b) 什么是竞争与冒险现象?怎样判断?如何消除?信号在FPGA器件内部通过连线和逻辑单元时,都有一定的延时。
延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。
信号的高低电平转换也需要一定的过渡时间。
由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为"毛刺"。
如果一个组合逻辑电路中有"毛刺"出现,就说明该电路存在"冒险"。
用D触发器,格雷码计数器,同步电路等优秀的设计方案可以消除。
c) 请画出用D触发器实现2倍分频的逻辑电路?就是把D触发器的输出端加非门接到D端。
d) 什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?将几个OC门结构与非门输出并联,当每个OC门输出为高电平时,总输出才为高,这种连接方式称为线与。
e) 什么是同步逻辑和异步逻辑?整个设计中只有一个全局时钟成为同步逻辑。
多时钟系统逻辑设计成为异步逻辑。
f) 请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲器)。
是不是结构图?g) 你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?TTL,cmos,不能直连LVDS:LVDS(Low Voltage Differential Signal)即低电压差分信号,LVDS接口又称RS644总线接口,是20世纪90年代才出现的一种数据传输和接口技术。
建立时间、保持时间、传播延时、组合逻辑延时都是什么呢?
建立时间、保持时间、传播延时、组合逻辑延时都是什么呢?建立时间(Setup Time)是指触发器的时钟信号上升沿到来之前,数据保持稳定不变的时间。
输入信号应该提前时钟上升沿(如上升沿有效)T su 时间到达芯片,这个 T su 就是建立时间。
如果不满足建立时间要求,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器,或者说,该数据就会被永久“跳过”而未被“采样”。
举个例子:坐火车时需要提前到站检票安检,而不是一到火车站就可以乘坐,必须的提前到站的时间就是建立时间。
如果数据信号在时钟沿触发前的持续时间超过了建立时间 T su,那么这个时间间隔就叫做建立时间裕量。
保持时间(Hold Time)是指触发器的时钟信号上升沿到来之后,数据保持稳定不变的时间(数据保持不变以便能够稳定读取,如果保持时间不满足的话,那么数据便不能被有效读取并转换为输出)。
如果数据信号在时钟沿触发后的持续时间超过了保持时间T h,那么这个时间间隔就叫做保持时间裕量。
总结(Summary):建立时间和保持时间这两个时序参数是测试芯片对输入信号和时钟信号之间的时间要求,也就是它们表征了时钟边沿触发前后数据需要在锁存器的输入持续时间,是芯片本身的特性。
其实,这期间其实还涉及到竞争冒险的问题,也就是毛刺,建立保持时间的存在即是触发器内部的特性又在屏蔽毛刺方面起到了一定的作用。
传播延迟(Propagation Delay)是指一个数字信号从器件(一般是DFF,符号表示为T cq)的输入端到输出端所需的时间。
一般在FPGA 中是指时钟上升沿之后延时T cq的时间,数据才到达寄存器Q 端。
区别于门传播延时:证明其对输入信号变化响应有多快,表示为信号通过该门所经历的时间,定义为输入信号和输出信号波形在50% 翻转点之间的时间。
组合逻辑延时(Combinational Logic Delay)是指两级寄存器之间的输出端 Q 到输入端 D 之间的组合逻辑延时,符号表示为 T logic 。
ic笔试常见试题
1.setup和holdup时间区别.Answer:建立时间:触发器在时钟沿来到前,其数据输入端的数据必须保持不变的时间保持时间:触发器在时钟沿来到后,其数据输入端的数据必须保持不变的时间2.多时域设计中,如何处理信号跨时域Answer: 情况比较多,如果简单回答的话就是:跨时域的信号要经过同步器同步,防止亚稳态传播。
例如:时钟域1中的一个信号,要送到时钟域2,那么在这个信号送到时钟域2之前,要先经过时钟域2的同步器同步后,才能进入时钟域2。
这个同步器就是两级d触发器,其时钟为时钟域2的时钟。
这样做是怕时钟域1中的这个信号,可能不满足时钟域2中触发器的建立保持时间,而产生亚稳态,因为它们之间没有必然关系,是异步的。
这样做只能防止亚稳态传播,但不能保证采进来的数据的正确性。
所以通常只同步很少位数的信号。
比如控制信号,或地址。
当同步的是地址时,一般该地址应采用格雷码,因为格雷码每次只变一位,相当于每次只有一个同步器在起作用,这样可以降低出错概率,象异步FIFO的设计中,比较读写地址的大小时,就是用这种方法。
如果两个时钟域之间传送大量的数据,可以用异步FIFO来解决问题。
tch与register的区别,为什么现在多用register.行为级描述中latch如何产生的区别不多说。
为什么避免使用latch,因为设计中用latch会使设计后期的静态时序分析变的困难(必须用的地方当然另当别论)。
行为级描述中latch产生的原因:多由于构造组合逻辑电路时,使用if或case语句,没有把所有的条件给足,导致没有提到的条件,其输出未知。
或者是每个条件分支中,没有给出所有输出的值,这就会产生latch。
所以构造组合逻辑电路时,其always语句中的敏感信号必须包括所有的输入端,每个条件分支必须把所有的输出端的值都给出来。
4.BLOCKING NONBLOCKING 赋值的区别Answer: 这个问题可参考的资料很多,讲的都很透彻,可以找一下。
建立时间和保持时间
建立时间和保持时间图1 保持时间与建立时间示意图在FPGA设计同一个模块中常常是包含组合逻辑与时序逻辑,为了保证在这些逻辑接口处数据能稳定被处理,那么对建立时间与保持时间建立清晰概念非常重要。
下面在认识了建立时间与保持时间概念上思考如下问题。
举一个常见例子。
图2 同步设计中一个基本模型图2为统一采用一个时钟同步设计中一个基本模型。
图中Tco是触发器数据输出延时;Tdelay是组合逻辑延时;Tsetup是触发器建立时间;Tpd为时钟延时。
如果第一个触发器D1建立时间最大为T1max,最小为T 1min,组合逻辑延时最大为T2max,最小为T2min。
问第二个触发器D2立时间T3与保持时间T4应该满足什么条件,或者是知道了T3与T4那么能容许最大时钟周期是多少。
这个问题是在设计中必须考虑问题,只有弄清了这个问题才能保证所设计组合逻辑延时是否满足了要求。
下面通过时序图来分析:设第一个触发器输入为D1,输出为Q1,第二个触发器输入为D2,输出为Q2;时钟统一在上升沿进行采样,为了便于分析我们讨论两种情况即第一:假设时钟延时Tpd为零,其实这种情况在FPGA设计中是常常满足,由于在FPGA 设计中一般是采用统一系统时钟,也就是利用从全局时钟管脚输入时钟,这样在内部时钟延时完全可以忽略不计。
这种情况下不必考虑保持时间,因为每个数据都是保持一个时钟节拍同时又有线路延时,也就是都是基于CLOCK延迟远小于数据延迟基础上,所以保持时间都能满足要求,重点是要关心建立时间,此时如果D2建立时间满足要求那么时序图应该如图3所示。
从图中可以看出如果:T-Tco-Tdelay>T3即:Tdelay< T-Tco-T3那么就满足了建立时间要求,其中T为时钟周期,这种情况下第二个触发器就能在第二个时钟升沿就能稳定采到D2,时序图如图3所示。
图3 符合要求时序图如果组合逻辑延时过大使得T-Tco-Tdelay<T3那么将不满足要求,第二个触发器就在第二个时钟升沿将采到是一个不定态,如图4所示。
保持时间建立时间----我的个人见解
在描述保持时间和建立时间之前我们首先需要了解为什么需要保持时间和建立时间,通俗的说就是在时钟信号来临之前,传输给寄存器的信号必须保持稳定,有效,才可以打入触发器,称为建立时间;时钟沿来了之后,信号必须维持稳定一段时间,使得信号能够正确被打入触发器;下面我们就经典的D触发器来解释这一现象:首先描述一下触发器的原理,便于我们理解之后的说明;当CLK=0时,图5.7.4中G3,G4,输出的都为1,则G5,G6,输出分别为D,D’, G1,G2则维持原来的值保持不变,所以我们可以看出寄存器在时钟上升沿到来之前所锁存的值为上一次的值;当CLK=1,D=0时,则G6输出为1,G5输出为0,G3输出为1,G4输出为0,最后Q=0;当CLK=1,D=1时,则G6输出为0,G5输出为1,G3输出为0,G4输出为1,最后Q=1;我们可以看到为了得到G3和G4的值,则在CLK =1,之前,必须先得出G5,G6的值,也就是说在时钟上升沿来临之前,D值必须经过G6,G5,也就是所谓的建立时间;那么保持时间就是:在时钟来临之后,D值不能改变,必须维持原来的值,直到G4输出值返回给G6的输入端之后,D值才允许改变,此时即使D改变也不会影响G3,G4的输出;以上描述是基于触发器层面上的,下面我们在通过寄存器层次来描述建立时间和保持时间;首先先看一张同步设计的基本模型图我们假设T1,T2寄存器是一条路径上的相连的两个寄存器,数据输入到T1经过1个clk之后,传输到T2;Tco为经过寄存器T1的传输延时;Tdelay为经过组合逻辑的传输延时;Tsetup为T2的建立时间;Tpd为时钟到T1和T2的偏差;在一个时钟周期T之内,数据从寄存器T1传出,需要经过延时Tco,然后经过组合逻辑,需要经过延时Tdelay,最后到达寄存器T2,然后在寄存器T2建立起来,需要经过延时Tsetup(这个延时我们在之前已经讲解过为什么了),那么可以得出建立时间的要求:Tsetup <= Tpd+ T – Tco(max)-Tdelay(max);这里我们需要注意的是max,因为经过寄存器和组合逻辑有一个最大延迟和最小的延迟,对于建立时间来说,考虑到最恶劣的情况就是必须考虑到这些最大的延迟;之所以需要加上Tpd是因为时钟也有可能存在着传输的偏移;保持时间Thold,我们在上面已经描述过了为什么需要保持时间,现在我们知道T2的输入在时钟上升沿来之后必须保持一段时间的稳定,也就是说输入值不能发生改变,此时T1寄存器的值经过Tco,经过组合逻辑Tdelay,才到达T2,那么可以得出保持时间的要求:Thold <= Tco(min) + Tdelay(min);这里为什么是min,因为我们需要考虑到下一个信号最快传输到T2的情况,那么最小的延时也就是代表着最快的传输;参考文献:1.数字电子技术基础.(阎石,第五版)2.~~~建立时间与保持时间(两个寄存器的详细分析) - yuedx的个人空间 -中国电子顶级开发网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台- Powered by X-Space.htm3.建立时间和保持时间关系详解 - Ethan的日志 - 网易博客.htm4.建立时间、保持时间和时序约束条件 - 第1页 - 东大小小的数字世界 - EDNChina电子设计技术.htm5.。
建立时间和保持时间关系详解
建立时间和保持时间关系详解图 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。
保持和建立时间详解
这几天经常看到有关数字电路中建立时间(setup time)、保持时间(holdup time)以及延迟时间(delay)的讨论。
自己也高不清楚,查了相关的资料,总算了解了一些。
首先:建立时间和保持时间都是器件要求的特性。
其中建立时间是器件输入端在时钟信号有效沿到来前,要求输入信号稳定不变的时间。
保持时间是器件输入端要求输入信号在时钟信号有效沿到来后保持稳定不变的时间。
如果输入信号不满足建立时间和保持时间的要求,就可能导致数据锁存错误。
延迟时间是器件本身或布线的物理特性,其含义是信号从器件或布线经过所需的时间。
这里主要讨论器件的延迟时间。
通常器件的延迟时间由两部分组成。
一个是触发器输出响应时间(tffpd)。
可以理解为触发器输出在clk有效沿到来后的时间内发生变化, 之后稳定,也可以理解输出延迟。
另一个触发器输出的变化经过组合逻辑元件所需的附加时间,一般是组合逻辑延迟(tcomb)。
如下图所示:再来解释两个概念:建立时间容限和保持时间容限。
所谓建立时间容限是指器件允许的安全的建立时间长度范围。
同样保持时间也就是器件允许的安全的保持时间长度范围。
一般来说建立时间容限和保持时间容限都大于等于0。
根据这个要求,如上图所示,就有以下约束:tclk = tffpd + tcomb + 建立时间容限 + tsetup所以建立时间容限 = tclk - tffpd(max) - tcomb(max) - tsetup >=0tsetup <= tclk - tffpd (max)- tcomb(max)再来看保持时间容限首先对于数据接收端来说,任何时钟沿采样的数据,都是发送端前一时钟周期发送的数据。
发送端可能每个时钟周期都要发送数据,那么对于接收端来说,任何一个时钟沿后一段时间,数据线上的数据都会被发送端第二次发送的数据改变,所以保持时间容限其实是由于下一个时钟节拍上的数据引起的。
有效数据在tffpd + tcomb之后到达触发器,如果tholdup > tffpd + tcomb,则下一个有效数据到达后,tholdup仍然没结束,但前一个数据已经被破坏,所以必须tholdup <= tffpd + tcomb。
iic建立时间和保持时间标准
iic建立时间和保持时间标准I2C(Inter-Integrated Circuit)是一种串行通信总线,用于在集成电路之间传输数据。
I2C总线由两根信号线组成:SDA(串行数据线)和SCL(串行时钟线)。
在I2C通信中,建立时间和保持时间是指传感器或设备在发送数据时,需要满足的最低时间要求。
1. 建立时间(Setup Time):建立时间是指在时钟信号上升沿到来之前,数据线上的信号需要保持稳定不变的时间。
这是为了确保接收端能够在时钟上升沿时捕获到正确的数据。
建立时间通常由发送设备硬件设定,且应满足I2C协议的规定。
2. 保持时间(Hold Time):保持时间是指在时钟信号上升沿之后,数据线上的信号需要保持稳定不变的时间。
这是为了确保接收端有足够的时间采样数据。
保持时间也通常由发送设备硬件设定,且应满足I2C协议的规定。
I2C建立时间和保持时间的标准取决于I2C协议版本和通信速率。
不同的I2C协议版本和通信速率对应不同的建立时间和保持时间要求。
以下是一般情况下I2C总线的建立时间和保持时间标准:- 标准模式(100kbps):建立时间约为200μs,保持时间约为600μs。
- 快速模式(400kbps):建立时间约为10μs,保持时间约为30μs。
- 高速模式(3.4Mbps):建立时间约为4μs,保持时间约为20μs。
请注意,这些时间参数可能会因实际硬件和通信场景而有所不同。
在实际应用中,为了确保稳定的通信,建议遵循I2C协议规定的最小建立时间和保持时间要求。
总之,I2C建立时间和保持时间是I2C通信中关键的参数,它们影响着通信的稳定性和可靠性。
遵循I2C协议规定的标准建立时间和保持时间,可以确保设备之间的顺畅通信。
时序分析的建立时间和保持时间详解
1:概念2:对建立时间的约束3:对保持时间约束4:对于保持时间的理解:5: 建立时间保持时间的考虑—华为题目6:positive skew和negative skew的考虑。
7:latency的分析。
8:考虑latency、skew的建立时间和保持时间---很详细8.1:建立时间(setup time)的到达时间和要求时间。
8.2:保持时间(hold time)的到达时间和要求时间。
2:对建立时间的约束:1-max max2logcq ic setupT T T T++<,其中触发器单元的延时就是cqT。
另一种解释:建立时间容限(slack)+1-max max2logcq ic setupT T T T++=,要求slack>=0。
3:对保持时间约束:1-minmin 2log cqic hold T T T +>另一种解释:1-min min 2log cq ic hold T T T +=+保持时间容限(slack ),要求slack>=0。
4:对于保持时间的理解:(1) My_idea: the two meanings of my ideas are in similar !!!解释1:输入数据只有满足一定的保持时间后,下一个周期的输入数据才可以被打入。
当skew>0时,从min minholdcq comb T T T δ+≤+这个式子我们可以理解为实际Thold 变小了(要求的hold time 是没变的,但现在的hold time 比你要求的小了一点),则下个周期的数据可能会提前打入触发器导致和触发器原有的信号产生竞争。
当skew<0时,从min minholdcq comb T T T δ+≤+这个式子我们可以理解为Thold 变大了,则此时实际的hold time 肯定比之前的hold time 大(也就是说我现在的hold time 比你要求的大了一些),所以肯定满足保持时间要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为了便于分析,我们讨论两种情况即 第一:时钟的延时Tpd为零 。 第二:时钟的延时Tpd不为零 。
下面通过时序图来分析:设第一个触发器的输 入为D1,输出为Q1,第二个触发器的输入为D2, 输出为Q2
第一:假设时钟的延时Tpd为零
符 合 要 求 的 时 序 图
:T-Tco-Tdelay>T3 : Tdelay< T-Tco-T3
1、温度变化 2、电源
抖动原因: 一、时钟信号的产生 二、环境变化:
1、温度变化 2、电源(主要原因)(解决: 2 在主要时钟驱动器的周围加上去耦 电容)
三、电容耦合:
1、时钟线与相邻信号之间的耦 合。 2、所连时序元件栅电容的变化。
二、建立时间与保持时间
图1、建立时间与保持时间的示意图
定义:
1、建立时间(Tsu:set up time) 在时钟沿到来之前数据从不稳 定到稳定所需的时间。 说明:如果建立的时间不满足要求 那么数据将不能在这个时钟上升沿 被稳定的打入触发器。
时钟周期发生暂时的变化。即:时钟周期在 每个不同的周期上可以缩短或者加长。
说明:时钟抖动是严格衡量时钟暂时不确定
性的一项指标,并且经常针对某个给定的点 进行说明,它是一个平均值为零的随机变量。
产生原因比较:
偏差原因: 一、器件制造中的偏差 (参数不同) 二、互连偏差(芯片上 的电容电阻的偏差) 三、环境变化:
第二:时钟延时Tpd不为零
时 钟 存 在 延 时 但 满 足 时 序 时 : Tpd
D2
时
Tpd T-Tco-T2max> T3
说明:由于建立时间与保持时间的和是稳定的一个时钟
周期,如果时钟有延时,同时数据的延时也较小那么建立时间
必然是增大的,保持时间就会随之减小,如果减小到不满足 D2的保持时间要求时就不能采集到正确的数据,如下图所示
结论2:
如果不考虑时钟的延时那么只需关 心建立时间,如果考虑时钟的延时那么 我们不仅要关系建立时间,更需关心保 持时间。
2、保持时间(Th:hold time)
数据稳定后保持的时间。 说明:如果保持时间不满足要求那么数据 同样也不能被稳定的打入触发器。
结论:建立时间是在时钟脉冲到来之前, 保持时间是在时钟脉冲到来之后。
同步设计中的一个基本模型(如下Fra bibliotek)说明:图中Tco是触发器的数据输出的延时;Tdelay是组合逻辑的
这是即T-(Tpd+T-Tco-T2min)<T4,就不满足要求了,所以 D2的保持时间应该为:T-(Tpd+T-Tco-T2min)>=T4 即Tco+T2min-Tpd>=T4
说明:
1、假设时钟的延时Tpd为零 :这种情况下不必考 虑保持时间,因为每个数据都是保持一个时钟节拍同时 又有线路的延时,也就是都是基于CLOCK的延迟远小于 数据的延迟基础上,所以保持时间都能满足要求,重点 是要关心建立时间 。 2、时钟延时Tpd不为零 :这种情况下就要考虑保 持时间了,同时也需要考虑建立时间。时钟出现较大的 延时多是采用了异步时钟的设计方法,这种方法较难保 证数据的同步性,所以实际的设计中很少采用 。
延时;Tsetup是触发器的建立时间;Tpd为时钟的延时。如果第一个 触发器D1建立时间最大为T1max,最小为T1min,组合逻辑的延时 最大为T2max,最小为T2min 。
思考:
第二个触发器D2建立时间T3与保持时间 T4应该满足什么条件,或者是知道了T3与T4 那么能容许的最大时钟周期是多少 ?
如果组合逻辑的延时过大使得T-Tco-Tdelay<T3 那么将不满足要求,第二个触发器就在第二个时钟的 升沿将采到的是一个不定态,如下图所示。那么电路 将不能正常的工作 。
组 合 逻 辑 的 延 时 过 大 时 序 图
:T-Tco-T2max> T3, 要求的D2的 时 。
就是
结论1:
从上面的时序图中也可以看出,D2 的建立时间与保持时间与D1的建立与保 持时间是没有关系的,而只和D2前面的 组合逻辑和D1的数据传输延时有关,这 也是一个很重要的结论。说明了延时没 有叠加效应 。
建立时间与保持时间
徐雷 安徽大学----集成电路工程专业 安徽大学----集成电路工程专业
一、时钟偏差和抖动
时钟偏差:集成电路中一个时钟翻转
的到达时间在空间上的差别。时钟偏差时由 时钟路径的静态不匹配以及时钟在负载上的 差异造成的。
说明:时钟偏差并不造成时钟周期的变
化,造成的只是相位的偏移。
时钟抖动:在芯片上的某个给定的点上,