-
2020-09-18 20:37:22
建立时间(setuptime)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;
保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。
如图1 。数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时间和保持时间的值可以为零。 PLD/FPGA开发软件可以自动计算两个相关输入的建立和保持时间。
个人理解
1、建立时间(setup time)触发器在时钟沿到来之前,其数据的输入端的数据必须保持不变的时间;建立时间决定了该触发器之间的组合逻辑的最大延迟。
2、保持时间(hold time)触发器在时钟沿到来之后,其数据输入端的数据必须保持不变的时间;保持时间决定了该触发器之间的组合逻辑的最小延迟。
D触发器波形
D触发器工作波形如下所示,时钟处于上升沿的时,如果输入信号D为1,输出信号Q也为1;如果输入信号D为0,那么输出信号Q也为0。
建立时间和保持时间前面波形图可
更多相关内容 -
时序分析之建立时间学习(一)
2020-08-10 17:08:55看了摩尔吧的关于时序分析的视频,对时序分析有了真正的理解。。。之前都不知道怎么分析时序分析,看完这视频后,有了大彻大悟的感觉。 时序分析的关键是保持时间和建立时间。 -
信号之建立时间和保持时间
2019-07-04 16:53:47这篇文章讨论的对象是数字设计或FPGA设计中一对重要概念——信号的建立时间和保持时间。 最初考虑写这篇文章仅是因为在建模PCF851(一款AD-DA芯片)时,由于笔者没有考虑到这方面的时序要求,虽然整体时序框架正确...这篇文章讨论的对象是数字设计或FPGA设计中一对重要概念——信号的建立时间和保持时间。
最初考虑写这篇文章仅是因为在建模PCF851(一款AD-DA芯片)时,由于笔者没有考虑到这方面的时序要求,虽然整体时序框架正确,但细节部分(具体的信号时序,如上升沿到来前信号的到来时间)没有注意,最终导致花了很长时间才找到问题所在。而后,逐渐了解到时序约束、STA等概念,其实在面试相关工作岗位时,有关建立时间(下文Tsu)和保持时间(下文Thd)的相关计算问题会是一道非常经典的面试题。
好,回归正题,本文主要从以下几方面进行阐述。
一、何为Tsu和Thd?
二、在典型同步电路分析中,Tsu和Thd应该满足什么要求?
图1 典型同步电路示意图
NOTE:本文相关概念英文缩写如下表
表1 相关概念中英文对照
概念
英文缩写
建立时间
Tsu
保持时间
Thd
FF输出延迟时间(又Tcq,即从时钟边沿开始到数据从Q端稳定输出的时间)
Tco
组合逻辑消耗时间(又称延迟时间)
Tdelay(Tcomb)
时钟延迟时间
Tpd
时钟周期
Tclk
一、何为Tsu和Thd?
如下图所示,1bit数据宽度为一个时钟周期,则:
建立时间(Tsu):时钟上升沿到来之前,输入端数据已经到来并稳定持续的时间间隔。
保持时间(Thd):时钟上升沿到来之后,输入端数据继续保持稳定并持续的时间间隔。
Tsu、Thd、Tclk三者的数学关系:Tsu+Thd=Tclk.
NOTE1:Tsu和Thd都是针对FF的输入端而言的,分别对应时钟沿的前和后,Tsu表示“预先准备”,Thd表示“事后不变”;对应地,Tco(后文出现)是针对FF的输出端而言的,特此声明。
NOTE2:由上图可知,触发器FF在上升沿稳定采集(采样)输入端的数据,这样一定能够读取到稳定的D1,而后FF会输出数据;故,数据稳定传输必须满足Tsu和Thd要求(芯片手册给出),但,Tsu和Thd能不能随意增大或减小呢?答:不能,这个问题的具体分析见第二节。
二、在典型同步电路分析中,Tsu和Thd应该满足什么要求?
如上图1,为一个典型的采用同一个时钟的同步电路模型。图注中相关名称的意义见第一节表格。具体的:Tsu_max=T1max、Tsu_min=T1min;Tdelay_max=T2max、Tdelay_min=T2min;设FF2的建立时间T3和保持时间T4应该满足什么要求?(或者知道T3、T4,则该电路容许的最大时钟周期是多少?)
第一步,画出图1电路对应的时序图如下:
第二步,Tsu时序约束分析:
如上图,T3不能过大,若满足Tclk-Tdelay-Tco+Tpd≥T3,意思就是除去组合逻辑电路延时、Tco和Tpd之和,剩下的时间若大于T3(留下的时间裕量比建立时间要大),那么就能满足建立时间。取Tdelay_max,则T3≤Tclk+Tpd-T2max-Tco。
第三步,Thd时序约束分析:
对T4(保持时间),如上图,要满足T4+Tpd≤Tco+Tdelay,就是说FF1的输出经过组合逻辑电路达到FF2的输入端的时间如果小于FF2的保持时间和Tpd之和(即要等到D2保持完毕,Q1的数据才能送到D2),就会出现保持时间约束违反。取Tdelay_min,则T4≤Tco+T2min-Tpd。
如下,标注出T3、T4分析所在的时序范围。(上述标红式子为分析结果)
补充部分:
这里采用另一种分析思路,也可以得到同样的结论,不过角度有所不同。引入时间线Timing_path、数据通路data_path和时钟通路clk_path三个概念。
PART1:建立时间
这种情况两个通路时间的关系如下要满足:
T3+Tdata_path≤Tclk_path+Tclk
就是说,对FF2,数据要比时钟“走得快”。
PART2:保持时间
要满足:Tdata_path-T4≥Tclk_path。
意思是说,防止FF1的输出太快到达FF2输入端而覆盖掉原来FF2该保持的数据。
-
建立时间与保持时间
2021-05-19 10:21:45文章目录1、建立时间与保持时间概述及模型2、寄存器之间数据传输时建立时间与保持时间3、寄存器之间数据传输时建立时间余量与保持时间余量计算4、 FPGA允许的最大时钟频率或最小时钟周期5、计算FPGA时钟所允许的最大...建立时间与保持时间
概述: 建立时间、保持时间模型展现;建立时间余量、保持时间余量的计算;以及系统允许时钟频率的最大频率计算。
文章目录
1、建立时间与保持时间概述及模型
建立时间(Tsu): 在时钟采样沿之前,数据必须保持稳定的时间,该时间量称为建立时间。
保持时间(Th): 在时钟采样沿之后,数据必须保持稳定的最短时间。
理想最优的建立时间和保持时间出现在数据中间采样的位置,如下所示,实质就是使触发器在采样沿得到稳定的数据,如果数据在时钟上升沿的建立保持时间内{latch edge-setup,latch edge+hold time}发生跳变,则会产生亚稳态输出,即输出值在短时间内处于不确定态,有可能是1,有可能是0,也可能什么都不是,处于中间态。
在出现沿打沿的现象时会出现建立时间最大值或者保持时间最大值。
理想建立时间最大值:
理想保持时间最大值:
2、寄存器之间数据传输时建立时间与保持时间
寄存器数据传输的模型:数据从在Reg1到Reg2,理想情况下采样沿到达Reg2时,数据的中间位置到达Reg2的数据端,这样出现最优的建立时间和保持时间,此时采样的数据也是最稳定的,如果时钟早到或者数据早到就会产生余量,严重的情况下就会产生时序为例。
数据和时钟到达Reg2最优情况,采样沿位于数据的中间位置:
出现保持时间最大值采样沿,采样沿与数据起始位置对齐:
出现建立时间最大值,采样沿与数据结束为止对齐:
3、寄存器之间数据传输时建立时间余量与保持时间余量计算
在实际的数据传输中器件和线路均会存在延迟,寄存器间数据传输模型如下所示:
Tclk1 :时钟到达Reg1的时钟延时。
Tco :数据从Reg1器件D到Q的物理延时。
Tclk2 :时钟到达Reg2的时钟延时。
Tdata:数据从Reg1的Q端到Reg2的D端的线路延时。
Tsu/Th:保持时间/建立时间。
建立时间余量(Setup Slack): 要求数据到达时间和数据实际到达时间的差值。
实际考虑线路延时时数据从Reg1到Reg2的时序图如下所示:
Clk_in:输入时钟。
Clk_Reg1:Clk_in经过Tclk1时延到达Reg1的时钟。
Reg1 Q :数据从Reg1的D端进入到达Q端经过Tco时延的数据。
Reg1 D :数据从Reg1的Q端输出经过Tdata时延到达Reg2的D端的数据。
Clk_Reg2:Clk_in经过Tclk2时延到达Reg2的时钟。通过上图观察:(Tcycle为一个时钟周期)
要求数据达到的时间 = Tcycle + Tclk2 - Tsu。(图中②)
实际数据到达的时间 = Tclk1 + Tco + Tdata。(图中①)
建立时间余量(Setup Slack)= Tcycle + Tclk2 - Tsu - (Tclk1 + Tco + Tdata)。保持时间余量(Hold Slack): 数据实际结束位置和要求数据结束位置的差值。
实际考虑线路延时时数据从Reg1到Reg2的时序图如下所示:
Clk_in :输入时钟。
Clk_Reg1:Clk_in经过Tclk1时延到达Reg1的时钟。
Reg1 Q :数据从Reg1的D端进入到达Q端经过Tco时延的数据。
Reg1 D :数据从Reg1的Q端输出经过Tdata时延到达Reg2的D端的数据。
Clk_Reg2:Clk_in经过Tclk2时延到达Reg2的时钟。通过上图观察:(Tcycle为一个时钟周期)
实际数据结束的时间 = Tcycle + Tclk1 + Tco + Tdata。(图中②)
要求数据结束的时间 = Tcycle + Tclk2 + Th。(图中①)保持时间余量(Told Slack)= Tcycle + Tclk1 + Tco + Tdata - (Tcycle + Tclk2 + Th)。
从上面的公式中可以看出建立时间余量(Told Slack)与时钟周期Tcycle 无关,所以时钟频率也与保持时间余量无关。4、 FPGA允许的最大时钟频率或最小时钟周期
通过上面的推导时钟周期和频率与保持时间无关,所以在 建立时间余量为0时取得最大时钟频率即最小时钟周期。
5、计算FPGA时钟所允许的最大频率或最小时钟周期
例: 计算建立时间余量Setup Slack 与 系统时钟允许的最大时钟频率 Fmax。
时钟周期为10ns;Clk in到Reg1的时延为3ns;Clk in到Reg2的时延为2ns;Reg1 Q端到Reg2 D端的时延为3ns;Tus=0.5ns;Tco=1ns;建立时间余量?FPGA允许的最大时钟频率?
建立时间余量(Setup Slack)= Tcycle + Tclk2 - Tsu - (Tclk1 + Tco + Tdata)。
Setup Slack = 10 + 2 - 0.5 -(3 + 1 +3)= 4.5ns
建立时间余量为0时取得最大时钟频率即最小时钟周期。
Fmax = 1/(Tcycle - Setup Slack)= 1/(10 - 4.5)。例: 计算保持时间余量Hold Slack 与 系统时钟允许的最大时钟频率 Fmax。
时钟周期为10ns;Clk in到Reg1的时延为3ns;Clk in到Reg2的时延为2ns;Reg1 Q端到Reg2 D端的时延为3ns;Th=0.5ns;Tco=1ns;保持时间余量?FPGA允许的最大时钟频率?
保持时间余量(Told Slack)= Tcycle + Tclk1 + Tco + Tdata - (Tcycle + Tclk2 + Th)=Tclk1 + Tco + Tdata - Tclk2 - Th。
Told Slack = 3 + 1 + 3 -2 - 0.5 = 4.5。Fmax与保持时间余量无关。
6、违反建立和保持时间会发生什么?
在触发器建立期间,如果数据在时钟上升沿的建立保持时间内{latch edge-setup,latch edge+hold time}发生跳变,则会产生亚稳态输出,即输出值在短时间内处于不确定态,有可能是1,有可能是0,也可能什么都不是,处于中间态。
7、Vivado中建立时间余量与保持时间余量的计算。
建立时间余量分析:
如下打开时序分析报告:
在报告中建立时间显示红色,表明建立时间余量不满足时序要求。
双击该路径:
数据实际到达的时间为19.592。
要求数据到达的时间为18.145。
建立时间余量 = 要求数据到达的时间 - 实际数据到达的施加 = 18.145-19.592= -1.447。
负值,则要求达不到。
保持时间余量分析:
数据实际结束的时间为-0.287。
数据要求结束的时间为-0.336.
保持时间余量 = 数据实际结束的时间 - 数据要求结束的时间 = -0.287-(-0.336)=0.049ns。
为正值,时序要求可以达到。★★★如有错误,欢迎指导!!!
-
建立时间和保持时间
2021-01-02 22:40:25文章目录建立时间和保持时间1. 建立时间和保持时间的概念2. 建立时间和保持时间如何约束时序电路2.1 建立时间约束2.2 保持时间约束3. 为什么触发器会有建立时间和保持时间 建立时间和保持时间 1. 建立时间和保持时间...文章目录
建立时间和保持时间
1. 建立时间和保持时间的概念
-
建立时间tsu:所谓建立时间就是说为了保证D触发器的输出是稳定的,数据必须在时钟上升沿tsu时间之前保持稳定,否则D触发器的输出就是不稳定的。
-
保持时间thold:所谓保持时间就是说为了保证D触发器的输出是稳定的,数据必须在时钟上升沿来之后继续保持thold时间的稳定,否则D触发器的输出就是不稳定的。
2. 建立时间和保持时间如何约束时序电路
第一张图展示的是基本的数字时序电路的组成,基本延时由两部分组成。一部分是tc-q,指的是触发器从时钟上升沿到数据稳定输出的延时;第二部分是tcomb logic,就是两级触发器之间的组合逻辑的延迟。2.1 建立时间约束
- 建立时间约束:从上面的时序图可以看出,一个时钟周期可以分为三部分:第一部分是tc-q,第二部分是组合逻辑的延时tcomb logic,第三部分是触发器的建立时间tsu。三者要满足以下的关系:
T >= tc-q + tcomb logic(max) + tsu 其中组合逻辑的延时应该为所有组合逻辑块中的最大延时,我们必须考虑电路在延时最大情况下的工作主频2.2 保持时间约束
- 保持时间约束:在如图标识的时钟的上升沿会同时发生D1和D2的传输,由于D2数据有保持时间的要求,所以需要D2在时钟的上升沿之后仍需保持一段时间,但同时D1也在传输,并且经过tc-q+tcomb logic就会追上D2,我们要保证D2不被冲刷掉,所以我们的保持时间约束如下:
tc-q + tcomb logic(min) >= thold 这里要考虑组合逻辑延时最小的情况,也就是D1最快追上D2的情况。当保证D1最快的情况下都追不上D2,那么在其它情况下D1也就不可能追上D2了。3. 为什么触发器会有建立时间和保持时间
上图展示的是一个最基本的利用双稳态结构做成的正沿触发器内部结构。只有了解了其内部结构才能搞清楚为什么会存在建立时间和保持时间。
3.1 为什么会存在建立时间
- 所谓的建立时间,就是说在时钟上升沿来之前数据必须稳定的时间,如果数据没有稳定,那么我的触发器将采不到这个数据。
- 当我们的时钟上升沿还没来到的时候,时钟处于低电平,传输们T1被打开,对于前一级锁存器来说,其对数据D建立双稳态的时间为I1+T1+I3+I2的延时,即三个反相器的延时tpd_inv加上一个传输们的延时tpd_tx,然后当时钟上升沿来了之后,时钟变为高电平,传输们T2被打开,输入数据D成功到达QM,此即为成功采样数据D。
- 换言之,当输入数据D在时钟上升沿来之前没有到达传输们T2,那么当时中上升沿来之后,第一级的双稳态就不能建立起来,那么此时QM采样的数据将会是不确定的,也就是说此次采样数据D失败。
- 所以,该寄存器的建立时间就是tsu = 3 x tpd_inv + tpd_tx
3.1 为什么会存在保持时间
- 所谓维持时间,就是说时钟上升沿之后输入数据仍需保持稳定一段时间,否则数据也会采样失败。
- 在这里的情形下,当时钟变为高电平时,传输们T1关断。由于D输入和CLK在到达T1之前都需要经过一个反相器,所以在时钟变为高电平之后输入上的任何变化都不会影响输出。所以维持时间是0。
- 但是如果clk后面跟了三个反相器,那么clk变为高电平之后,其需要经过三个反相器延时才能关断传输们T1,而数据D则经过一个反相器延时就到达了T1,所以如果此时输入数据D变化的话其实是可以直接通过传输们T1被后级电路采样的。所以这种情况下在时钟上升沿来之后输入数据D仍需要保持两个反相器的延时2 x tpd_inv。即该寄存器的保持时间为thold = 2 x tpd_inv。
-
-
FPGA时序分析1-建立时间和保持时间详细解析
2020-12-02 14:47:14目录 一、理想的建立时间最大值 二、理想的保持时间最大值 三、注意 建立时间:时钟上升沿到数据起始时间,当建立...理想的建立时间最大值(目的寄存器时钟上升沿的时候,数据刚结束,被采集到了,也就是数据... -
一文解决关于建立时间和保持时间的困惑
2020-07-17 16:17:34之前介绍数字电路复位信号设计的文章中有提到过很多次建立时间、保持时间的概念,事实上建立/保持时间(setup time & hold time)是同步电路设计中基石一般的存在,因此也成为各大IC公司笔面试当中的必考题。... -
IC学习笔记1——建立时间和保持时间
2022-04-07 13:50:21IC学习笔记1——建立时间和保持时间 前言 为了自己以后需要这些知识的时候,可以方便查阅。 一、建立时间和保持时间 1.1 触发器 建立时间、保持时间和传输延迟时间都是和触发器的动态特性有关,因此必须介绍一下... -
运放建立时间
2019-11-21 13:28:35原网页:运放建立时间的说明 -
建立时间与保持时间计算
2020-09-05 18:11:13建立时间与保持时间计算 1、概念** 建立时间和保持时间都是针对触发器的特性而言,时序如下图所示 **建立时间:**是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个... -
建立时间和保持时间的计算
2021-05-29 23:06:29时序分析是数字IC设计过程中不可避免的一步,其中对建立时间和保持时间的计算也尤为重要。 1、首先认识时序分析中经常用到的参数 Launch edge、Latch edge、Tsu、Thd、Slack、Tcq、Td、Trecovery、Tremoval、Jitter... -
到底什么是建立时间/保持时间?
2020-06-27 22:10:43点击上方“蓝字”,学习更多干货!在时序电路设计中,建立时间/保持时间可以说是出现频率最高的几个词之一了,人们对其定义已经耳熟能详,对涉及其的计算(比如检查时序是否正确,计算最大频率等)网... -
触发器建立时间和保持时间的关系(含题目详解)
2021-07-23 21:42:36建立时间、保持时间、传播延时、组合逻辑延时都是什么呢?_weixin_34402090的博客-CSDN博客 一、定义 1、建立时间(setup time) 指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,... -
为什么D触发器需要建立时间与保持时间
2021-05-17 10:20:22为什么D触发器需要建立时间与保持时间 定义 建立时间:时钟有效沿到来之前的某段时间内,数据必须稳定,这段时间称为建立时间,用Tsetup或者Tsu表示。 保持时间:时钟有效沿到来之后的某段时间内,数据必须稳定,这... -
数字电子技术基础(十一):触发器(建立时间、保持时间)
2020-08-17 21:27:111、建立时间(setup time )Tsu 在上面D触发器的特点中,提到过建立时间,建立时间是指输入信号应该先于时钟信号CLK动作沿到达的时间。如果不满足建立时间,就会出现亚稳态的现象,即输出的值不确定,对系统造成... -
解决建立时间与保持时间不满足的问题
2021-07-25 21:22:41文章目录基本概念建立时间和保持时间的检查解决建立时间和保持时间不满足的情况1.建立时间不满足2.保持时间不满足 基本概念 建立时间:即setup time,时钟上升沿之前数据要保持稳定的时间。 保持时间:即hold time... -
详解FPGA中的建立时间与保持时间
2020-07-14 22:59:06对于一个数字系统而言,建立时间和保持时间可以说是基础中的基础,这两个概念就像是数字电路的地基,整个系统的稳定性绝大部分都取决于是否满足建立时间和保持时间。但是对于绝大部分包括我在内的初学者来说,建立... -
关于建立时间和保持时间的理解
2019-09-08 15:52:12建立时间决定了电路工作的性能,一般是指确定电路的最佳工作频率(换句话说,如果在某个频率下,建立时间不满足,可能换个低一些的频率,就满足了建立时间的约束) 保持时间决定了电路能否正常工作,其约束属于正确... -
建立时间和保持时间概念
2020-07-14 20:40:42建立时间和保持时间都是针对触发器的特性说的。 时序图如下: 建立时间(Tsu:set up time) 是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟... -
数字 IC 笔试面试必考点(9)建立时间以及保持时间
2020-06-09 12:10:30建立时间(Setup Time)是指触发器的时钟信号上升沿到来之前,数据保持稳定不变的时间。 输入信号应该提前时钟上升沿(如上升沿有效)Tsu时间到达芯片,这个 Tsu就是建立时间。如果不满足建立时间要求,这个数据就... -
当VIVADO中时序报告中的建立时间和保持时间不对的时候,应该如何修改呢?
2021-05-29 23:21:281)setup建立 WNS(Worst negative Slack):最坏负松弛,所有时序路径上的最坏松弛,用于分析最大延迟。WNS为负数的时候表示有问题,为正时表示没有冲突。 TNS(Total Negative slack):总的负松弛,当只考虑每个... -
静态时序分析的理解(建立时间、保持时间)
2020-03-27 21:07:42建立时间:触发器(DFF)时钟上升沿到来之前,数据需要保持稳定的最小时间间隙就是建立时间。简而言之,时钟边沿触发前,要求数据必须存在一段时间, 这就是器件需要的建立时间。如不满足建立时间,这个数据就不能... -
一看就懂的建立时间和保持时间
2020-05-06 00:29:12建立时间(set up time)和保持时间(hold time)一直是面试中的必考题,因为一直都不是很清楚明白的理解这两个概念,故在本文中通过一系列的分析来彻底搞懂这两个概念,力求看一遍就能在面试过程中侃侃而谈,... -
建立时间和保持时间的分析(setup time and hold time)
2021-08-24 17:09:54对于每一个寄存器来说,建立时间和保持时间都是一个确定的参数,目的是为了在数据采样的时候数据能够稳定 建立时间 用这个简单的两个寄存器来对建立时间和保持时间进行分析 我们主要对寄存器reg2来进行分析 首先... -
数字电路中的建立时间与保持时间
2019-03-06 23:09:31建立时间与保持时间 时钟是整个电路最重要、最特殊的信号,系统内大部分器件的动作都是在时钟的跳变沿上进行, 这就要求时钟信号时延差要非常小, 否则就可能造成时序逻辑状态出错;因而明确FPGA设计中决定系统时钟的... -
建立时间和保持时间的理解、相关计算及在FPGA设计中的应用
2018-09-05 14:41:42学数字电路设计或者面试相关岗位的时候,都需要理解掌握建立时间和保持时间的概念,而这个东西我觉得还挺绕的,看的时候都明白,转过身就忘了,每次要用的时候又到处找资料,理解半天,非常的浪费时间,所以这里用我... -
关于建立时间 保持时间 最大时钟频率计算的心得
2020-07-05 13:09:26找到第一个时钟上升沿到达的时间,从此是开始计算,Tco+Tdelay+Tsetup<Tclk 意思是,从第一个时钟上升沿开始,数据开始输出经过触发器的延时Tco,组合逻辑和走线延时Tdelay到达下一个触发器的输入端,但是还要... -
触发器的建立时间及保持时间
2020-05-09 15:27:00在数字逻辑电路中,我们通常会遇到这么一个问题,数据的传输过程中不满足触发器的建立时间与保持时间,导致亚稳态状态的产生。在哪些情况下回产生亚稳态和减小亚稳态产生的方法在上一篇中有说明,在这里主要阐述...