广告

9.Output Delay Constraints实例(Timing Constraints in Vivado)

2017-1-11 13:21 163 0

本节讲解一下output delay的实例。依旧是Ethernet PHY和FPGA的接口,框图如图1所示,其中TX接口,MII管理接口输出方向需要output delay约束。




图1


TX接口:


TX接口由时钟TXCK和数据TXD[3:0]组成,都是从FPGA输出,即时钟和数据同源,因此TX接口为源同步输出接口。


根据上节中output delay value的计算公式:


max_input_delay = Tbd_max + Tsetup - Tcd_min


min_input_delay = Tbd_min – Thold - Tcd_max


其中有4个时间参数:Tbd,Tcd,Tsetup和Thold,如图2所示。




图2


Tcd和Tbd分别是时钟TXCK和数据TXD[3:0]在板上的延时。首先通过PCB设计软件计算得到它们布线长度:LTXCK=784mil,LTXD[3]=663mil,LTXD[2]=680mil,LTXD[1]=852mil,LTXD[0]=901mil,因此计算得到:


Tcd_max= Tcd_min=784mil*166ps/inch= 0.130144ns


Tbd_max=901mil166ps/inch=0.149566ns, Tbd_min=663mil166ps/inch=0.110058ns


Tsetup和Thold是PHY(DP83849ID)芯片的时间参数,如图3所示,查询datasheet得到:


参考时间参数T2.4.2,Tsetup=10ns

参考时间参数T2.4.3,Thold=0ns




图3


综上可得到output delay value:


max_output_delay = Tbd_max + Tsetup - Tcd_min=0.149566ns + 10ns - 0.130144ns=10.019422ns


min_output_delay = Tbd_min – Thold - Tcd_max=0.110058ns – 0ns - 0.130144ns=-0.020086ns


可能有些人会诧异,为什么min_output_delay的值会是负的?负的表示相对于输出是反方向的延时。


下面对TX接口的output delay进行约束:


create_clock -name TXCK -period 40 -waveform {0 20} [get_ports {TXCK}]


create_clock -name TXCK_PHY -period 40 -waveform {0 20}


set_output_delay –clock TXCK_PHY -max 10.019422 [get_ports {TXD[3] TXD[2] TXD[1] TXD[0]}]


set_output_delay –clock TXCK_PHY -min -0.020086ns [get_ports {TXD[3] TXD[2] TXD[1] TXD[0]}]


Vivado中约束如下图所示:




约束主时钟




约束虚拟时钟




约束min output delay




约束max output delay


MII管理接口:


MII管理接口由时钟MDC和数据MDIO组成,其中MDIO为双向接口,因此需要对其进行input delay和output delay约束。在其output方向,MDC和MDIO都是从FPGA输出的,因此也是源同步输出接口。


时间参数的计算与TX接口类似,如图4所示




图4


其中MDC和MDIO在板上的布线长度分别为LMDC=924mil,LMDIO=587mil,可得:


Tcd_max= Tcd_min=924mil*166ps/inch= 0.153384ns


Tbd_max=Tbd_min=587mil*166ps/inch=0.097442ns


Tsetup和Thold的值参考datasheet,如图5所示,可得:


参考时间参数T2.3.2,Tsetup=10ns


参考时间参数T2.3.3,Thold=10ns




图5


综上可得到output delay value:


max_output_delay = Tbd_max + Tsetup - Tcd_min=0.153384ns + 10ns - 0.097442ns=10.055942ns


min_output_delay = Tbd_min – Thold - Tcd_max=0.153384ns - 10ns - 0.097442ns=-9.944058ns


下面对MII管理接口的output delay进行约束:


create_clock -name MDC -period 400 -waveform {0 200} [get_ports {MDC}]


create_clock -name MDC_PHY -period 400 -waveform {0 200}


set_output_delay –clock MDC_PHY -max 10.055942 [get_ports {MDIO}]


set_output_delay –clock MDC_PHY -min -9.944058 [get_ports {MDIO}]


Vivado中约束如下图所示:




约束主时钟




约束虚拟时钟




约束max output delay




约束min output delay


广告

文章评论 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
广告
关闭 热点推荐上一条 /3 下一条