原创 【博客大赛】6. Input Delay Constraints实例一(Timing Constraints in Vivado)

2014-4-13 12:53 2935 21 21 分类: FPGA/CPLD 文集: Timing Constraints in Vivado

       在《5. Constraining Input Delay》博文中,深入讲解了如何分析输入端口到FPGA内部时序单元的路径,并且对input delay进行约束。这一节介绍input delay约束实例,加深一下对上节中理论的理解。

       如图1所示系统,以太网PHY芯片与FPGA相连,分为三组接口:

       RX接口:时钟RXCK和数据RXD

       TX接口:时钟TXCK和数据TXD

       MII管理接口:时钟MDC和数据MDIO

20140413125112788001.jpg

1

       其中RX接口属于源同步输入接口,以下就以RX接口为例讲解一下约束input delay

Clock Constraints

       首先约束时钟,如图2所示为PHYDP83849ID)在100Mb/s模式下的时序图,时钟和数据为Center Aligned关系,因此时钟在FPGA中无需再移相,可直接使用RXCK采集数据,时钟约束如下:

create_clock –name RXCK –period 40 –waveform {0 20} [get_ports {RXCK}]

20140413125117353002.png

2

Input Delay Value:

       根据上节中源同步输入计算Input Delay的公式:

       max_input_delay = Tbd_max + Tco_max - Tcd_min

       min_input_delay = Tbd_min + Tco_min - Tcd_max

 

       Tbd为数据线RXD在板上的延时,也就是信号在电路板上的传播时间。查找了网上的一些资料:

信号速度还与不同材料的介电常数相关,具体计算公式是   V=C/Er0.5    ,其中Er是信号线周围材料的相对介电常数。我们常见的PCB材料Fr4的介电常数在4.2-4.5左右,为了计算方便我们取4。带入公式可以算出,Fr4材料制作的PCB板上面信号的传输速度是光速的二分之一。光速大约等于12inch/ns,计算得出Fr4板上信号速度大约是6inch/ns。换算成延时,也就是166ps/inch。这就是我们经常说的PCB板上信号延时大约是166ps/inch

       在此例中,通过PCB设计软件计算得到RXD[3:0]的走线长度,分别是LRXD[3]=426milLRXD[2]=451milLRXD[1]=502milLRXD[0]=406mil,因此可以计算得到:

       Tbd_max = 502mil * 166ps/inch = 0.083332ns

       Tbd_min = 406mil * 166ps/inch = 0.067396ns

 

       Tcd为时钟线RXCK在板上的延时,走线长度LRXCK=399mil,因此可以计算得到:

       Tcd_max=Tcd_min=399mil * 166ps/inch = 0.066234ns

      

       TcoRX接口clock_to_output时间,如图2中,等于T2.5.2时间参数,因此可得到:

       Tco_max = 30ns

       Tco_min = 10ns

 

       综上:

       max_input_delay = Tbd_max + Tco_max - Tcd_min = 0.083332ns + 30ns - 0.066234ns = 30.017098ns

       min_input_delay = Tbd_min + Tco_min - Tcd_max = 0.067396ns + 10ns - 0.066234ns = 10.001162ns

 

Constraints

       很显然,RX接口为SDR,时钟约束和input delay值的计算后,可以对input delay进行约束,命令如下:

set_input_delay -clock [get_clocks RXCK] -max 30.017098 [get_ports {RXD[3] RXD[2] RXD[1] RXD[0]}]

set_input_delay -clock [get_clocks RXCK] -min 10.001162 [get_ports {RXD[3] RXD[2] RXD[1] RXD[0]}]

 

       VivadoGUI界面中也可以进行约束,设计经过综合实现后,打开编辑约束文件,如图3所示

20140413125123475003.jpg

3

       选择Set Input Delay,在右侧双击,可弹出Input Delay设置窗口,如图4所示

20140413125130200004.jpg

4

       在弹出的Input Delay窗口中设置参数,如图56所示,Input Delay约束完成。

20140413125137813005.jpg

5

20140413125143198006.jpg

6

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
21
关闭 站长推荐上一条 /3 下一条