建立时间和保持时间

合集下载

建立时间和保持时间

建立时间和保持时间

建立时间和保持时间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 什么是 和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)以及时序的一些问题集合

关于建立时间(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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的数据传输延时有关,这 也是一个很重要的结论。说明了延时没 有叠加效应 。
建立时间与保持时间
徐雷 安徽大学----集成电路工程专业 安徽大学----集成电路工程专业
一、时钟偏差和抖动
时钟偏差:集成电路中一个时钟翻转
的到达时间在空间上的差别。时钟偏差时由 时钟路径的静态不匹配以及时钟在负载上的 差异造成的。
说明:时钟偏差并不造成时钟周期的变
化,造成的只是相位的偏移。
时钟抖动:在芯片上的某个给定的点上,
相关文档
最新文档