【 Vivado 】输出延迟约束实例
Output Delay Constraints Instance
本节讲解一下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.130144n
Tbd_max=901mil*166ps/inch= 0.149566ns
Tbd_min=663mil*166ps/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 -nameTXCK -period 40 -waveform {0 20} [get_ports {TXCK}]
create_clock -nameTXCK_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 -nameMDC -period 400 -waveform {0 200} [get_ports {MDC}]
create_clock -nameMDC_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
【 Vivado 】输出延迟约束实例相关推荐
- 【 Vivado 】输入延迟约束实例
上篇博文讲了输入延迟约束( Input Delay Constraints):输入延迟约束(Constraining Input Delay) 这篇博文讲解具体的实例,通过实例去学习是最有效果的. 实 ...
- 【 Vivado 】输出延迟约束(Constraining Ouput Delay)
FPGA内部时序单元到输出端口的路径也需要约束其output delay,如图1所示框图. 图1 约束output delay的命令是set_output_delay,具体的参数如下: ...
- TIMING_06 VIVADO环境下的时序约束 之 输入延迟约束
由于该系列文章阅读有顺序性,所以请跳转至该系列文章第一篇从头开始阅读,并按照文章末尾指示按顺序阅读,否则会云里雾里,传送门在此: https://blog.csdn.net/qq_33486907/ ...
- Vivado时序约束之—— set_max_delay、set_min_dealy(最大最小延迟约束)
set_max_delay.set_min_delay(最大.最小延迟约束) 1. set_max_delay.set_min_delay约束的目的 最大最小延迟约束主要是为了解决异步信号之间的时序路 ...
- 输入/输出延迟单元( IODELAY)简介
输入 / 输出延迟单元( IODELAY )简介 每个 I/O 模块包含一个可编程绝对延迟单元,称为 IODELAY . IODELAY 可以连接到 ILOGIC/ISERDES 或 OLOGIC/O ...
- (10)Vivado 异步时钟约束
(10)Vivado 异步时钟约束 1 文章目录 1)文章目录 2)时序约束引言 3)FPGA时序约束课程介绍 4)Vivado 异步时钟约束 5)技术交流 6)参考资料 2 时序约束引言 1)什么是 ...
- oracle非延迟约束,Oracle可延迟约束Deferable的使用
标准规定,约束可以是deferrable或not deferrable(默认). not deferrable 约束在每一个DML语句后检查: deferrable 约束可以在每一个insert,de ...
- 小梅哥FPGA时序分析和约束实例演练课程
看过了他的nios课程,对他的能力很认同 只有前5讲是开源的,后面需要在淘宝上购买,暂时用不到,我就没有买课程,只看了前5讲感觉还挺有用,需要的时候再说吧. 小梅哥 FPGA时序分析 FPGA时序约束 ...
- python输出结果空格分割_python 输出列表元素实例(以空格/逗号为分隔符)
给定list,如何以空格/逗号等符号以分隔符输出呢? 一般的,简单的for循环可以打印出list的内容: l=[1,2,3,4] for i in l: print(i) 输出结果一行一个元素: 1 ...
最新文章
- 基于U-Net图像分割的划痕缺陷分割(课程设计)
- svn还原文件中去掉已经删除的文件
- 洗被套的时候洗衣机里面不要再放其他东西
- boost::fusion::extension::adt_attribute_proxy用法的测试程序
- OpenCV-图像特征harris角点检测/SIFT函数/特征匹配-05
- Rxjs Observable.pipe 传入多个 operators 的执行逻辑分析
- C# -WinForm 中英文实现, 国际化实现的简单方法
- 模型驱动 ModelDriven
- Win8下右键“发送到”没有蓝牙选项的解决办法
- java中哪些可以私有化_《Java基础学习笔记》JAVA修饰符之私有化(Private)
- (转)RabbitMQ学习之Headers交换类型(java)
- KinedEditor特性
- 【Python-3.3】函数中的可变参数和关键字参数
- [Andriod设计模式之旅]——Builder模式
- DBGrid 应用系列
- GeoTiff及GDAL切图(java)
- 【分享】“金蝶云星辰“ 在集简云平台集成应用的常见问题与解决方案
- 国产操作系统之优麒麟安装
- 详解线上线下收单业务(1)
- Python BeautifuSoup 库 mooc 中国大学学习
热门文章
- mapreduce介绍
- C#实现Web应用程序定时启动任务
- 介绍一个好用的抓取dump的工具-ProcDump
- ASP.NET文件上传
- android 打开wifi并链接到制定ip,当设备连接到Android中的WiFi时,如何获取蜂窝网络的IP地址...
- python的threading安装不了_python – 我无法安装Gevent
- HTML控制文本框只能输入数字和小数点,并且只能保留小数点后两位 金额转换,阿拉伯数字的金额转换成 面试题
- java 注解 payload_spring – 如何使用注释配置PayloadValidatingInterceptor
- 上升沿_为什么示波器上升时间 Tr=0.35/BW ?
- 第十七届全国大学生智能车竞赛航天智慧物流创意组-第二次线上技术培训