Output Delay Constraints Instance

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

图1

  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

  1. 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 】输出延迟约束实例相关推荐

  1. 【 Vivado 】输入延迟约束实例

    上篇博文讲了输入延迟约束( Input Delay Constraints):输入延迟约束(Constraining Input Delay) 这篇博文讲解具体的实例,通过实例去学习是最有效果的. 实 ...

  2. 【 Vivado 】输出延迟约束(Constraining Ouput Delay)

    FPGA内部时序单元到输出端口的路径也需要约束其output delay,如图1所示框图. 图1        约束output delay的命令是set_output_delay,具体的参数如下: ...

  3. TIMING_06 VIVADO环境下的时序约束 之 输入延迟约束

    由于该系列文章阅读有顺序性,所以请跳转至该系列文章第一篇从头开始阅读,并按照文章末尾指示按顺序阅读,否则会云里雾里,传送门在此:  https://blog.csdn.net/qq_33486907/ ...

  4. Vivado时序约束之—— set_max_delay、set_min_dealy(最大最小延迟约束)

    set_max_delay.set_min_delay(最大.最小延迟约束) 1. set_max_delay.set_min_delay约束的目的 最大最小延迟约束主要是为了解决异步信号之间的时序路 ...

  5. 输入/输出延迟单元( IODELAY)简介

    输入 / 输出延迟单元( IODELAY )简介 每个 I/O 模块包含一个可编程绝对延迟单元,称为 IODELAY . IODELAY 可以连接到 ILOGIC/ISERDES 或 OLOGIC/O ...

  6. (10)Vivado 异步时钟约束

    (10)Vivado 异步时钟约束 1 文章目录 1)文章目录 2)时序约束引言 3)FPGA时序约束课程介绍 4)Vivado 异步时钟约束 5)技术交流 6)参考资料 2 时序约束引言 1)什么是 ...

  7. oracle非延迟约束,Oracle可延迟约束Deferable的使用

    标准规定,约束可以是deferrable或not deferrable(默认). not deferrable 约束在每一个DML语句后检查: deferrable 约束可以在每一个insert,de ...

  8. 小梅哥FPGA时序分析和约束实例演练课程

    看过了他的nios课程,对他的能力很认同 只有前5讲是开源的,后面需要在淘宝上购买,暂时用不到,我就没有买课程,只看了前5讲感觉还挺有用,需要的时候再说吧. 小梅哥 FPGA时序分析 FPGA时序约束 ...

  9. python输出结果空格分割_python 输出列表元素实例(以空格/逗号为分隔符)

    给定list,如何以空格/逗号等符号以分隔符输出呢? 一般的,简单的for循环可以打印出list的内容: l=[1,2,3,4] for i in l: print(i) 输出结果一行一个元素: 1 ...

最新文章

  1. 基于U-Net图像分割的划痕缺陷分割(课程设计)
  2. svn还原文件中去掉已经删除的文件
  3. 洗被套的时候洗衣机里面不要再放其他东西
  4. boost::fusion::extension::adt_attribute_proxy用法的测试程序
  5. OpenCV-图像特征harris角点检测/SIFT函数/特征匹配-05
  6. Rxjs Observable.pipe 传入多个 operators 的执行逻辑分析
  7. C# -WinForm 中英文实现, 国际化实现的简单方法
  8. 模型驱动 ModelDriven
  9. Win8下右键“发送到”没有蓝牙选项的解决办法
  10. java中哪些可以私有化_《Java基础学习笔记》JAVA修饰符之私有化(Private)
  11. (转)RabbitMQ学习之Headers交换类型(java)
  12. KinedEditor特性
  13. 【Python-3.3】函数中的可变参数和关键字参数
  14. [Andriod设计模式之旅]——Builder模式
  15. DBGrid 应用系列
  16. GeoTiff及GDAL切图(java)
  17. 【分享】“金蝶云星辰“ 在集简云平台集成应用的常见问题与解决方案
  18. 国产操作系统之优麒麟安装
  19. 详解线上线下收单业务(1)
  20. Python BeautifuSoup 库 mooc 中国大学学习

热门文章

  1. mapreduce介绍
  2. C#实现Web应用程序定时启动任务
  3. 介绍一个好用的抓取dump的工具-ProcDump
  4. ASP.NET文件上传
  5. android 打开wifi并链接到制定ip,当设备连接到Android中的WiFi时,如何获取蜂窝网络的IP地址...
  6. python的threading安装不了_python – 我无法安装Gevent
  7. HTML控制文本框只能输入数字和小数点,并且只能保留小数点后两位 金额转换,阿拉伯数字的金额转换成 面试题
  8. java 注解 payload_spring – 如何使用注释配置PayloadValidatingInterceptor
  9. 上升沿_为什么示波器上升时间 Tr=0.35/BW ?
  10. 第十七届全国大学生智能车竞赛航天智慧物流创意组-第二次线上技术培训