建立时间和保持时间关系详解
- 格式:doc
- 大小:293.00 KB
- 文档页数:8
时序逻辑电路中的几个基本术语:建立时间(Setup Time):建立时间就是接收器件需要数据提前于时钟沿稳定存在于输入端的时间。
保持时间(Hold Time):为了成功的锁存一个信号到接收端,器件必须要求数据信号在被时钟沿触发后继续保持一段时间,以确保数据被正确的操作。
这个最小的时间就是我们说的保持时间。
飞行时间(Flight Time):指信号从驱动端传输到接收端,并达到一定的电平之间的延时,和传输延迟和上升时间有关。
Tco:是指信号在器件内部的所有延迟总和,一般包括逻辑延迟和缓冲延迟。
缓冲延迟(buffer delay):指信号经过缓冲器达到有效的电压输出所需要的时间时钟抖动(Jitter):时钟误差是指两个时钟周期之间存在的差值,这个误差是在时钟发生器内部产生的,和后期布线没有关系。
时钟偏移(Skew):是指由同样的时钟产生的多个子时钟信号之间的延时差异。
假时钟: 假时钟是指时钟越过阈值(threshold)无意识地改变了状态(有时在VIL 或VIH 之间)。
通常由于过分的下冲(undershoot)或串扰(crosstalk)引起。
数据上升沿对于系统设计工程师来说,时序问题在设计中是至关重要的,尤其是随着时钟频率的提高,留给数据传输的有效读写窗口越来越小,要想在很短的时间限制里,让数据信号从驱动端完整地传送到接收端,就必须进行精确的时序计算和分析。
同时,时序和信号完整性也是密不可分的,良好的信号质量是确保稳定的时序的关键,由于反射,串扰造成的信号质量问题都很可能带来时序的偏移和紊乱。
因此,对于一个信号完整性工程师来说,如果不懂得系统时序的理论,那肯定是不称职的。
本章我们就普通时序和源同步系统时序等方面对系统时序的基础知识作一些简单的介绍。
6.1 普通时序系统所谓普通时序系统就是指驱动端和接收端的同步时钟信号都是由一个系统时钟发生器提供。
下图就是一个典型的普通时钟系统的示意图,表示的是计算机系统的前端总线的时序结构,即处理器(CPU)和芯片组(Chipset)之间的连接。
七年级数学时间关系知识点时间关系是七年级数学中非常重要的一个知识点。
它不仅关系到实际生活中的问题,还和其他数学知识点密切相关。
在本文中,我们将会讨论这一知识点,深入了解时间关系在数学中的应用。
一、时间概念的基本认识我们首先来认识一下时间的基本概念。
时间是一种抽象的概念,是人们为了描述事物之间的先后次序而产生的概念。
一个时间段是指从某一时刻到另一时刻的时间距离,可以用分钟、小时或者其他计量单位来表示。
七年级学生应该对时间的基本概念非常熟悉,不需要赘述,我们直接进入下一个部分。
二、相对时间的表示法相对时间是指某一时间与另一个时间相比所处的先后次序。
在数学中,我们通常将时间画在一条数轴上,用正方向表示未来,负方向表示过去。
一个时间点的坐标可以用一个数来表示,例如4点可以表示为+4,午夜12点可以表示为0,凌晨1点可以表示为+1。
在这条数轴上,我们可以很方便地给出两个时间点之间的距离,并用这个距离来表示这两个时间点的相对先后顺序。
七年级学生需要充分掌握相对时间的表示法,以便在后续的学习中灵活应用。
三、时间的加减运算在数学中,我们经常需要对时间进行加减运算。
这一点和数字的加减法非常类似,只不过要注意时间单位的转换。
例如,我们可以将12:30表示为12.5,那么如果我们想要计算12.5加上3小时的结果,我们应该将3小时转换为180分钟,然后将两者相加得到12.5+3=15.5。
同样地,我们可以将总时间转换为小时、分钟或者其他单位,然后再进行加减运算。
七年级学生需要能够熟练地进行时间加减运算,以便在解决实际问题时能够得心应手。
四、时间图形的绘制在数学中,我们通常用时间图形来表示时间的变化和关系。
时间图形是一种类似于线性图形的图形,它的横坐标表示时间,纵坐标表示某一随时间变化的物理量。
例如,我们可以用时间图形来表示一辆汽车行驶的里程,或者某一商店每天的销售额。
通过时间图形,我们可以清晰地看到时间的变化和物理量的关系,从而更好地了解问题的本质。
建立时间、保持时间和时序约束条件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。
数字电路面试题集锦1、同步电路和异步电路的区别是什么?(仕兰微电子)2、什么是同步逻辑和异步逻辑?(汉王笔试)同步逻辑是时钟之间有固定的因果关系。
异步逻辑是各时钟之间没有固定的因果关系。
3、什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?(汉王笔试)线与逻辑是两个输出信号相连可以实现与的功能。
在硬件上,要用oc门来实现,由于不用oc 门可能使灌电流过大,而烧坏逻辑门。
同时在输出端口应加一个上拉电阻。
4、什么是Setup 和Holdup时间?(汉王笔试)5、setup和holdup时间,区别.(南山之桥)6、解释setup time和hold time的定义和在时钟信号延迟时的变化。
(未知)7、解释setup和hold time violation,画图说明,并说明解决办法。
(威盛VIA2003.11.06 上海笔试试题)Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。
建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。
保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。
如果hold time 不够,数据同样不能被打入触发器。
建立时间(Setup Time)和保持时间(Hold time)。
建立时间是指在时钟边沿前,数据信号需要保持不变的时间。
保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。
如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现metastability的情况。
如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
建立时间和保持时间信号经过传输线到达接收端之后,就牵涉到建立时间和保持时间这两个时序参数,Setup/Hold time是测试芯片对输入信号和时钟信号之间的时间要求,也就是它们表征了时钟边沿触发前后数据需要在锁存器的输入持续时间,是芯片本身的特性。
建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间Setup time.如不满足Setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器;保持时间是指触发器的时钟信号上升沿到来以后,数据也必须保持一段时间,数据保持不变以便能够稳定读取(信号在器件内部通过连线和逻辑单元时,都有一定的延时。
延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。
信号的高低电平转换也需要一定的过渡时间。
)。
如果holdtime不够,数据便不能被有效读取并转换为输出。
如果数据信号在时钟边沿触发前后持续的时间分别超过建立时间和保持时间,那么这部分超过的分量分别称为建立时间裕量和保持时间裕量。
(这期间其实还涉及到竞争冒险的问题,也就是毛刺,稍后在研究,建立保持时间的存在即是触发器内部的特性又在屏蔽毛刺方面起到了一定的作用。
)其实建立时间就是在脉冲信号到来时,输入信号已经稳定等待的时间;而保持时间是信号脉冲到来后,而输入信号还没有到达下降沿的时间。
举个例子:建立时间就是你到朋友家做客去早了,但是主人还没回来,你等待的时间就是建立时间;保持时间就是进入房子后,逗留的(有效)时间。
当然在实际测试中我发现时钟信号也是存在抖动和偏移的。
虽然系统时序设计中对时钟信号的要求非常严格,因为我们所有的时序计算都是以恒定的时钟信号为基准。
但实际中时钟信号往往不可能那么理想,常会出现抖动(Jitter)和偏移(Skew)问题。
(估计没有真正稳定的信号)。
建立时间、保持时间、传播延时、组合逻辑延时都是什么呢?建立时间(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 。
建立时间和保持时间图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所示。
时间管理的秘诀学会设定时间框架时间管理是一项重要的生活技能,它能够帮助我们有效地分配时间、提高工作效率,并且使我们的生活更加有条理。
学会设定时间框架是时间管理的秘诀之一。
本文将介绍如何设定时间框架以及如何运用时间框架进行时间管理。
一、什么是时间框架时间框架是指对一段时间内所要完成的任务进行合理的安排和分配。
它可以帮助我们在工作和生活中更好地规划和利用时间,避免无效的浪费和拖延。
二、设定时间框架的步骤1. 了解自己的时间需求:首先,要仔细分析和了解自己的时间需求。
不同的任务和活动所需要的时间是不同的,因此需要对自己的工作和生活进行全面的调查和分析。
通过记录和计算,可以得到每项任务所需的时间周期。
2. 制定优先级:根据任务的重要性和紧急程度,制定一个优先级次序。
把重要且紧急的任务放在最前面,以免延误了事情。
3. 设定时间限制:对每个任务设定一个明确的时间限制。
根据任务的复杂性和紧急程度,可以制定一个合理的时间限制,以确保任务的及时完成。
4. 合理分配时间:将已经确定的任务按照时间优先级进行合理分配。
根据每个任务所需的时间框架,将其合理地安排在时间表中。
合理分配时间能够帮助我们更好地掌控时间,避免时间的浪费。
5. 注意时间的弹性:在设定时间框架时,我们还应该留有一定的弹性。
这是因为生活中总会遇到各种突发情况,如果每个任务的时间都安排得过于紧凑,一旦出现意外,整个时间框架就会被打乱。
因此,合理的时间规划应该留有一定的缓冲时间,以便应对各种突发情况。
三、如何运用时间框架进行时间管理1. 坚持时间规划:设定时间框架只是时间管理的第一步,坚持时间规划才是成为一个优秀时间管理者的关键。
每天早上起床时,花几分钟来看一下当天的时间框架,合理安排一天的工作和活动。
坚持时间规划,将时间框架融入到日常生活中,使其成为一种习惯。
2. 高效执行计划:设定好时间框架后,我们需要高效地执行计划。
要充分利用工作时间,避免时间的浪费。
建立时间和保持时间关系详解图 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。
建立时间和保持时间
建立时间是以两个不同时钟沿分析的,保持时间是以相同时钟沿分析
不考虑数据过度时间,上图D1是edge1沿驱动的,D0是上一个数据,在FF2处分析建立保持时间。
对于保持时间,如果D1到达时间太早,也就意味着D0结束时间太早,Th(保持时间)就会变小,导致其不满足要求。
对于建立时间,如果D1到达太晚,Ts(建立时间)就会变小,导致其不满足要求。
从上图可以看出,Th是在同一个时钟沿edge1下分析的,而Ts
是在相邻两个时钟沿edge1和edge2分析的。
所以在做静态时序分析时,对于Th,在最小工况(高压,低温,此时延迟最小)分析,因为此时数据延迟最小,D1到达/D0结束时间提前的最多。
对于Ts,在最大工况(低压,高温,此时延迟最大)分析,因为此时数据延迟最大,D1到达/D0结束时间延后的最多。
The way to grow is to know how to shut up and work hard, to be low-key and humble, to learn to be strong, and to be the person you want to be in every cherished day.(WORD文档/A4打印/可编辑/页眉可删)数字电路面试题及答案同步电路和异步电路的区别是什么?(仕兰微电子)异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,但它同时也用在时序电路中,此时它没有统一的时钟,状态变化的时刻是不稳定的,通常输入信号只在电路处于稳定状态时才发生变化。
也就是说一个时刻允许一个输入发生变化,以避免输入信号之间造成的竞争冒险。
电路的稳定需要有可靠的建立时间和持时间,待下面介绍。
同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。
这些时序电路共享同一个时钟CLK,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。
比如D触发器,当上升延到来时,寄存器把D端的电平传到Q输出端。
下面介绍一下建立保持时间的问题。
建立时间(tsu)是指在触发器的时钟上升沿到来以前,数据稳定不变的时间。
如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(th)是指在触发器的时钟上升沿到来以后,数据稳定不变的时间。
如果保持时间不够,数据同样不能被打入触发器。
数据稳定传输必须满足建立时间和保持时间的要求,否则电路就会出现逻辑错误。
在同步电路设计中一般采用D触发器,异步电路设计中一般采用Latch2、什么是同步逻辑和异步逻辑?(汉王笔试)同步逻辑是时钟之间有固定的因果关系。
异步逻辑是各时钟之间没有固定的因果关系组合电路与时序电路区别组合逻辑电路是具有一组输出和一组输入的非记忆性逻辑电路,它的基本特点是任何时刻的输出信号状态仅取决于该时刻各个输入信号状态的组合,而与电路在输入信号作用前的状态无关。
建立时间和保持时间关系详解图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赶到数据port,才能满足触发器的Tco。
假设2,Clock delay="0",data Delay = 3ns,那么数据port的新数据必须在时钟port的时钟沿到来之前5ns就得赶到数据p ort,其中的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都是固定不变的(在跨时钟域时,T pd会有不同),那么我们需要关心的参数就是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如果是那样的话,大家自己变个形吧^_^Welcome To Download !!!欢迎您的下载,资料仅供参考!。