6. Input Delay Constraints实例一(Timing Constraints in Vivado)

2017-1-11 13:50 226 0

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


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


RX接口:时钟RXCK和数据RXD;


TX接口:时钟TXCK和数据TXD;


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


图1


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


Clock Constraints:


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


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


图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]=426mil,LRXD[2]=451mil,LRXD[1]=502mil,LRXD[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


Tco为RX接口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]}]


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


图3


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


图4


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


图5


图6


广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
Hoki 2017-01-11 17:35
LX9开发板呼吸灯实现
对LX9开发板硬件评测后,从这一节开始真正进入FPGA开发的世界。很多开发板的例程中必有跑马灯实验,老跑马也没意思,咱来把新潮的,整一个呼吸灯。 呼吸灯最初是出现在apple公司的笔记本产品中,当合上...
Hoki 2017-01-11 16:47
LX9的microblaze配置
虽然XC6SLX9芯片资源比较少,但是嵌一个microblaze还是搓搓有余的,这一节就来评测一下在XC6SLX9上microblaze的配置。 有两种方法配置microblaze,一是在ISE软件中...
Hoki 2017-01-11 16:32
zynq评测
Zynq芯片是业界第一款在FPGA中集成ARM核的芯片,由FPGA的发明者xilinx公司推出的。Zynq严格来说不能以FPGA来定义它,因为其是以处理器为中心的平台,能够在单芯片上提供软、硬件和 I...
Hoki 2017-01-11 16:19
u-boot
Zyny芯片启动加载分为3步: 1. 芯片上电启动,首先读取BootROM中的程序,初始化一些必要的外设,然后根据专用引脚电平判断该从何处启动first stage Bootloader(FSBL),...
Hoki 2017-01-11 16:09
基于zynq的交叉编译平台
Zynq芯片的最大特点是其集成了双ARM Cortex-A9处理器,因此zynq的应用基本是以这个ARM核为核心,再配合FPGA逻辑作为协处理器,几乎能实现所有较复杂的应用。并且在ARM上可以跑操作系...
Hoki 2017-01-11 15:54
u-boot image生成
这节介绍一下如何生成u-boot image文件,在SDK软件中点击Xilinx Tools→Create Boot Image工具即可生成,但是生成image文件需要首先集齐3个文件:u-boot....
我要评论
0
0
广告