关于建立时间(setup time)保持时间(hold time)以及时序的一些问题集合
建立时间(setuptime)与保持时间(holdtime)---相关内容
建⽴时间(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内部有关,布线对其没有影响。
主要表现在时钟频率上的不⼀定。
时钟偏斜:同样的时钟产⽣的多个⼦时钟信号之间的延时差异。
主要表现在时钟相位上的不确定。
影响时钟偏斜的原因:布线长度及负载,时钟偏斜⽆法避免。
关于setup time和hold time的区别
关于setup time和hold time2007-10-07 18:58建立时间:决定了触发器之间的组合逻辑的最大延迟保持时间:决定了触发器之间的组合逻辑的最小延迟只有满足了这两个条件触发器的值才会和你希望的一样建立时间:触发器在时钟沿来到前,其数据输入端的数据必须保持不变的时间;保持时间:触发器在时钟沿来到后,其数据输入端的数据必须保持不变的时间因为触发器内部数据的形成是需要一定的时间的,如果不满足建立和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输出将不稳定,在0和1之间变化,这时需要经过一个恢复时间,其输出才能稳定,但稳定后的值并不一定是你的输入值。
这就是为什么要用两级触发器来同步异步输入信号。
这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。
两级触发器可防止亚稳态传播的原理:假设第一级触发器的输入不满足其建立保持时间,它在第一个脉冲沿到来后输出的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输出的亚稳态数据在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间,如果都满足了,在下一个脉冲沿到来时,第二级触发器将不会出现亚稳态,因为其输入端的数据满足其建立保持时间。
同步器有效的条件:第一级触发器进入亚稳态后的恢复时间 + 第二级触发器的建立时间 < = 时钟周期。
1、setup time的意义:为什么Data需要在Clock到达之前到达?其实在实际的问题中,setup time并不一定是大于零的,因为Clock到达时刻并不等同于latch 的传输门A关闭的时刻(更何况这种关闭并不是绝对的和瞬间完成的),这之间有一个未知的延迟时间。
为使问题简化,假设Clock的到达时刻为传输门A关闭、传输们B打开的时刻。
如果Data没有在这之前足够早的时刻到达,那么很有可能内部的feedback线路上的电压还没有达到足够使得inv1翻转的地步(因为inv0有延时,Data有slope,传输门B打开后原来的Q值将通过inv2迫使feedback保持原来的值)。
setuptime和holdtime定义
setuptime和holdtime一、什么是setuptime和holdtime1.1 setuptimesetuptime是指系统或设备准备运行所需的时间,即系统或设备从开始准备运行到可以正常运行所需的时间。
在计算机领域中,setuptime可以指计算机系统的启动时间,也可以指程序的启动时间。
1.2 holdtimeholdtime是指在特定条件下系统或设备需要维持的时间。
holdtime可以涉及到电子电路中的保持时间,也可以指计算机网络中的保持时间。
二、setuptime的意义和影响2.1 启动时间对用户体验的重要性系统或设备的setuptime直接影响到用户的使用体验。
如果setuptime较长,用户在等待系统或设备启动的过程中会感到焦虑和不便,降低用户的满意度和体验。
因此,减少setuptime对于提升用户体验至关重要。
2.2 提高系统效率的手段减少setuptime可以通过优化硬件设备、提高软件算法效率、减少启动服务等方式来实现。
例如,在改进计算机系统架构、使用快速存储设备、减少启动项等方面进行优化,可以有效减少setuptime,提高系统的响应速度和效率。
2.3 启动时间在特定场景中的重要性在一些特定场景下,setuptime的减少对于系统正常运行至关重要。
例如,在高频交易领域,每秒甚至每毫秒的时间都能带来巨大的差异。
因此,对于这类应用,必须极力减少setuptime,以保障系统能够快速启动并实时响应交易等操作。
三、holdtime的作用和应用场景3.1 电路中的holdtime在电子电路中,在某些操作中,为了避免电路发生意外故障或跳过某些必要的步骤,需要保持特定的信号保持一定的时间。
这个特定的时间就是holdtime。
例如,当处理时钟信号时,由于电路中存在时钟的延迟,需要保持一定的holdtime来确保信号正常。
通过设置holdtime来保证信号的正确传输是电子电路设计中的重要环节。
理解setuptimeholdtime
理解setuptimeholdtime什么叫做真正的理解setup time/hold time呢?听我道来。
就是要讲明⽩的setup time和hold time,都知道setup time的公式是Tclk > Tcq + Tcomb + Tsetup - Tskewhold time的公式是Thold < Tcq + Tcomb - Tskew那么这两个公式是怎么来的呢?就是我要说明的问题在我下⾯所举的例⼦中,Tsetup和Thold都是针对DFF2⽽⾔的,⽽符号含义如下Tclk =⽅便说明时序图给上(1)setup time先来看setup time,这时其实要看的是由于p1导致的DFF1的Q端变化在DFF2的D端需要提前Tsetup时间稳定下来就是以DFF1的p1时刻为基准,数据需要在DFF2的p3时刻采的时候满⾜Tsetup的要求那么以DFF1的p1时刻为基准的话,从p1时刻DFF1的值传到DFF2的D端需要的时间就是(Tcq + Tcomb)那么对于DFF2⽽⾔,下⼀个上升沿来临的时刻相对于p1时刻⽽⾔是(Tclk + Tskew),得到如下式⼦(Tclk + Tskew) - (Tcq + Tcomb) > Tsetup化简即得到平⽇所见的公式Tclk > Tcq + Tcomb + Tsetup - Tskew(2)hold time对于hold time,即是相对于DFF2的D端⽽⾔,p2时钟沿来了之后,不要⽴刻影响到p3采到的数据,使得p3能正常的采得数据,⽽p2来临之后,传递到D端时间还是(Tcq + Tcomb)⽽这就是要求变化的慢⼀点,要在p3这个沿之后来才好,那么算上要求的Thold,则需要D端⾄少保持(Thold + Tskew)这么长的时间,即是Tcq + Tcomb > Thold + Tskew经过化简,得到平⽇⾥所⽤的公式Thold < Tcq + Tcomb - Tskew这就是setup time/ hold time的公式的由来,理解起来还算不太难,但是就是⼀开始都是没有很深刻的理解HOLD violations are dangerous than SETUP.To keep it simple way, SETUP timing depends on the frequency of operation. But HOLD time is not.先来定义⼏个后⾯会⽤到的变量Tclk = Frequency of operation (can be variable)Tcq = Flop clock to Flop q delay (fixed/constant)Tcomb = Delay on the combinational logic between the Flops (can be variable)Tsetup = Setup time of a Flop (fixed/constant)Thold = Hold time of a Flop (fixed/constant)Tskew = Delay between clock edges of two adjacent flops (delay offered by clock path) (can be variable)⼀、⾸先来看setup time,其正常⼯作要满⾜的公式为Tclk > Tcq + Tcomb + Tsetup - Tskew如果出现了setup violation那么就意味着上⾯的公式变成了Tclk < Tcq + Tcomb + Tsetup - Tskew我们分两种case来考虑出现的setup violation,1. 设计电路的过程中在设计时,可以看到,上⾯的式⼦中,我们有3个变量可以来操作,Tclk, Tcomb, Tskew 1)这⾥⾸先的想法是增⼤Tclk,就是降低系统的⼯作频率此时就可以令式⼦满⾜条件,但是往往这个是不科学的,⼀般都是最后才想到要降低系统时钟频率来来满⾜setup time 2)减⼩Tcomb,具体就像什么pipeline或者是在不改变逻辑功能的前提下,改变成其他样式的组合逻辑,进⾏组合逻辑的优化,或者是改变扇出系数使得延时减⼩,或者是增⼤cell的尺⼨来使得延时减⼩都是可以施⾏的措施。
vivado乘法器ip核时序
在使用Xilinx Vivado中的乘法器IP核时,确保正确的时序是很重要的。
以下是一些关于在Vivado中实现乘法器IP核时需要注意的时序要点:
1.建立时间(Setup Time): 输入数据需要在时钟边缘前保持稳定。
这通常意味
着,对于大多数的FPGA时钟,你需要确保数据在时钟的前几个周期内是稳定的。
2.保持时间(Hold Time): 输入数据需要在时钟边缘后的某一时刻继续保持稳
定。
这意味着,在时钟的上升沿或下降沿之后,输入数据不应发生改变。
3.时钟频率: 乘法器的速度可能会受到所使用FPGA的时钟频率的限制。
如果
你的设计需要更高的性能,你可能需要提高FPGA的时钟频率。
4.输出延迟: 乘法器的输出可能会有一个固有的延迟,这取决于其内部设计和
FPGA的配置。
在设计时,需要考虑到这个延迟,以确保其他组件可以在正确的时间接收结果。
5.同步设计: 确保你的设计是同步的,这意味着所有的操作都应该在同一个时
钟域中进行。
如果你需要在不同的时钟域之间传输数据,请使用适当的同步机制,如FIFOs或双寄存器同步。
6.检查约束: 在Vivado中,使用TCL或HDL例化乘法器IP核时,确保你正
确地应用了时序约束。
这包括对输入和输出端口的建立和保持时间的约束。
7.性能考虑: 虽然乘法器IP核可能提供了很高的性能,但它们也可能消耗大量
的资源。
在设计时,需要权衡性能和资源使用之间的取舍。
通过遵循这些指导原则,你可以在Vivado中成功地实现乘法器IP核,并确保其满足时序要求。
微电子笔试题
亚稳态Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。
建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。
保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。
如果hold time不够,数据同样不能被打入触发器。
建立时间(Setup Time)和保持时间(Hold time)。
建立时间是指在时钟边沿前,数据信号需要保持不变的时间。
保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。
如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现亚稳态(metastability)的情况。
如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
在数字集成电路中,触发器要满足setup/hold的时间要求。
当一个信号被寄存器锁存时,如果信号和时钟之间不满足这个要求,Q端的值是不确定的,并且在未知的时刻会固定到高电平或低电平。
这个过程称为亚稳态(Metastability)。
一些关于微电子方面的笔试题(zz)1.FPGA和ASIC的概念,他们的区别。
(未知)答案:FPGA是可编程ASIC。
ASIC:专用集成电路,它是面向专门用途的电路,专门为一个用户设计和制造的。
根据一个用户的特定要求,能以低研制成本,短、交货周期供货的全定制,半定制集成电路。
与门阵列等其它ASIC(Application Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点.2.建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
建立时间、保持时间和时序约束条件
建立时间、保持时间和时序约束条件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。
setup time 与 hold time
Setup Time 与 Hold Time版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 /bb2hh-logs/20463915.html第一章 DC 概论之一 setup time 与 hold timeic 代码的综合过程可以说就是时序分析过程, dc 会将设计打散成一个个路经, 这些路经上有 cell 延迟和 net 延迟,然后 dc 会根据你加的约束,来映射库中符 合这种延迟以及驱动的器件。
从而达到综合的目的。
dc 的所有时序约束基础差 不多就是 setup time 和 hold time。
可以用下面的图片说明:所谓 setup time 即建立时间,也就说数据在时钟到来之前保持稳定所需要的 时间, hold time 即保持时间,也就是说在时钟到来之后数据需要保持稳定的时间。
在深入建立时间和保持时间之前。
先了解下 dc 中的路经以及 start point ,end point。
所谓 start point 就是: 1. input port(顶层设计的输入端口) 2.clock pin of sequential cell(触发器的 clock pin) 所谓的 end point 就是: 1 output port(顶层设计的输出端口) 3.data pin of sequential cell(触发器的 data pin) 了解 start point 和 end point,就可以方便的了解 dc 是如何将设计打散成路经, 一个设计中基本的路经分为 4 种,如下图:path1: input port to data pin of sequential cell path2:input port to output port path3:clock pin to data pin of next sequential cell path4:clock pin to output port 所有的设计也就这四种类型的路径。
FPGA时序约束、时序分析
FPGA设计之——时序设计FPGA设计一个很重要的设计是时序设计,而时序设计的实质就是满足每一个触发器的建立(Setup)/保持(Hold)时间的要求。
建立时间(Setup Time):是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(Hold Time):是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。
FPGA设计分为异步电路设计和同步电路设计,然而很多异步电路设计都可以转化为同步电路设计,在设计时尽量采用同步电路进行设计。
对于同步电路可以转化的逻辑必须转化,不能转化的逻辑,应将异步的部分减到最小,而其前后级仍然应该采用同步设计。
为了让同步电路可靠地运行,就要对时钟偏差进行控制,以使时钟偏差减小到可用的范围。
影响时钟偏差的主要有以下几个因素:o用于连接时钟树的连线o钟树的拓扑结构o时钟的驱动o时钟线的负载o时钟的上升及下降时间在通常的FPGA设计中对时钟偏差的控制主要有以下几种方法:o控制时钟信号尽量走可编程器件的的全局时钟网络。
在可编程器件中一般都有专门的时钟驱动器及全局时钟网络,不同种类、型号的可编程器件,它们中的全局时钟网络数量不同,因此要根据不同的设计需要选择含有合适数量全局时钟网络的可编程器件。
一般来说,走全局时钟网络的时钟信号到各使用端的延时小,时钟偏差很小,基本可以忽略不计。
o若设计中时钟信号数量很多,无法让所有的信号都走全局时钟网络,那么可以通过在设计中加约束的方法,控制不能走全局时钟网络的时钟信号的时钟偏差。
o异步接口时序裕度要足够大。
局部同步电路之间接口都可以看成是异步接口,比较典型的是设计中的高低频电路接口、I/O接口,那么接口电路中后一级触发器的建立-保持时间要满足要求,时序裕度要足够大。
o在系统时钟大于30MHz时,设计难度有所加大,建议采用流水线等设计方法。
建立时间和保持时间
建立时间和保持时间信号经过传输线到达接收端之后,就牵涉到建立时间和保持时间这两个时序参数,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年代才出现的一种数据传输和接口技术。
2021年IC测试工程师笔试题
ic测试工程师笔试题1.什么是Setup 和Holdup时间?建立时间(Setup Time)和保持时间(Hold time)。
建立时间是指在时钟边沿前,数据 ___需要保持不变的时间。
保持时间是指时钟跳变边沿后数据 ___需要保持不变的时间。
如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现metastability的情况。
如果数据 ___在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
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;else out <= in;assign in = ~out;assign clk_o = out;endmodule4 什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?线与逻辑是两个输出 ___相连可以实现与的功能。
在硬件上,要用oc门来实现,由于不用oc门可能使灌电流过大,而烧坏逻辑门。
同时在输出端口应加一个上拉电阻。
5 什么是同步逻辑和异步逻辑?同步逻辑是时钟之间有固定的因果关系。
异步逻辑是各时钟之间没有固定的因果关系。
6 请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲器)。
建立时间、保持时间、传播延时、组合逻辑延时都是什么呢?
建立时间、保持时间、传播延时、组合逻辑延时都是什么呢?建立时间(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 。
电子通讯 笔试题 大全 附答案
a)什么是Setup 和Holdup时间?Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。
建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。
保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。
如果hold time不够,数据同样不能被打入触发器。
建立时间(Setup Time)和保持时间(Hold time)。
建立时间是指在时钟边沿前,数据信号需要保持不变的时间。
保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。
如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现stability的情况。
如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
b) 什么是竞争与冒险现象?怎样判断?如何消除?当一个门的输入有两个或两个以上的变量发生改变时,由于这些变量是经过不同组合逻辑路径产生的,使得它们状态改变的时刻有先有后,这种时差引起的现象称为竞争(Race)。
竞争的结果若导致冒险或险象(Hazard)发生(例如毛刺(glitch)),并造成错误的后果,那么就称这种竞争为临界竞争。
若竞争的结果没有导致冒险发生,或虽有冒险发生,但不影响系统的工作,那么就称这种竞争为非临界竞争。
输入信号变化前后,输出的稳态值是一样的,但在输入信号变化时,输出信号产生了毛刺,这种冒险是静态冒险。
输入信号变化前后,输出的稳态值不同,并在边沿处出现了毛刺,称为动态险象(冒险)。
从引起冒险的具体原因上,冒险可以分为函数冒险和逻辑冒险。
函数冒险是逻辑函数本身固有的,当多个输入变量发生变化时,常常会发生逻辑冒险。
建立时间和保持时间
建立时间和保持时间图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所示。
时序分析中建立时间,保持时间,时钟到输出,PIN到PIN延时的说明
时序分析中建立时间,保持时间,时钟到输出,PIN到PIN延时的说明Clock Setup Time (tsu) 要想正确采样数据,就必须使数据和使能信号在有效时钟沿到达前就准备好,所谓时钟建立时间就是指时钟到达前,数据和使能已经准备好的最小时间间隔。
如下图所示:这里定义Setup时间是站在同步时序整个路径上的,需要区别的是另一个概念Micro tsu。
Micro tsu指的是一个触发器内部的建立时间,它是触发器的固有属性,一般典型值小于1~2ns。
在Xilinx等的时序概念中,称Altera的Micro tsu为setup时间,用Tsetup表示,请大家区分一下。
回到Altera的时序概念,Altera的tsu定义如下:tsu = Data Delay – Clock Delay + Micro tsuClock Hold Time (tH)时钟保持时间是只能保证有效时钟沿正确采用的数据和使能信号的最小稳定时间。
其定义如下图所示:tH示意图定义的公式为:tH= Clock Delay – Data Delay + Micro tH注:其中Micro tH是指寄存器内部的固有保持时间,同样是寄存器的一个固有参数,典型值小于1~2ns。
Clock-to-Output Delay(tco)这个时间指的是当时钟有效沿变化后,将数据推倒同步时序路径的输出端的最小时间间隔。
如下图所示:tco示意图其中Micor tco也是一个寄存器的固有属性,指的是寄存器相应时钟有效沿,将数据送到输出端口的内部时间参数。
它与Xilinx的时序定义中,有一个概念叫T cko是同一个概念。
Pin to Pin Delay (tpd)tpd指输入管脚通过纯组合逻辑到达输出管脚这段路径的延时,特别需要说明的是,要求输入到输出之间只有组合逻辑,才是tpd延时。
Slack是表示设计是否满足时序的一个称谓,正的slack表示满足时序(时序的余量),负的slack表示不满足时序(时序的欠缺量)。
嵌入式硬件面试题
1、下面是一些基本的数字电路知识问题,请简要回答之。
(1) 什么是Setup和Hold 时间?答:Setup/Hold Time 用于测试芯片对输入信号和时钟信号之间的时间要求。
建立时间(Setup Time)是指触发器的时钟信号上升沿到来以前,数据能够保持稳定不变的时间。
输入数据信号应提前时钟上升沿(如上升沿有效)T 时间到达芯片,这个 T就是建立时间通常所说的 SetupTime。
如不满足 Setup Time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿到来时,数据才能被打入触发器。
保持时间(Hold Time)是指触发器的时钟信号上升沿到来以后,数据保持稳定不变的时间。
如果 Hold Time 不够,数据同样不能被打入触发器。
(2) 什么是竞争与冒险现象?怎样判断?如何消除?答:在组合逻辑电路中,由于门电路的输入信号经过的通路不尽相同,所产生的延时也就会不同,从而导致到达该门的时间不一致,我们把这种现象叫做竞争。
由于竞争而在电路输出端可能产生尖峰脉冲或毛刺的现象叫冒险。
如果布尔式中有相反的信号则可能产生竞争和冒险现象。
解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。
(3) 请画出用 D 触发器实现 2 倍分频的逻辑电路答:(4) 什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?答:线与逻辑是两个或多个输出信号相连可以实现与的功能。
在硬件上,要用 OC 门来实现( 漏极或者集电极开路),为了防止因灌电流过大而烧坏 OC 门, 应在 OC 门输出端接一上拉电阻(线或则是下拉电阻)。
(5) 什么是同步逻辑和异步逻辑?同步电路与异步电路有何区别?答:同步逻辑是时钟之间有固定的因果关系。
异步逻辑是各时钟之间没有固定的因果关系 .电路设计可分类为同步电路设计和异步电路设计。
同步电路利用时钟脉冲使其子系统同步运作,而异步电路不使用时钟脉冲做同步,其子系统是使用特殊的“开始”和“完成”信号使之同步。
保持和建立时间详解
这几天经常看到有关数字电路中建立时间(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结束时间延后的最多。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
建立时间和保持时间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。
所以在实际测量setup time的时候,需要选取工艺中最慢的corner进行仿真测量。
2、、hold time的意义:为什么Data在Clock到达之后仍然要保持一段时间?和setuptime的情况不一样,因为Clock到达时刻并不等同于latch的传输门A完全关闭的时刻。
所以如果Data没有在Clock到达之后保持足够长的时间,那么很有可能在传输门A完全关闭之前Data就已经变化了,并且引起了feedback的变化。
如果这种变化足够大、时间足够长的话,很有可能将feedback 从原本正确的低电压拉到较高电压的电压。
甚至如果这种错误足够剧烈,导致了inv1和inv2组成的keeper 发生了翻转,从而彻底改变了Q的正确值,就会导致输出不正确。
当然,如果这种错误电压不是足够大到能够改变keeper的值,就不会影响到Q的正确输出。
如果inv0、inv1和inv2的延时较小(Data的变化影响feedback和Q的时间越短),那么为了保证正确性,就需要更大的hold time。
所以在实际测量hold time的时候,需要选取工艺中最快的corner进行仿真测量。
QUOTE:时钟周期为T,触发器D1的时钟沿到来到触发器Q变化的时间Tco(CLK--Q)最大为T1max,最小为T1min,逻辑组合电路的延迟时间最大为T2max,最小为T2min,问触发器D2的建立时间和保持时间。
最终答案:T3setup<T-T1max-T2max,T3hold<T1min+T2minmaxbird:D2的保持时间就是时钟沿到来之后,D2的数据输入端要保持数据不变的时间,这个时间是由D1和D2之间的组合逻辑时延决定的。
例如:假设D1和D2之间的组合逻辑时延为2ns,时钟周期为10ns,这意味着在时钟沿来到后,D1输出的新数据要过2ns才会到达D2的数据输入端,那么在这2ns内,D2的数据输入端保持的还是上一次的旧数据,其值不会立即更新,假设D2的最小保持时间为3ns,这意味时钟沿到来后,D2的数据输入端的值在3ns内不能有变化,回到问题的关键,由于D1在时钟沿到来后的输出结果,经过2ns 的组合逻辑延时便到达了D2的输入端,而D2要求在时钟沿到来后的3ns内其输入端的值不能改变,这样D2的保持时间就得不到满足,所以D2的保持时间必须小于等于2ns。
至于说T2min为0时的情况,其实T2min是永远不能为0的,即使是一根导线其时延也是不可能为0的,这就是为什么移位寄存器的两个触发器之间连的只是一根导线,导线后端触发器的保持时间却还是可以满足的原因,其实移位寄存器中触发器的保持时间可以看成是小于等于其间导线的时延。
建立时间:触发器在时钟沿来到前,其数据输入端的数据必须保持不变的时间;保持时间:触发器在时钟沿来到后,其数据输入端的数据必须保持不变的时间。
因为触发器内部数据的形成是需要一定的时间的,如果不满足建立和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输出将不稳定,在0和1之间变化,这时需要经过一个恢复时间,其输出才能稳定,但稳定后的值并不一定是你的输入值。
这就是为什么要用两级触发器来同步异步输入信号。
这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。
两级触发器可防止亚稳态传播的原理:假设第一级触发器的输入不满足其建立保持时间,它在第一个脉冲沿到来后输出的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输出的亚稳态数据在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间,如果都满足了,在下一个脉冲沿到来时,第二级触发器将不会出现亚稳态,因为其输入端的数据满足其建立保持时间。
同步器有效的条件:第一级触发器进入亚稳态后的恢复时间+ 第二级触发器的建立时间< = 时钟周期。
(编者注:maxbird在该部分详细说明了建立时间和保持时间的概念,以及如果不满足二者可能导致的亚稳态的传播。
注意这里说的建立时间和保持时间都是针对时钟而言的,在进行时序约束时所指的就是这种,而很多网友以前学习的建立时间保持时间的概念是针对信号而言的,所指的对象不同,分析出来的结论完全相反,一定注意不要混淆。
)lh1688:不考虑CLOCK SKEW情况下。
D2的建立时间要求:Tco1+T1(logic delay)+Tsetup2 < Tc(CLOCK周期) 。
那么Tsetup2 < Tc(CLOCK 周期) -(Tco1+T1)。
这个应该比较容易理解。
相对的保持时间实际就是路径的总延时(Tco1+T1)。
保持时间Thold2 < (Tco1+T1)。
建立时间与保持时间概述(EETOP)关于建立时间和保持时间,如下图普及一下基础知识先:其中Tcq 触发器时钟到数据输出的延时,Tcd 时钟的延时参数Tpd 组合逻辑的延时,Tsetup 触发器的保持时间。
因为数据到达触发器的时间至少要比时钟沿早一个建立时间,则有Tcq+Tpd+Tsetup+T,建立时间裕量=T时钟周期+Tcd,由于T建立时间裕量>0。
所以要求的最小时钟周期即为T=Tcq+Tpd+Tsetup-Tcd时钟周期为T,触发器D1的时钟沿到来到触发器Q变化的时间Tco(CLK--Q)最大为T1max,最小为T1min,逻辑组合电路的延迟时间最大为T2max,最小为T2min,问触发器D2的建立时间和保持时间。
该题最终答案:T3setup< FONT>maxbird:D2的保持时间就是时钟沿到来之后,D2的数据输入端要保持数据不变的时间,这个时间是由D1和D2之间的组合逻辑时延决定的。
例如:假设D1和D2之间的组合逻辑时延为2ns,时钟周期为10ns,这意味着在时钟沿来到后,D1输出的新数据要过2ns才会到达D2的数据输入端,那么在这2ns内,D2的数据输入端保持的还是上一次的旧数据,其值不会立即更新,假设D2的最小保持时间为3ns,这意味时钟沿到来后,D2的数据输入端的值在3ns内不能有变化,回到问题的关键,由于D1在时钟沿到来后的输出结果,经过2ns的组合逻辑延时便到达了D2的输入端,而D2要求在时钟沿到来后的3ns内其输入端的值不能改变,这样D2的保持时间就得不到满足,所以D2的保持时间必须小于等于2ns。
至于说T2min为0时的情况,其实T2min是永远不能为0的,即使是一根导线其时延也是不可能为0的,这就是为什么移位寄存器的两个触发器之间连的只是一根导线,导线后端触发器的保持时间却还是可以满足的原因,其实移位寄存器中触发器的保持时间可以看成是小于等于其间导线的时延。
建立时间:触发器在时钟沿来到前,其数据输入端的数据必须保持不变的时间;保持时间:触发器在时钟沿来到后,其数据输入端的数据必须保持不变的时间。
如下图:因为触发器内部数据的形成是需要一定的时间的,如果不满足建立和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输出将不稳定,在0和1之间变化,这时需要经过一个恢复时间,其输出才能稳定,但稳定后的值并不一定是你的输入值。
这就是为什么要用两级触发器来同步异步输入信号。
这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。
两级触发器可防止亚稳态传播的原理:假设第一级触发器的输入不满足其建立保持时间,它在第一个脉冲沿到来后输出的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输出的亚稳态数据在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间,如果都满足了,在下一个脉冲沿到来时,第二级触发器将不会出现亚稳态,因为其输入端的数据满足其建立保持时间。
同步器有效的条件:第一级触发器进入亚稳态后的恢复时间 + 第二级触发器的建立时间 < = 时钟周期。
maxbird在该部分详细说明了建立时间和保持时间的概念,以及如果不满足二者可能导致的亚稳态的传播。
注意这里说的建立时间和保持时间都是针对时钟而言的,在进行时序约束时所指的就是这种,而很多网友以前学习的建立时间保持时间的概念是针对信号而言的,所指的对象不同,分析出来的结论完全相反,一定注意不要混淆。
不考虑CLOCK SKEW情况下。
D2的建立时间要求:Tco1+T1(logic delay)+Tsetup2 <Tc(CLOCK 周期) 。
那么Tsetup2 < Tc(CLOCK 周期)-(Tco1+T1)。
这个应该比较容易理解。
相对的保持时间实际就是路径的总延时(Tco1+T1)。
保持时间Thold2 <(Tco1+T1)。