时序约束条件
下面来具体讨论一下系统时序需要满足的一些基本条件。我们仍然以下图的结构为例,并可以据此画出相应的时序分析示意图。
在上面的时序图中,存在两个时序环,我们称实线的环为建立时间环,而虚线的环我们称之为保持时间环。可以看到,这两个环都不是闭合的,缺口的大小就代表了时序裕量的多少,因此设计者总希望尽可能增大这个缺口。同时还要注意到,每个环上的箭头方向不是一致的,而是朝着正反两个方向,因为整个系统时序是以时钟上升沿为基准的,所以我们时序环的起点为系统时钟clk in的上升沿,而所有箭头最终指向接收端的控制时钟CLKC的边沿。
先来分析建立时间环:
缺口的左边的半个时序环代表了从第一个系统时钟上升沿开始,直到数据传输至接收端的总的延时,我们计为数据延时,以Tdata_tot表示:
Tdata_tot=Tco_clkb+Tflt_clkb +Tco_data +Tflt_data
上式中:Tco_clkb是系统时钟信号CLKB在时钟驱动器的内部延迟;Tflt_ clkb 是CLKB从时钟驱动器输出后到达发送端(CPU)触发器的飞行时间;Tco_data是数据在发送端的内部延迟;Tflt_data是数据从发送端输出到接收端的飞行时间。
从CLKC时钟边沿的右边半个时序环代表了系统时钟到达接收端的总的沿时,我们计为时钟延时,以Tclk_tot表示:
Tclk_tot =Tcycle +Tco_clka +Tflt_clka – Tjitter
其中,Tcycle是时钟信号周期;Tco_clka 是系统时钟信号CLKA(第二个上升沿)在时钟驱动器的内部延迟;Tflt_clka是时钟信号从时钟驱动器输出到达接收端触发器的飞行时间;Tjitter是时钟的抖动误差。
因此我们可以根据建立时间裕量的定义,得到:
Tsetup_margin = Tclk_tot – Tdata tot – Tsetup
将前面的相应等式带入可得:
Tsetup_magrin = Tcycle + Tco_clka + Tflt_clka – Tjitter – Tco_clkb – Tflt_clkb – Tco_data – Tflt_data – Tsetup
我们定义时钟驱动器(PLL)的两个时钟输出之间的偏移为Tclock_Skew ,两根CLOCK走线之间的时钟偏移为TPCB_Skew ,即:
Tclock_Skew = Tco_clkb - Tco_clka;
TPCB_Skew = Tflt_clkb - Tflt_clka
这样就可以得到建立时间裕量的标准计算公式:
Tsetup_magrin =Tcycle – TPCB_skew –Tclock_skew –Tjitter – Tco_ data -Tflt_data-Tsetup (1.6.1)
再来看保持时间环:
对照上图,我们可以同样的进行分析:
Tdata_delay = Tco_clkb + Tflt_clkb + Tco_data + Tflt_data
Tclock delay = Tco_clka + Tflt_clka
于是可以得出保持时间裕量的计算公式:
Thold margin = Tdata_delay – Tclock_dalay – Thold_time
即: Thold margin = Tco_data + Tflt_data + Tclock_skew + Tpcb_skew – Thold (1.6.2)
可以看到,式1.6.2中不包含时钟抖动Jitter的参数。这是因为Jitter是指时钟周期间(Cycle to Cycle)的误差,而保持时间的计算和时钟周期无关。
对于任何时钟控制系统,如果要能保证正常工作,就必须使建立时间余量和保持时间裕量都至少大于零,即Tsetup marin 》0;Thold margin 》0,将公式1.6.1和1.6.2分别带入就可以得到普通时钟系统的时序约束条件不等式:
TPCB_skew +Tclock_skew +Tjitter + Tco_data + Tflt_data+Tsetup《 Tcycle (1.6.3)
Tco_data + Tflt_data + Tclock_skew + Tpcb_skew 》 Thold (1.6.4)
需要注意的是:
1. 数据在发送端的内部延时Tco_data可以从芯片的datasheet查到,这个值是一个范围,在式1.6.3中取最大值,在式1.6.4中取最小值。
2.数据在传输线上的飞行时间Tflt_data在实际计算中应该取最大/最小飞行时间参数,在式1.6.3中取最大飞行时间,在式1.6.4中取最小飞行时间。
3. 时钟的偏移TPCB_skew和Tclock_skew也是一个变化的不确定参数,一般为+/-N ps,同样,在建立时间约束条件1.6.3中取+Nps,而在保持时间约束条件1.6.4中取-Nps。
从上面的分析可以看到,对于PCB设计工程师来说,保证足够稳定的系统时序最有效的途径就是尽量减小PCB skew和信号传输的飞行时间,而其它的参数都只和芯片本身的性能有关。实际中经常采取的措施就是严格控制时钟和数据的走线长度,调整合理的拓补结构,并尽可能减少信号完整性带来的影响。然而,即便我们已经考虑的很周全,普通时钟系统的本身的设计瓶颈始终是无法打破的,也就是建立时间的约束,我们在尽可能减少由PCB布线引起的信号延迟之外,器件本身的特性如Tco、Jitter、TSetup等等将成为最主要的制约因素,尽管我们可以通过提高工艺水平和电路设计威廉希尔官方网站 来不断提高数字器件的性能,但得到的效果也仅仅是在一定范围之内提升了系统的主频,在频率超过300MHz的情况下,我们将不得不放弃使用这种普通时钟系统设计。
审核编辑 :李倩
-
FPGA
+关注
关注
1629文章
21729浏览量
603050 -
pll
+关注
关注
6文章
776浏览量
135140 -
时序图
+关注
关注
2文章
58浏览量
22443 -
时钟驱动器
+关注
关注
0文章
33浏览量
13828
原文标题:FPGA知识汇集-FPGA系统时序理论
文章出处:【微信号:gh_873435264fd4,微信公众号:FPGA威廉希尔官方网站 联盟】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论