下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、建立时间和保持时间_X数睛时钟忙建立跡何也濮持时阖giltch1.jpg图1建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。如图1。数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时间和保持时间的值可以为零。QUOTE:DC,建立时间不满足,只能重新综合设计,并以违例路径为目标进行优化,以及对涉及到违例的组合逻辑 以及子模块加紧约束。保持时间不满足,
2、可在布图前或者布图后再修改这些违例,通常布图后再修改。因为布图前综合,时序分析采用统计线载模型,在布局前修正保持时间违例可能会导致布图后建立时间违例。QUOTE:1、setup time的意义:为什么Data需要在Clock到达之前到达?其实在实际的问题中,setup time并不一定是大于零的,因为Clock到达时刻并不等同于latch的传输 门A关闭的时刻(更何况这种关闭并不是绝对的和瞬间完成的),这之间有一个未知的延迟时间。为使问题简化,假设Clock的到达时刻为传输门A关闭、传输们B打开的时刻。如果Data没有在这之 前足够早的时刻到达,那么很有可能部的feedback线路上的电压还没
3、有达到足够使得inv1翻转的地步(因为invO有延时,Data有slope,传输门B打开后原来的Q值将通过inv2迫使feedback保持原来的值)。 如果这种竞争的情况发生,Q的旧值将有可能获胜,使Q不能够寄存住正确的Data值;当然如果feedback上的电压已经达到了足够大的程度也有可能在竞争中取胜,使得如果inv0、inv1和inv2的延时较大(Data的变化影响feedback和QQ能够正确输岀的时间越长),那么为了保证 正确性就需要更大的setup time。所以在实际测量setup time的时候,需要选取工艺中最慢的corner进行 仿真测量。2、hold time的意义:为什
4、么Data在Clock到达之后仍然要保持一段时间?和setuptime的情况不一样,因为Clock到达时刻并不等同于latch的传输门A完全关闭的时刻。所 以如果Data没有在Clock到达之后保持足够长的时间, 那么很有可能在传输门A完全关闭之前Data就已 经变化了,并且引起了feedback的变化。如果这种变化足够大、 时间足够长的话, 很有可能将feedback从原本正确的低电压拉到较高电压的电压。甚至如果这种错误足够剧烈,导致了inv1和inv2组成的keeper发生了翻转,从而彻底改变了Q的正确值,就会导致输出不正确。当然,如果这种错误电压不是足够大到 能够改变keeper的值,就
5、不会影响到Q的正确输出。如果inv0、inv1和inv2的延时较小(Data的变化影响feedback和Q的时间越短),那么为了保证 正确性,就需要更大的hold time。所以在实际测量hold time的时候,需要选取工艺中最快的corner进行 仿真测量。QUOTE:时钟周期为T,触发器D1的时钟沿到来到触发器Q变化的时间Tco(CLK-Q )最大为T1max,最小为Timin,逻辑组合电路的延迟时间最大为T2max,最小为T2min,问触发器D2的建立时间和保持时间。最终答案:T3setupT-T1max-T2max,T3holdT1min+T2minmaxbird:D2的保持时间就是
6、时钟沿到来之后,D2的数据输入端要保持数据不变的时间,这个时间是由D1和D2之间的组合逻辑时延决定的。例如:假设D1和D2之间的组合逻辑时延为2ns,时钟周期为10ns,这意味着在时钟沿来到后,D1输出的新数据要过2ns才会到达D2的数据输入端,那么在这2ns,D2的数据 输入端保持的还是上一次的旧数据,其值不会立即更新,假设D2的最小保持时间为3ns,这意味时钟沿到来后,D2的数据输入端的值在3ns不能有变化,回到问题的关键,由于D1在时钟沿到来后的输出结果, 经过2ns的组合逻辑延时便到达了D2的输入端,而D2要求在时钟沿到来后的3ns其输入端的值不能改 变,这样D2的保持时间就得不到满足
7、,所以D2的保持时间必须小于等于2ns。至于说T2min为0时的情况,其实T2min是永远不能为0的,即使是一根导线其时延也是不可能为0的,这就是为什么移位寄存 器的两个触发器之间连的只是一根导线, 导线后端触发器的保持时间却还是可以满足的原因, 其实移位寄 存器中触发器的保持时间可以看成是小于等于其间导线的时延。建立时间:触发器在时钟沿来到前,其数据输入端的数据必须保持不变的时间;保持时间:触发器在时钟沿来到后,其数据输入端的数据必须保持不变的时间。因为触发器部数据的形成是需要一定的时间的,如果不满足建立和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输岀将不稳定,在0和1之间变化,这时
8、需要经过一个恢复时间,其输岀才能稳定,但稳定后的值并不一定是你的输入值。这就是为什么要用两级触发器来同步异步输入信号。这样做可以防止 由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑 中,导致亚稳态的传播。两级触发器可防止亚稳态传播的原理:假设第一级触发器的输入不满足其建立保 持时间,它在第一个脉冲沿到来后输岀的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输岀的亚稳态数据在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间,如果都满足 了,在下一个脉冲沿到来时,第二级触发器将不会岀现亚稳态,因为其输入端的数据满足其建立保持时间。
9、同步器有效的条件:第一级触发器进入亚稳态后的恢复时间+第二级触发器的建立时间 =时钟周期。(编者注:maxbird在该部分详细说明了建立时间和保持时间的概念,以及如果不满足二者可能导致的亚 稳态的传播。注意这里说的建立时间和保持时间都是针对时钟而言的,在进行时序约束时所指的就是这种,而很多网友以前学习的建立时间保持时间的概念是针对信号而言的,所指的对象不同,分析岀来的结论完 全相反,一定注意不要混淆。)Ih1688:不考虑CLOCK SKEW情况下。D2的建立时间要求:Tcol+T1(logic delay)+Tsetup2 Tc(CLOCK周期)。那么Tsetup2 Tc(CLOCK周期)(
10、Tco1+T1)。这个应该比较容易理解。相对 的保持时间实际就是路径的总延时(Tco1+T1)。保持时间Thold2 0。所以要求的最小时钟周期即为T=Tcq+Tpd+Tsetup-Tcd时钟周期为T,触发器D1的时钟沿到来到触发器Q变化的时间Tco(CLK-Q)最大为T1max,最小为Timin,逻辑组合电路的延迟时间最大为T2max,最小为T2min,问触发器D2的建立时间和保持时间。该题最终答案:T3setup FONTmaxbird:D2的保持时间就是时钟沿到来之后,D2的数据输入端要保持数据不变的时间,这个时间是由D1和D2之间的组合逻辑时延决定的。例如:假设D1和D2之间的组合逻辑
11、时延为2ns,时钟周期为10ns,这意味着在时钟沿来到后,D1输出的新数据要过2ns才会到达D2的数据输入端,那么在这2ns,D2的数据输入端保持的还是上一次的旧数据,其值不会立即更新,假设D2的最小保持时间为3ns,这意味时钟沿到来后,D2的数据输入端的值在3ns不能有变化,回到问题的关键,由于D1在时钟沿到来后的输岀结果,经过2ns的组合逻辑延时便到达了D2的输入端,而D2要求在时钟沿到来后的3ns其输入端的值不能改变,这样D2的保持时间就得不到满足,所以D2的保持时间必须小于等于2ns。至于说T2min为0时的情况,其实T2min是永远不能为0的,即使是一根导线其时延也是不可能为0的,这
12、就是为什么移位寄存器的两个触发器之间连的只是一根导线,导线后端触发器的保持时间却还是可以满足的原因,其实移 位寄存器中触发器的保持时间可以看成是小于等于其间导线的时延。建立时间:触发器在时钟沿来到前,其数据输入端的数据必须保持不变的时间;保持时间:触发器在时钟沿来到后,其数据输入端的数据必须保持不变的时间。如下图:X “1旳 一I h时钟- SIBREL谨立时间th俣持羽间因为触发器部数据的形成是需要一定的时间的,如果不满足建立和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输岀将不稳定,在0和1之间变化,这时需要经过一个恢复时间,其输岀才能稳定,但稳定后的值并不一定是你的输入值。这就是为
13、什么要用两级触发器来同步异步输入信号。这样做可以防 止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑 中,导致亚稳态的传播。两级触发器可防止亚稳态传播的原理:假设第一级触发器的输入不满足其建立保 持时间,它在第一个脉冲沿到来后输岀的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输岀的亚稳 态数据在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间,如果都满足 了,在下一个脉冲沿到来时,第二级触发器将不会岀现亚稳态,因为其输入端的数据满足其建立保持时间。同步器有效的条件:第一级触发器进入亚稳态后的恢复时间maxbird在该部分详细
14、说明了建立时间和保持时间的概念,以及如果不满足二者可能导致的亚稳态 的传播。注意这里说的建立时间和保持时间都是针对时钟而言的, 在进行时序约束时所指的就是这种, 而 很多网友以前学习的建立时间保持时间的概念是针对信号而言的,所指的对象不同,分析出来的结论完全 相反,一定注意不要混淆。不考虑CLOCK SKEW情况下。D2的建立时间要求:Tcol+T1(logic delay)+Tsetup2 Tc(CLOCK周 期)。那么Tsetup2 Tc(CLOCK周期)(Tco1+T1)。这个应该比较容易理解。相对的保持时间实 际就是路径的总延时(Tco1+T1)。保持时间Thold2(Tco1+T1)
15、。+第二级触发器的建立时间=时钟周期不考虑CLOCKSKEW情况下。D2的建立时间要求:Tco1T1(logic delay)Tsetup2 Tc(CLOCK周 期)。那么Tsetup2 Tc(CLOCK周期)(Tco1+T1)。这个应该比较容易理解。相对的保持时间实际 就是路径的总延时(Tco1+T1)。保持时间Thold2(Tco1+T1)。QUOTE:你说的保持时间应该指的是输入引脚的保持时间:tH = + - 如果你正确设置了convert_clk和out_clk的时序分析参数, 在时序分析报告中应该看到满足时序要求的结 果:Clock Setup:convert_clk、Clock
16、Hold:convert_clk。你说的负值未必就不好,对于th、tsu来说,负值是好的。如果你在时序设置中指定了期望值的话,用期 望值减去实际值,得到的是你的余量(slack)。只有slack是正值,才是好的结果。如果你现在还没有分配引脚,并且不准备把设计用于实际系统的话,你可以暂时不关心th、tsuo但是一定要设置和分析你的时钟信号。负的setup和hold time还是比较好理解的。讨论一下setup time violation的形成-因为信号比clock后到达DFF,或者说到达的时间太晚了,这个时 候这个DFF就没有办法采样到这个信号,于是就出现了setup slako那么,假设你对
17、这一个DFF做优化,你会怎么做?-打包这个DFF,假设为DFFA。在DFFA中把clock加delay,再连接到原DFF。这样你的信号就可以走的慢一点, 慢到比clock还慢都没有问题-而这个时候setup time就被你给优化到负的值了。同样的可以解释负的hold time。下面这个来自:blog.ednchina./tanghtctc/195716/message.aspx时钟是整个电路最重要、最特殊的信号,系统大部分器件的动作都是在时钟的跳变沿上进行,这就要求时钟信号时延差要非常小,否则就可能造成时序逻辑状态岀错;因而明确FPGA设计中决定系统时钟的因素,尽量较小时钟的延时对保证设计的稳
18、定性有非常重要的意义。建立时间与保持时间建立时间(Tsu:set uptime)是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建立的时间不满足要求那么数据将不能在这个时钟上升沿被稳定的打入触发器;保持时间(Th:holdtime)是指数据稳定后保持的时间,如果保持时间不满足要求那么数据同样也不能被稳定的打入触发器。建立与保持时间的简单示意图如下图1所示。图1保持时间与建立时间的示意图在FPGA设计的同一个模块中常常是包含组合逻辑与时序逻辑,为了保证在这些逻辑的接口处数据能 稳定的被处理,那么对建立时间与保持时间建立清晰的概念非常重要。下面在认识了建立时间与保持时间 的概念上思考如下的问
19、题。图2同步设计中的一个基本模型图2为统一采用一个时钟的同步设计中一个基本的模型。图中Teo是触发器的数据输出的延时;Tdelay是组合逻辑的延时;Tsetup是触发器的建立时间;Tpd为时钟的延时。如果第一个触发器D1建立时间最 大为T1max,最小为Timin,组合逻辑的延时最大为T2max,最小为T2min。问第二个触发器D2立时间T3与保持时间T4应该满足什么条件,或者是知道了T3与T4那么能容许的最大时钟周期是多少。 这个问 题是在设计中必须考虑的问题,只有弄清了这个问题才能保证所设计的组合逻辑的延时是否满足了要求。下面通过时序图来分析:设第一个触发器的输入为D1,输出为Q1,第二个
20、触发器的输入为D2,输出为Q2;时钟统一在上升沿进行采样,为了便于分析我们讨论两种情况即第一:假设时钟的延时Tpd为零,其实这种情况在FPGA设计中是常常满足的, 由于在FPGA设计中一般是采用统一的系统时钟,也就是利用从全局时钟管脚输入的时钟,这样在部时钟的延时完全可以忽略不计。这种情况下不必考虑保持时间,因为 每个数据都是保持一个时钟节拍同时又有线路的延时,也就是都是基于CLOCK的延迟远小于数据的延迟基础上,所以保持时间都能满足要求,重点是要关心建立时间,此时如果D2的建立时间满足要求那么时序图应该如图3所示。从图中可以看出如果:T-Tco-TdelayT3即:Tdelayv T-Tco
21、-T3那么就满足了建立时间的要求,其中T为时钟的周期,这种情况下第二个触发器就能在第二个时钟的升沿图3符合要求的时序图如果组合逻辑的延时过大使得T-Tco-Tdelay=T3这也就是要求的D2的建立时间从上面的时序图中也可以看岀,D2的建立时间与保持时间与D1的建立与保持时间是没有关系的,而只和D2前面的组合逻辑和D1的数据传输延时有关,这也是一个很重要的结论。说明了延时没有叠加效应。第二种情况如果时钟存在延时,这种情况下就要考虑保持时间了,同时也需要考虑建立时间。时钟岀现较大的延时多是采用了异步时钟的设计方法,这种方法较难保证数据的同步性,所以实际的设计中很少采 用。此时如果建立时间与保持时
22、间都满足要求那么输岀的时序如图那么将不满足要求,第二个触发器就在第二个时钟的升沿将采到的是一个不定态,如图4所示。那么电路将不能正常的工作。5所示。图5时钟存在延时但满足时序从图5中可以容易的看出对建立时间放宽了Tpd,所以D2的建立时间需满足要求:邛d+T-Tco-T2max=T3由于建立时间与保持时间的和是稳定的一个时钟周期,如果时钟有延时,同时数据的延时也较小那么建立时间必然是增大的,保持时间就会随之减小,如果减小到不满足D2的保持时间要求时就不能采集到正确的数据,如图6所示。这时即T-(Tpd+T-Tco-T2min)=T4即Tco+T2min-Tpd=T4从上式也可以看出如果Tpd=
23、0也就是时钟的延时为0那么同样是要求Tco+T2minT4,但是在实际的应用中由于T2的延时也就是线路的延时远远大于触发器的保持时间即-IkT4所以不必要关系保持时间DI图6时钟存在延时且保持时间不满足要求综上所述,如果不考虑时钟的延时那么只需关心建立时间,如果考虑时钟的延时那么更需关心保持时间。下面将要分析在FPGA设计中如何提高同步系统中的工作时钟。如何提高同步系统中的工作时钟从上面的分析可以看出同步系统时对D2建立时间T3的要求为:T-Tco-T2max=T3所以很容易推出T=T3+Tco+T2max,其中T3为D2的建立时间Tset,T2为组合逻辑的延时。在一个设计中T3和Tco都是由
24、器件决定的固定值,可控的也只有T2也就时输入端组合逻辑的延时,所以通过尽量来减小T2就可以提高系统的工作时钟。为了达到减小T2在设计中可以用下面不同的几种方法综合来实现。通过改变走线的方式来减小延时以altera的器件为例,我们在quartus里面的timing closure floorplan可以看到有很多条条块块,我们可以将条条块块按行和按列分,每一个条块代表1个LAB,每个LAB里有8个或者是10个LE。它们的走线时延的关系如下:同一个LAB中(最快)同列或者同行 Tskew+ Thold2. Tcq + Tcomb 0) hold time you might face a prob
25、lem.More info, VHDL and VERILOG code as well as simulation utilities can be found at /A2:1) What causes HOLD VIOLATIONS in DESIGN.Simply, data should be hold for some time ( hold time) after the edge of the clock. So, if the data changes with thehold time might cause violation. In gen
26、eral,hold time will be fixed during backend work (duringPNR) while buildingclock tree. If u r a frontend designer, concentrate on fixingsetup time violationsrather than hold violations .2) How it effects DESIGN.If a chip is done with some setup violations it can work by reducing the frequency.If ach
27、ip is done with hold violations , JUST DUMP the chip. This is how it effects at the end of the day. Hold vilationsneeds to be fixed.3) What changes need to be done to make DESIGN work.PNR tools will route and place the cells in such a way that no timingviolations will occur. If still u facehold viol
28、ations , u can manully work on it to fix. Manually place the cells to avoid hold violations , or in the worst case,u can keep some buffers in the datapath to avoid hold violations (but be sure setup timing is not effected.)you said If a chip is done with hold violations, JUST DUMP the chip. why cant
29、 reducing the frequency to settle the hold violation as setup violation could you explain it clearerEquation for Setup TimeTclk Tclktoq + Tlogic + Tsetup + Tskew + TjitterEquation for Hold TimeTclktoq + Tlogic - Tskew TholdNote that Hold Time equation is independent of clk frequency(i.e Time period
30、Tclk)key things to note from above equationsa) once the silicon comes back , if u have setup time problem , u canincrease the clock period (Tclk) to fix it , whereas if u have holdtime problem , its a more serious problem and u will need a newmetal fix tapeout . ( But u can still test the current ch
31、ip using Low supply voltage,or High temperature or SS corner part that decrease hold time violation) Hi koggestone, It is nice information. Could you please give us more information on u will need a new metal fix tapeout . ( But u can still test the current chip using Low supply voltage, or High tem
32、perature or SS corner part that decrease hold time violation)what i meant was , when u have hold time violation , u dont need to throw away chip and wait for 3 months for fixedchip to come back. in the meanwhile , by playing with voltage and temperature , u can do other functional tests on thechip .
33、 since normally hold time simulation are done at FF corner , high voltage, low temperature which is thepessimistic case for hold time , by decreasing voltage , using high temperature, and a SS corner chip , we may belucky enough to find a part that works , to do other functional tests to catch any o
34、ther bugs before next tapeout.下面这个比较详细:Sunil Budumuru:Pls. make a note that HOLD violations are dangerous than SETUP. To keep it simple way, SETUP timing depends onthe frequency of operation. But HOLD time is not. Let us see the equations here.T = Frequency of operation (can be variable)Tcq = Flop c
35、lock to Flop output delay (fixed/constant)Tcomb = Delay od 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 b
36、e variable)For SETUP,T = Tcq + Tcomb + Tsetup - TskewIf you have setup time means u r violating the above rule. i.e some how the equation becomesT = Tcq + Tcomb + Tsetup - Tskew. But do u think it is the correctsolution. Obviously, NO. This is because we have other options to avoid setup violations
37、right. Tcomb : If you reducethe combinational delay (between the Flops of violated path) such a way that T = Tcq + Tcomb + Tsetup - Tskew. So, the SETUP violation is avoided. How do u reduce thecombinational delay? Try different logic structure without effecting the functionality. or try to reduce t
38、he morefanout nets within the logic. Or upsize or downsize the cells. If it worked out thats fine.Tskew: If u increase the skew, u can change T = Tcq + Tcomb + Tsetup -Tskew. How to increase the Tskew? Just keep buffers in the clock path. But be sure doesnt effect the HOLD timing.Case2: After the CH
39、IP is manufatured and is in your hand. In this case, one cannot access the Tcomb and Tskew.Only the variable that can handle is T.So, Just reduce the frequency (T) such that the violated equation, T = Tcq + Tcomb + Tsetup - Tskew.So, if u have setup violations on a manufatured chip, u can make it wo
40、rk by reducing the frequency.For HOLD,Thold + Tskew Tcq + Tcomb and ur aim is to make Thold + Tskew Tcq + Tcomb to Thold + Tskew = Tcq + Tcomb. But this might effect the SETUP time as you are increasingthe delay of combinational path. So this may not be the perfect solution always.Tskew : Reduce the
41、 clock skew so that you will land on Thold + Tskew = Tcq + Tcomb. To reduce the clock skew,the best solution is to take the help of your PNR engineer.Case2: After the CHIP is manufatured and is in your hand.Do you see any variables that will fix the hold violations after manufaturing?! NO right. So,
42、 its time to DUMPthe chip as we dont deliver malfunctioning chips to the customers.So becareful with the HOLD violations.Note: One can get those equations if u put the those scenarios on a paper and develop the timing diagrams.Hope Ive explained it properly.ust make sure that once you have added hol
43、d time, setup time and propagation delay, the clock period has not beenexceeded.t_clock t_setup + t_hold + t_prop_delayAnother way of looking at it is that the time left for your logicoperation between the two registers equals to the clockperiod minusthe setup and hold time.I copied an example about
44、 how to calculate setup and hold time from a book(in the attachment).giggs11,l think the formula u gave us is wrong, according to the waveform in the example, I get this:T_setup=(T_clock+T)T_combin_logic,T_hold=_combin_logicTIn above interview quiz ,T=0. So,the equation is:T_setup=(T_clock+ T) T_com
45、bin_logic=T_clock-T_setup =10ns-0.2ns=9.8nsThis gives a max clock frequency of 1/9.8ns.T_cycleTiCLKCREG1REG2(D)CLK(REG2)sh.jpg这个附件就是上面这个图:setuphold.pdf (2009-11-29 10:41:34, Size: 30.7 KB, Downloads: 5)n+1Tzzx下面这个附件的图:shixu1.jpg时序l.rar(2009-11-29 10:57:37, Size: 1.5 MB, Downloads: 15)再一个EkK XMiDiab2
46、.jpgSeqCktTiming.big.part1.rar (2009-11-29 10:57:37, Size: 1.43 MB, Downloads: 5)SeqCktTiming.big.part2.rar(2009-11-29 10:57:37, Size: 160 KB, Downloads: 3)Clack Frequency The ukjuk fmjuency for a割用lehromMu sequential circuit islimilciJ by the trnung (wameten of iu fljp- fhips and. Thislimil as call
47、ed fftrtwxinum clockfor Ehrcircuit Theclackas the reciprocal of thi* freiiuencyKJtiming purameterGite:+rF.沪鼻单皿 倉L*rlsiy* IH iF !# Tnifl伸,IMAijHQi机 FU;phFtapH:+ P冷沖li嚼udii严nii-ii inR. fiun*QJX鶯*.niiix吟讥*Miz linv; * Hiild11 iin*、For the 7M7 nm iFk-max“叫 20n*K =H4i*H 岳I * 1.31JX121*2D, jkXl 6ftExa EAam
48、pk1本帖最后由huahuagood于2009-11-29 11:10编辑我也来说两句查看全部回复最新回复?mentor00 (2009-11-29 16:27:24)很好的容,很全面的整理,建议加精。楼主多了。?mentor00 (2009-11-29 17:11:32)非常基本的概念,看明白了,关于约束的一大部分难关也就攻克了。?huahuagood (2009-11-29 18:06:26)QUOTE:原帖由mentor00于2009-11-29 17:11发表非常基本的概念,看明白了,关于约束的一大部分难关也就攻克了。多mentor老师。感觉时序这方面的东西,很基础,但要有深入又很难。
49、就像verilog,学起来简单,深入起来又会有很多不解。这帖子copy这些,看着看着也会觉得一知半解的2009.12.14:刚看到一个帖子,应该有帮助,就编辑放在这吧来自 通过约束保证异步时钟域之间的数据交换可靠?如何使用I/O逻辑单元部的寄存器资源?如何进行物理区域约束,完成物理综合和物理实现?等等。为了解决大家的疑难,我们将逐一讨论 这些问题。有些人不知道何时该添加约束,何时不需要添加?有些人认为低速设计不需要时序约束?关于这 些问题,希望下面关于约束作用的论述能够有所帮助!【附加约束的基本作用】:(1)提高设计的工作频率对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高
50、处理能力。通过附 加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。(2)获得正确的时序分析报告几乎所有的FPGA设计平台都包含静态时序分析工具,利用这类工具可以获得映射或布局布线后 的时序分析报告,从而对设计的性能做岀评估。静态时序分析工具以约束作为判断时序是否满足 设计要求的标准,因此要求设计者正确输入约束,以便静态时序分析工具输岀正确的时序分析报指定FPGA/CPLD引脚位置与电气标准FPGA/CPLD的可编程特性使电路板设计加工和FPGA/CPLD设计可以同时进行,而不必等FPGA/CPLD引脚位置完全确定,从而节省了系统开发时间。这样,电路板加工完成
51、后,设计者 要根据电路板的走线对FPGA/CPLD加上引脚位置约束,使FPGA/CPLD与电路板正确连接。另 外通过约束还可以指定10引脚所支持的接口标准和其他电气特性。为了满足日新月异的通信发 展,Xilinx新型FPGA/CPLD可以通过IO引脚约束设置支持诸如AGP、BLVDS、CTT、GTL、GTLP、HSTL、LDT、LVCMOS、LVDCI、LVDS、LVPECL、LVDSEXT、LVTTL、PCI、PCIX、SSTL、ULVDS等丰富的IO接口标准。另外通过区域约束还能在FPGA上规划各个模块的实现区域,通过物理布局布线约束,完成模块化设计等。【时序约束的概念和基本策略】时序约束
52、主要包括周期约束 (FFS到FFS,即触发器到触发器)和偏移约束(IPAD到FFS、FFS到OPAD)以及静态路径约束(IPAD到OPAD)等3种。通过附加约束条件可以使综合布线工 具调整映射和布局布线过程,使设计达到时序要求。例如用OFFSET_IN_BEFORE约束可以告诉综合布线工具输入信号在时钟之前什么时候准备好, 综合布线工具就可以根据这个约束调整与IPAD相连的Logic Circuitry的综合实现过程,使结果满足FFS的建立时间要求。附加时序约束的一般策略是先附加全局约束,然后对快速和慢速例外路径附加专门约束。附加全局约束时,首先定义设计的所有时钟,对各时钟域的同步元件进行分组
53、,对分组附加周期约束,然后对FPGA/CPLD输入输出PAD附加偏移约束、对全组合逻辑的PAD TOPAD路径附加约束。附加专门约束时,首先约束分组之间的路径,然后约束快、慢速例外路径和多周期路径,以及其 他特殊路径。【周期(PERIOD)的含义】周期的含义是时序中最简单也是最重要的含义,其它很多时序概念会因为软件商不同略有差异, 而周期的概念确是最通用的,周期的概念是FPGA/ASIC时序定义的基础概念。后面要讲到的其它时序约束都是建立在周期约束的基础上的,很多其它时序公式,可以用周期公式推导。周期约 束是一个基本时序和综合约束,它附加在时钟网线上,时序分析工具根据PERIOD约束检查时钟域
54、所有同步元件的时序是否满足要求。PERIOD约束会自动处理寄存器时钟端的反相问题,如果相邻同步元件时钟相位相反,那么它们之间的延迟将被默认限制为PERIOD约束值的一半。时钟的最小周期为:TCLK = TCKO +TLOGIC +TNET +TSETUP-TCLK_SKEWTCLK_SKEW =TCD2-TCD1其中TCKO为时钟输出时间,TLOGIC为同步元件之间的组合逻辑延迟,TNET为网线延迟,TSETUP为同步元件的建立时间,TCLK_SKEW为时钟信号延迟的差别。数据和时钟之间的约束:OFFSET和SETUP、HOLD时间为了确保芯片数据采样可靠和下级芯片之间正确的交换数据,需要约束
55、外部时钟和数据输入输岀 引脚之间的时序关系(或者部时钟和外部输入/输岀数据之间的关系,这仅仅是从采用了不同的参照系罢了)。约束的容为告诉综合器、布线器输入数据到达的时刻,或者输岀数据稳定的时刻,从而保证与下一级电路的时序关系。这种时序约束在Xilinx中用Setup to Clock(edge),Clock(edge)tohold等表示。 在Altera里常用tsu (Input SetupTimes)、th (Input Hold Times)、tco(Clock to OutDelays)来表示。很多其 它时序工具直接用setup和hold表示。其实他们所要描述的是同一个问题,仅仅是时间节
56、点的定 义上略有不同。下面依次介绍。关于输入到达时间,这一贴估计问题比较多,看起来也比较累,但是没有办法,这些都是时序的基本概念啊。搞不清楚,永远痛苦,长痛不如短痛了,呵呵。Xilinx的输入到达时间的计算定义 的含义是输入数据在有效时钟沿之后的TARRIVAL时刻到达。则,TARRIVAL=TCKO+TOUTPUT+TLOGIC公式1根据周期(Period)公式,我们可以得到:Tcko+Toutput+Tlogic+Tinput+Tsetup-Tclk skew=Tclk;公式2将公式1代入公式2:一级就可以正确地采样数据。其中TOUTPUT为设计中连接同步元件输出端的组合逻辑、网线和PAD
57、的延迟之和,TCKO为同步元件时钟输出时间。Tarrival+Tinput+Tsetup-Tclk_skew=Tclk,而Tclk_skew满足时序关系后为负,所以TARRIVAL +TINPUT+TSETUP TCLK公式3,这就是Tarrival应该满足的时序关系。 其中TINPUT为输入端的组合逻辑、 网线和PAD的延迟之 和,TSETUP为输入同步元件的建立时间。数据延时和数据到达时间的关系TDELAY为要求的芯片部输入延迟,其最大值TDELAY_MAX与输入数据到达时间TARRIVAL的关系:TDELAY_MAX+TARRIVAL=TPERIOD公式4所以:TDELAYTDELAY_
58、MAX=TPERIOD-TARRIVAL要求输岀的稳定时间从下一级输入端的延迟可以计算岀当前设计输岀的数据必须在何时稳定下来,根据这个数据对设计输岀端的逻辑布线进行约束,以满足下一级的建立时间要求,保证下一级采样的数据是稳定的 计算要求的输岀稳定时间的公式推导如下:定义:TSTABLE = TLOGIC +TINPUT +TSETUP从前面帖子介绍的周期(Period)公式,可以得到(其中TCLK_SKEW=TCLK1-TCLK2):TCLK=TCKO+TOUTPUT+TLOGIC+TINPUT+TSETUP+TCLK SKEW将TSTABLE的定义代入到周期公式,可以得到:TCLK=TCKO
59、+TOUTPUT+TSTABLE+TCLK_SKEW所以,TCKO +TOUTPUT+TSTABLEVTCLK这个公式就是TSTABLE必须要满足的基本时序关系,即本级的输岀应该保持怎么样的稳定状态,才能保证下级芯片的采样稳定。有时我们也称这个约束关系是输岀数据的保持时间的时序约束关 系。只要满足上述关系,当前芯片输岀端的数据比时钟上升沿提早TSTABLE时间稳定下来,下【实施上述约束的方法和命令】实施上述约束的基本方法是,根据已知时序信息,推算需要约束的时间值,实施约约束。具体的 说是这样的,首先对于一般设计,首先掌握的是TCLK,这个对于设计者来说是个已知量。前面介绍公式和图中的TCKO和
60、TSETUP(注:有的工具软件对TCKO和TSETUP的定义与前面图形 不同,还包含了到达同步器件的一段logic的时延)是器件部固有的一个时间量,一般我们选取典 型值,对于FPGA,这个量值比较小,一般不大于12ns。比较难以确定的是TINPUT和TOUTPUT两个时间量。约束输入时间偏移,需要知道TINPUT,TINPUT为输入端的组合逻辑、 网线和PAD的延迟之和,PAD的延时也根据器件型号也有典型值可选,但是到达输入端的组合逻辑电路和网线的延时就比较难以确定了,只能通过静态时序分析工具分析,或者通过底层布局布线工具量取,有很大的经 验和试探的成分在里面。约束输出时间偏移, 需要知道TO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗器械经营质量管理规范(GSP)培训试题及答案
- 183红色喜庆福字背景的“金龙献瑞”龙年新年主题模板
- 燃气与电气设备检查管理制度培训
- 第9课《天上有颗南仁东星》自学导学单 2025-2026学年统编版语文八年级上册(学案)
- 2025《窦娥冤》悲剧冲突根源课件
- 铝业公司安全生产工作规定培训课件
- 监察审计部副主任安全责任制培训
- 仪表副主任岗位职责培训
- 2026年广东金融学院单招职业倾向性测试题库及答案详解(典优)
- 2026年广东松山职业技术学院单招综合素质考试题库含答案详解(考试直接用)
- 2026年江西科技学院单招职业技能测试题库附答案详解
- 2026年江苏信息职业技术学院单招职业倾向性测试必刷测试卷附答案
- 2026年皖北卫生职业学院单招职业适应性测试题库附答案
- 2026年江西电力职业技术学院单招职业技能考试题库及参考答案详解1套
- 公立美容医院运营方案模板
- GB/T 26951-2025焊缝无损检测磁粉检测
- 化肥产品生产许可证实施细则(一)(复肥产品部分)2025
- 养老院护理流程培训
- 2026年黑龙江旅游职业技术学院单招职业倾向性考试必刷测试卷必考题
- (13)普通高中艺术课程标准日常修订版(2017年版2025年修订)
- 给孩子讲大数据
评论
0/150
提交评论