建立时间和保持时间关系详解
- 格式:docx
- 大小:274.41 KB
- 文档页数:7
建立时间和保持时间X 数据∣÷-1 SIr^l<~th~~时钟「tsu:建立时间th:保持时间信号经过传输线到达接收端之后,就牵涉到建立时间和保持时间这两个时序参数,Setup/Hold time是测试芯片对输入信号和时钟信号之间的时间要求, 也就是它们表征了时钟边沿触发前后数据需要在锁存器的输入持续时间,是芯片本身的特性。
建立时间是指触发器的时钟信号提升沿到来以前,数据稳定不变的时间。
输入信号应提前时钟提升沿(如提升沿有效)T时间到达芯片,这个T就是建立时间Setup time.如不满意Setup time,这个数据就不能被这一时钟打入触发器, 只有在下一个时钟提升沿,数据才能被打入触发器;保持时间是指触发器的时钟信号提升沿到来以后,数据也必需保持一段时间,数据保持不变以便能够稳定读取(信号在器件内部通过连线和规律单元时,都有行定的延时。
延时的大小与连线的长短和规律单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。
信号的凹凸电平转换也需要肯定的过渡时间假如hold time 不够,数据便不能被有效读取并转换为输出。
假如数据信号在时钟边沿触发前后持续的时间分别超过建立时间和保持时间,那么这部分超过的重量分别称为建立时间裕量和保持时间裕量。
(这期间其实还涉及到竞争冒险的问题,也就是毛刺,稍后在讨论,建立保持时间的存在即是触发器内部的特性又在屏蔽毛刺方面起到了肯定的作用。
)其实建立时间就是在脉冲信号到来时,输入信号已经稳定等待的时间;而保持时间是信号脉冲到来后,而输入信号还没有到达下降沿的时间。
举个例子:建立时间就是你到伴侣家做客去早了,但是仆人还没回来,你等待的时间就是建立时间;保持时间就是进入房子后,逗留的(有效)时间。
当然在实际测试中我发觉时钟信号也是存在抖动和偏移的。
虽然系统时序设计中对时钟信号的要求特别严格,由于我们全部的时序计算都是以恒定的时钟信号为基准。
建⽴时间(setuptime)与保持时间(holdtime)---相关内容静态时序分析:通过穷举分析每⼀条路径的延时,⽤以确定最⾼⼯作频率,检查时序约束是否满⾜,分析时钟质量。
动态时序分析:通过给定输⼊信号,模拟设计在器件实际⼯作的功能和延时情况。
1.什么是建⽴时间、保持时间? 建⽴时间指在触发器的时钟采样沿到来之前,数据保持稳定不变的时间。
保持时间指在触发器的时钟采样沿到来之后,数据保持稳定不变的时间。
因为时钟偏斜,到达DFF2为CLK2建⽴时间分析:取各组块最⼤延时计算考虑时钟到达DFF2的时钟偏斜Tskew,则建⽴时间余量为Tset_slack=Tclk-Tcq-Tco-Tsetup+Tskew,使DFF2建⽴时间不违例,需保证Tset_slack>0。
其中Tcq为DFF1的时钟端到输出延迟,为器件固定属性;Tco是组合逻辑电路的延时,可以通过优化逻辑设计改变其值,使其满⾜建⽴保持时间不违例;Tsetup为触发器固有属性,定值。
Thold为触发器固有属性,定值。
若不考虑DFF2的时钟偏斜,则建⽴时间裕量为Tset_slack=Tclk-Tcq-Tco-Tsetup。
保持时间分析:取各组块最⼩延时计算考虑时钟到达DFF2的时钟偏斜Tskew,则保持时间余量:Tskew+Thold+Thold_slack=Tcq+Tco,因此可推出Thold_slack=Tcq+Tco-Tskew-Thold,使保持时间不违例,则需Thold_slack>0。
若不考虑时钟偏斜,则Thold_slack=Tcq+Tco-Thold。
扩展:时钟抖动:两个时钟周期之间存在的差值,这种误差发⽣在时钟发⽣器内部,和晶振和PLL内部有关,布线对其没有影响。
主要表现在时钟频率上的不⼀定。
时钟偏斜:同样的时钟产⽣的多个⼦时钟信号之间的延时差异。
主要表现在时钟相位上的不确定。
影响时钟偏斜的原因:布线长度及负载,时钟偏斜⽆法避免。
数据传输模型(建⽴时间与保持时间)关于建⽴时间和保持时间的详细介绍以及相关例题可以参考以下⽂章:在介绍数据传输模型之前必须要了解的两个概念是建⽴时间和保持时间,下⾯就介绍⼀下建⽴时间和保持时间的含义及其物理意义?建⽴时间就是时钟触发事件来临之前,数据需要保持稳定的最⼩时间,以便数据能够被时钟正确的采样。
保持时间就是时钟触发事件来临之后,数据需要保持稳定的最⼩时间,以便数据能够被电路准确的传输。
可以通俗的理解为:时钟到来之前,数据需要提前准备好;时钟到来之后,数据还要稳定⼀段时间。
建⽴时间和保持时间组成了数据稳定的窗⼝,如下图所⽰。
下⾯看⼀种典型的上升沿 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的裕量时会⽤到。
七年级数学时间关系知识点时间关系是七年级数学中非常重要的一个知识点。
它不仅关系到实际生活中的问题,还和其他数学知识点密切相关。
在本文中,我们将会讨论这一知识点,深入了解时间关系在数学中的应用。
一、时间概念的基本认识我们首先来认识一下时间的基本概念。
时间是一种抽象的概念,是人们为了描述事物之间的先后次序而产生的概念。
一个时间段是指从某一时刻到另一时刻的时间距离,可以用分钟、小时或者其他计量单位来表示。
七年级学生应该对时间的基本概念非常熟悉,不需要赘述,我们直接进入下一个部分。
二、相对时间的表示法相对时间是指某一时间与另一个时间相比所处的先后次序。
在数学中,我们通常将时间画在一条数轴上,用正方向表示未来,负方向表示过去。
一个时间点的坐标可以用一个数来表示,例如4点可以表示为+4,午夜12点可以表示为0,凌晨1点可以表示为+1。
在这条数轴上,我们可以很方便地给出两个时间点之间的距离,并用这个距离来表示这两个时间点的相对先后顺序。
七年级学生需要充分掌握相对时间的表示法,以便在后续的学习中灵活应用。
三、时间的加减运算在数学中,我们经常需要对时间进行加减运算。
这一点和数字的加减法非常类似,只不过要注意时间单位的转换。
例如,我们可以将12:30表示为12.5,那么如果我们想要计算12.5加上3小时的结果,我们应该将3小时转换为180分钟,然后将两者相加得到12.5+3=15.5。
同样地,我们可以将总时间转换为小时、分钟或者其他单位,然后再进行加减运算。
七年级学生需要能够熟练地进行时间加减运算,以便在解决实际问题时能够得心应手。
四、时间图形的绘制在数学中,我们通常用时间图形来表示时间的变化和关系。
时间图形是一种类似于线性图形的图形,它的横坐标表示时间,纵坐标表示某一随时间变化的物理量。
例如,我们可以用时间图形来表示一辆汽车行驶的里程,或者某一商店每天的销售额。
通过时间图形,我们可以清晰地看到时间的变化和物理量的关系,从而更好地了解问题的本质。
建立时间和保持时间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、基尔霍夫定理的内容是什么?基尔霍夫定律包括电流定律和电压定律电流定律:在集总电路中,任何时刻,对任一节点,所有流出节点的支路电流的代数和恒等于零。
电压定律:在集总电路中,任何时刻,沿任一回路,所有支路电压的代数和恒等于零。
2、描述反馈电路的概念,列举他们的应用。
反馈,就是在电子系统中,把输出回路中的电量输入到输入回路中去。
反馈的类型有:电压串联负反馈、电流串联负反馈、电压并联负反馈、电流并联负反馈。
负反馈的优点:降低放大器的增益灵敏度,改变输入电阻和输出电阻,改善放大器的线性和非线性失真,有效地扩展放大器的通频带,自动调节作用。
电压负反馈的特点:电路的输出电压趋向于维持恒定。
电流负反馈的特点:电路的输出电流趋向于维持恒定。
3、有源滤波器和无源滤波器的区别无源滤波器:这种电路主要有无源元件R、L和C组成有源滤波器:集成运放和R、C组成,具有不用电感、体积小、重量轻等优点。
集成运放的开环电压增益和输入阻抗均很高,输出电阻小,构成有源滤波电路后还具有一定的电压放大和缓冲作用。
但集成运放带宽有限,所以目前的有源滤波电路的工作频率难以做得很高。
数字电路1、同步电路和异步电路的区别是什么?同步电路:存储电路中所有触发器的时钟输入端都接同一个时钟脉冲源,因而所有触发器的状态的变化都与所加的时钟脉冲信号同步。
异步电路:电路没有统一的时钟,有些触发器的时钟输入端与时钟脉冲源相连,这有这些触发器的状态变化与时钟脉冲同步,而其他的触发器的状态变化不与时钟脉冲同步。
2、什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?将两个门电路的输出端并联以实现与逻辑的功能成为线与。
在硬件上,要用OC门来实现,同时在输出端口加一个上拉电阻。
由于不用OC门可能使灌电流过大,而烧坏逻辑门。
3、解释setup和hold time violation,画图说明,并说明解决办法。
(威盛VIA2003.11. 06上海笔试试题)Setup/hold time是测试芯片对输入信号和时钟信号之间的时间要求。
建立时间和保持时间信号经过传输线到达接收端之后,就牵涉到建立时间和保持时间这两个时序参数,Setup/Hold time是测试芯片对输入信号和时钟信号之间的时间要求,也就是它们表征了时钟边沿触发前后数据需要在锁存器的输入持续时间,是芯片本身的特性。
建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间Setup time.如不满足Setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器;保持时间是指触发器的时钟信号上升沿到来以后,数据也必须保持一段时间,数据保持不变以便能够稳定读取(信号在器件内部通过连线和逻辑单元时,都有一定的延时。
延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。
信号的高低电平转换也需要一定的过渡时间。
)。
如果holdtime不够,数据便不能被有效读取并转换为输出。
如果数据信号在时钟边沿触发前后持续的时间分别超过建立时间和保持时间,那么这部分超过的分量分别称为建立时间裕量和保持时间裕量。
(这期间其实还涉及到竞争冒险的问题,也就是毛刺,稍后在研究,建立保持时间的存在即是触发器内部的特性又在屏蔽毛刺方面起到了一定的作用。
)其实建立时间就是在脉冲信号到来时,输入信号已经稳定等待的时间;而保持时间是信号脉冲到来后,而输入信号还没有到达下降沿的时间。
举个例子:建立时间就是你到朋友家做客去早了,但是主人还没回来,你等待的时间就是建立时间;保持时间就是进入房子后,逗留的(有效)时间。
当然在实际测试中我发现时钟信号也是存在抖动和偏移的。
虽然系统时序设计中对时钟信号的要求非常严格,因为我们所有的时序计算都是以恒定的时钟信号为基准。
但实际中时钟信号往往不可能那么理想,常会出现抖动(Jitter)和偏移(Skew)问题。
(估计没有真正稳定的信号)。
建立时间和保持时间关系详解图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。
由上图可知,保持时间容限+Thold=Tffpd(min)+Tcomb(min),所以保持时间容限=Tffpd(min)+Tcomb(min)-Thold,根据保持时间容限≥0,也就是Tffpd(min)+Tcomb(min)-Thold≥0可以得到触发器D2的Thold≤Tffpd(min)+Tcomb(min),由于题目没有考虑Tffpd,所以我们认为Tffpd=0,于是得到Thold≤T2min。
关于保持时间的理解就是,在触发器D2的输入信号还处在保持时间的时候,如果触发器D1的输出已经通过组合逻辑到达D2的输入端的话,将会破坏D2本来应该保持的数据建立时间与保持时间时钟是整个电路最重要、最特殊的信号,系统内大部分器件的动作都是在时钟的跳变沿上进行, 这就要求时钟信号时延差要非常小, 否则就可能造成时序逻辑状态出错;因而明确FPGA设计中决定系统时钟的因素,尽量较小时钟的延时对保证设计的稳定性有非常重要的意义。
建立时间与保持时间建立时间(Tsu:set up time)是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建立的时间不满足要求那么数据将不能在这个时钟上升沿被稳定的打入触发器;保持时间(Th:hold time)是指数据稳定后保持的时间,如果保持时间不满足要求那么数据同样也不能被稳定的打入触发器。
建立与保持时间的简单示意图如下图1所示。
图1 保持时间与建立时间的示意图在FPGA设计的同一个模块中常常是包含组合逻辑与时序逻辑,为了保证在这些逻辑的接口处数据能稳定的被处理,那么对建立时间与保持时间建立清晰的概念非常重要。
下面在认识了建立时间与保持时间的概念上思考如下的问题。
举一个常见的例子。
图2 同步设计中的一个基本模型图2为统一采用一个时钟的同步设计中一个基本的模型。
图中Tco是触发器的数据输出的延时;Tdelay是组合逻辑的延时;Tsetup是触发器的建立时间;Tpd为时钟的延时。
如果第一个触发器D1建立时间最大为T1max,最小为T1min,组合逻辑的延时最大为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所示。
那么电路将不能正常的工作。
图4 组合逻辑的延时过大时序不满足要求从而可以推出T-Tco-T2max>=T3这也就是要求的D2的建立时间。
从上面的时序图中也可以看出,D2的建立时间与保持时间与D1的建立与保持时间是没有关系的,而只和D2前面的组合逻辑和D1的数据传输延时有关,这也是一个很重要的结论。
说明了延时没有叠加效应。
第二种情况如果时钟存在延时,这种情况下就要考虑保持时间了,同时也需要考虑建立时间。
时钟出现较大的延时多是采用了异步时钟的设计方法,这种方法较难保证数据的同步性,所以实际的设计中很少采用。
此时如果建立时间与保持时间都满足要求那么输出的时序如图5所示。
图5 时钟存在延时但满足时序从图5中可以容易的看出对建立时间放宽了Tpd,所以D2的建立时间需满足要求:Tpd+T-Tco-T2max>=T3由于建立时间与保持时间的和是稳定的一个时钟周期,如果时钟有延时,同时数据的延时也较小那么建立时间必然是增大的,保持时间就会随之减小,如果减小到不满足D2的保持时间要求时就不能采集到正确的数据,如图6所示。
这时即T-(Tpd-Tco-T2min)<T4,就不满足要求了,所以D2的保持时间应该为:T-(Tpd+T-Tco-T2min)>=T4 即Tco+T2min-Tpd>=T4从上式也可以看出如果Tpd=0也就是时钟的延时为0那么同样是要求Tco+T2min>T4,但是在实际的应用中由于T2的延时也就是线路的延时远远大于触发器的保持时间即T4所以不必要关系保持时间。
图6 时钟存在延时且保持时间不满足要求下面用数字来说明一下加深理解(以下举例暂不考虑hold time):建立时间Tsetup=Tdelay+ Tco- Tpd假设Tco(触发器固有的建立时间)= 2ns假设1,Clock Delay =0,Data delay="0",那么数据port的新数据必须在时钟port的时钟沿到来之前2ns赶到数据por t,才能满足触发器的Tco。
假设2,Clock delay="0",data Delay = 3ns,那么数据port的新数据必须在时钟port的时钟沿到来之前5ns就得赶到数据port,其中的3ns用来使新数据从数据port赶到触发器的D端(由于data Delay ),剩下的2ns用来满足触发器的Tco。
假设3,Clock delay="1ns",data Delay = 3ns,由于时钟port的时钟沿推后1ns到达触发器的时钟端,那么数据port的新数据只需在时钟port的时钟沿到来之前4ns赶到数据port即可。
假设4,假设时钟的周期T=4ns,即你的系统需要运行在250M频率上,那么以上的假设中,假设2显然是不成立的,也就是说在假设2的情况下,你的系统运行频率是低于250M的,或者说在250M系统里是有setup time violation的。
在假设2的情况下,由于Tco及Tpd均是FPGA的固有特性,要想满足4ns的T,那么唯一你能做的就是想方设法减小Tdelay,也就是数据路径的延时。
即所谓的找出关键路径,想办法优化之。
总结,在实际的设计中,对于一个给定的IC,其实我们很容易看到T,Tpd,Tsetup,Th都是固定不变的(在跨时钟域时,Tpd会有不同),那么我们需要关心的参数就是Tdelay,即数据路径的延时,控制好了这个延时,那我们的设计就不会存在建立时间和保持时间不满足的情况了!后记:有个著名的笔试题,这样说道:时钟周期为T,触发器D1的建立时间最大为T1max,最小为T1min,该触发器的数据输出延时为Tco。
组合逻辑电路最大延迟为T2max,最小为T2min。
假设D1在前,D2去采样D1的数据(实际就是对图2的文字描述),问,触发器D2的建立时间T3和保持时间应满足什么条件。
这里给出一个简易公式供大家死记一下,以下两个公式确定了D2的Tsetup和Thold:1) D1的Tco + max数据链路延时+ D2的Tsetup < T(即T3 < T - Tco - T2max)2) D1的Tco + min数据链路延时> D2的Thold(即T4< Tco + T2min)其实上面的式2可以从T3+T4=T推出,不过要注意把1)中的T2max改为T2min即可。
总之,建立时间长了,保持时间就短了。
实际中,某条数据链路延时是一个定值,只不过要求它落在区间{T2min,T2max}。
这也是T2min和T2max的实际意义。
从现实设计出发,个人觉得这个题改为考T2max和T2min更合适,那是不是有更多人犯晕呢?!hoho如果是那样的话,大家自己变个形吧^_^。