原创 7. Input Delay Constraints实例二(Timing Constraints in Vivado)

2017-1-11 13:46 1156 10 10

有很多学习FPGA的童鞋对时序约束和分析都处于懵懂的状态,笔者也是经历了漫长的过程才对时序有了一定的认识,现在写Timing Constraints in Vivado系列博文也是抱着能系统学习的态度才开始的。


后续的博文,笔者准备理论讲解结合多个实例介绍的方式展开,这样有利于加深一下大家对理论的理解。可能实例中有理解及计算的纰漏,还望大家及时指正。


在《6. Input Delay Constraints实例一》中分享了一个实例,如图1所示,对RX接口进行了约束。另外MII管理接口,其中MDIO是双向数据接口,肯定需要input delay的约束,由于笔者开始不确定此接口属于系统同步输入还是源同步输入,没有做进一步介绍,那就在此篇博文深入分析一下。


图1


最初以为MII接口属于源同步输入,但是仔细查看后发现不对劲儿,时钟MDC并不是由PHY提供的,而是FPGA输出给PHY的,这与源同步接口的定义矛盾,源同步需要时钟和数据来自同一个源。因此只能划分到系统同步输入范畴了,仔细一想还是能说得通的,系统同步中只要求source clock和destination clock来自同一个时钟网络即可,不管是在FPGA外部还是内部,如图2所示,


图2


《5. Constraining Input Delay》系统同步输入的input delay value计算公式如下:


max input delay = Tclkd_ext_max + Tco_max + Tbd_max – Tclkd_int_min


min input delay = Tclkd_ext_min + Tco_min + Tbd_min – Tclkd_int_max


此例的情况,时钟源到FPGA输入端口的延时Tclkd_int等于0,时钟源到外部芯片的延时为TCD,因此得到变化后的公式如下:


max input delay = TCD_max + TCO_max + TBD_max


min input delay = TCD_min + TCO_min + TBD_min


各时间参数的计算如下:


TCD :时钟线MDC在板上的长度LMDC=489mil,TCD_max= TCD_min=489mil*166ps/inch= 0.081174ns


TBD:数据线MDIO在板上的长度LMDIO=634mil,TBD_max= TBD_min=634mil*166ps/inch= 0.105244ns


TCO:参考PHY(DP83849ID)的手册,如图3所示,TCO等于时间参数T2.3.1,得到TCO_max=30ns,TCO_min=0ns。


图3


得到input delay值如下:


max input delay = TCD_max + TCO_max +TBD_max?? =0.081174ns+30ns+0.105244ns = 30.186418ns


min input delay = TCD_min + TCO_min + TBD_min =0.081174ns+0ns+0.105244ns=0.186418ns


综上,MII管理接口的约束如下:


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


set_input_delay -clock [get_clocks MDC] -max 30.186418 [get_ports {MDIO}]


set_input_delay -clock [get_clocks MDC] -min 0.186418 [get_ports {MDIO}]


在Vivado中的约束如图4,5所示:


图4


图5


文章评论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
10
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /4 下一条