0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Versal HDIO OBUFT和IOBUF三态时序影响

XILINX开发者社区 来源:XILINX开发者社区 2023-07-12 09:50 次阅读

问题描述:

本文着重探讨 HDIO OBUFT 和 IOBUF 用例。如果含三态控制 (OBUFT/IOBUF) 的 HDIO 输出缓冲器的上电电压为 3.3V 或 2.5V 并且 Data(数据)控制信号与 Tristate(三态)控制信号的切换时间彼此相近,则可能会受到三态数据争用条件的影响。

仅当三态和数据开关彼此相反(例如,三态 0 -> 1 且数据 1 -> 0)时,此争用条件才会导致问题。当三态和数据开关同向(例如,三态 0 -> 1 且数据 0 -> 1)时,则不会导致问题。

生成的输出可能会驱动错误的焊盘电压。焊盘可能保持在此错误电压下,直至三态(dataValidBeforeTristate 场景)或数据(dataValidAfterTrisate 场景)再次切换为止。

b9c18b6e-1fda-11ee-962d-dac502259ad0.png

dataValidBeforeTristate = 550ps
dataValidAfterTristate = 200ps

受影响的器件:除 VSVD1760 外的其他封装中的 VC1902、VC1802、VM1802、VM1402 和 VM1302。

仅限含 HD bank 的器件才会受到 HDIO IOBUF 和 OBUFT 用例的影响。VSVD1760 封装不含 HDIO bank,因此不受影响。

受影响的 IP 核:

虽然 IP 通常并不强制使用 HDIO,但以下 IP 核使用 HDIO 缓冲器的方式很可能使其受此问题影响。此处随附的 Tcl 脚本可用于帮助调整诸多场景下的数据到三态布线关系:

AXI 1G 以太网

AXI QSGMII

三模以太网 MAC

AXI QSPI

解决方法:

要解决该问题,请确保在有问题的窗口(dataValidBeforeTristate = 0.550ps 和 dataValidAfterTristate = 0.200ps)中,数据和三态不执行切换。

在 Vivado 2021.2 和更高版本中,DRC 将向用户标记此问题:

b9de6dce-1fda-11ee-962d-dac502259ad0.png

下列方法可用于确保在有问题的窗口中,数据和三态不执行切换:

1. 通过设计系统将三态和数据切换偏移一个周期。

2. 寄存的数据和三态信号可以在 IOL Flop 的 I 输入中利用数据和三态的逻辑 OR 来避免此问题。

b9fc0514-1fda-11ee-962d-dac502259ad0.png

替换为

ba1ed7e2-1fda-11ee-962d-dac502259ad0.png


时序图示例:

ba302740-1fda-11ee-962d-dac502259ad0.png

3. 通过 Tcl 脚本使用 set_data_check 约束来确保数据和三态信号线的偏差足以确保数据和三态都能避免出现争用条件。

注释:仅当数据和三态都发生切换时,才会发生此问题。在 Data 管脚上,Open Drain(开漏)接口保持常量“0”,因此常用 2.5V 接口和 3.3V 接口(如 I2C)将不受影响。

仅当数据或三态已绑定时,才能通过以下命令豁免 DRC。

ba52c250-1fda-11ee-962d-dac502259ad0.png

对于 Vivado 2022.1 和更低版本,您可使用随附的fixHDIO.tcl 脚本来评估影响,并且可能通过布线来修复此问题。

此脚本将检查 IOBUF 或 OBUFT 的设计,并检查三态与数据之间的延迟,确认在有问题的窗口内是否发生切换。

如果发生了切换,此脚本将通过set_data_check 置位来取消这些信号线的布线,重新布线,并报告结果。

要运行该脚本,请打开已实现的设计或 DCP。

在 Tcl 控制台中,使用 source 命令找到该脚本:

source -quiet fixHDIO.tcl

找到 Tcl 脚本后,可运行多个过程来分析设计:

getHDIOTristateBuffers- 列出以 2.5V 或 3.3V 上电的 HDIO bank 中含三态控制的所有缓冲器,这些缓冲器可能会受到三态/数据争用问题的影响。

reportHDIOTristateBuffers- 报告以 2.5V 或 3.3V 上电的 HDIO bank 中含三态控制的所有缓冲器(可能受三态/数据争用问题影响),并描述用于报告这些缓冲器的原因的机制。

validateHDIOTristateBuffers- 该命令将分析设计,查看是否有足够的时序裕度能在尚未运行fixHDIOTristateBuffers 时就避免出现争用条件。如果发生违例,则必须运行 fixHDIOTristateBuffers 来解决问题。

waiveHDIOTristateBuffers - 该命令应仅用于为下列已寄存的缓冲器豁免 DRC 违例:此类缓冲器在三态/数据管脚之间实现 OR 门控,或者已知不受影响(即,在设计中,数据和三态控制已偏移)。运行 fixHDIOTristateBuffers 后,应自动禁止显示这些缓冲器的 DRC 违例。 仅限在已知不存在问题的缓冲器上运行该过程。 fixHDIOTristate 缓冲器将通过更改时序来解决此问题,应将其用于有问题场景的所有缓冲器。

fixHDIOTristateBuffers - 为没有足够数据和三态偏差的缓冲器的数据和三态信号线执行重新布线。此命令不修复在三态/数据管脚之间需要 OR 门控的已寄存的缓冲器。此过程结束时会报告时序关系。此过程结束时,应在 Tcl 中运行“report_route_status”以验证脚本确实能够成功完成信号线的重新布线。 如不执行此操作,可能导致该脚本误报所有时序路径都已满足。

timeHDIOTristateBuffers - 报告数据与三态管脚之间的时序关系。应在 fixHDIOTristateBuffers 插入必要的时序约束后运行此命令。如果该工具能够找到布线解决方案,那么应仅存在正时序裕量。

分析结果:

fixHDIOTristateBuffers 和 timeHDIOTrisateBuffers 将报告所提供的缓冲器上的时序。裕量值为正表示脚本已成功完成 Data (I) 和 Tristate 控制 (T) 的重新布线。

在此场景下为了正确定时,将对数据或三态给予 1000ns 的要求。预计将有一条信号线存在较大的偏差要求。 只要信号线均为正,就不会发生 HDIO 三态冲突。

出现如下消息表示,如果 Tcl 脚本无法通过新的布线解决该问题,那么布线器就无法以充足的偏差完成设计的重新布线。

注释:在此场景中,如果报告的裕量为正值,那么即使出现该警告也没问题。

ba6a63e2-1fda-11ee-962d-dac502259ad0.png

该脚本将标记 IOB 触发器对数据和三态进行寄存的情况,但不会尝试解决。


这些管脚需实现与上述逻辑等效的电路更改,并对驱动 IOB 数据寄存器的输入管脚的数据和三态信号线执行 OR 逻辑。

如果 Tcl 脚本以避免出现该问题的方式成功完成数据和三态管脚的重新布线,则将需要修改设计。围绕此问题常见的修改包括:

寄存数据和三态控制信号,对数据控制和三态控制执行 OR 逻辑,如上所述。

调整设计,使三态和数据断言偏移一个周期。

如果出现该脚本无法解决此问题的罕见情况,请评估选项 1“将三态和数据切换偏移一个周期”和选项 2“对数据和三态执行逻辑 OR”,并对设计执行必要的更改。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5359

    浏览量

    170946
  • 寄存器
    +关注

    关注

    31

    文章

    5305

    浏览量

    119926
  • 缓冲器
    +关注

    关注

    6

    文章

    1912

    浏览量

    45433
  • 触发器
    +关注

    关注

    14

    文章

    1995

    浏览量

    61026
  • Versal
    +关注

    关注

    1

    文章

    152

    浏览量

    7637

原文标题:开发者分享|设计咨询 - Versal:HDIO OBUFT 和 IOBUF 三态时序影响

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是三态电路 三态电路有什么特点

    三态电路有什么特点,什么是上拉电阻、下拉电阻以及高阻?
    的头像 发表于 05-21 07:28 6717次阅读
    什么是<b class='flag-5'>三态</b>电路 <b class='flag-5'>三态</b>电路有什么特点

    什么是三态门和OC门?

    三态门和OC门一、OC门实际使用中,有时需要两个或两个以上与非门的输出端连接在同一条导线上,将这些与非门上的数据(状态)用同一条导线输送出去。因此,需要一种新的与非门电路来实现线与逻辑,这种门电路
    发表于 05-26 13:01

    labview做一组三态灯求助

    如果:红色-0,绿色-1,蓝色-2 输入:数组 输出:布尔数组或簇 例如:输入数组为〔0 1 2 1 0〕 希望输出显示为红色,绿色,蓝色,绿色,红色的一组三态灯。 网上给的子vi是利用bool引用句柄实现一个灯的三态显示,如果数组元素少的话用枚举可以实现,但是如果数组元
    发表于 12-09 14:32

    高阻三态门的电路原理分析

    高阻三态门高阻 高阻的实质:电路分析时高阻可做开路理解。你可以把它看作输出(输入)电阻非常大。他的极限可以认为悬空。也就是说理论上
    发表于 01-08 11:03

    三态缓冲区未按预期工作

    嗨,我写了一个非常简单的代码,其中FGPA从/向处理器读/写。我使用以下代码推断数据总线的三态缓冲区(16位宽)。 - 推断IOBUF io_datah s_data_read注意
    发表于 03-08 14:01

    三态门的工作原理是什么?

    三态门的工作原理是什么?
    发表于 05-20 06:55

    三态单片机IO的三态是指什么

    一、三态单片机IO的三态是指:高电平(1)、低电平(0)、高组态(Z)。二、高阻高阻i是一种电路状态.既不是高电平,也不是低电平,以高阻对下级电路输出,下级电路什么影响也没有.高阻
    发表于 11-25 06:42

    什么是三态门? 三态逻辑与非门电路以及三态门电路

    什么是三态门? 三态门,是指逻辑门的输出除有高、低电平两种状态外,还有第种状态——高阻状态的门电路 高阻相当于隔断状态。
    发表于 05-26 12:48 4.7w次阅读
    什么是<b class='flag-5'>三态</b>门? <b class='flag-5'>三态</b>逻辑与非门电路以及<b class='flag-5'>三态</b>门电路

    三态门的组成及工作原理

    三态门的组成及工作原理
    发表于 02-28 19:13 2.5w次阅读
    <b class='flag-5'>三态</b>门的组成及工作原理

    三态缓冲器介绍

    三态缓冲器三态缓冲器三态缓冲器三态缓冲器三态缓冲器三态缓冲器
    发表于 11-16 11:59 0次下载

    三态缓冲器介绍_三态缓冲器逻辑符号

    三态数据缓冲器是数据输入/输出的通道,数据传输的方向取决于控制逻辑对三态门的控制。本文介绍三态缓冲器的逻辑符号。
    发表于 01-11 10:42 1.5w次阅读
    <b class='flag-5'>三态</b>缓冲器介绍_<b class='flag-5'>三态</b>缓冲器逻辑符号

    三态门有哪三态_三态门有什么特点

    本文开始介绍了三态门的定义与三态门的应用,其次对三态门的三态及特点进行了介绍,最后阐述了三态输出门电路与
    发表于 03-01 14:47 12.9w次阅读
    <b class='flag-5'>三态</b>门有哪<b class='flag-5'>三态</b>_<b class='flag-5'>三态</b>门有什么特点

    三态门怎么理解

    三态门亦称“三态输出门”、“三态门输出电路”。是一种重要的总线接口电路。具有高电平、低电平和高阻抗种输出状态的门电路。
    的头像 发表于 03-10 09:29 1.8w次阅读

    HDIO OBUFTIOBUF用例简析

    本文着重探讨 HDIO OBUFTIOBUF 用例。如果含三态控制 (OBUFT/IOBUF
    的头像 发表于 07-12 10:04 1395次阅读
    <b class='flag-5'>HDIO</b> <b class='flag-5'>OBUFT</b>和<b class='flag-5'>IOBUF</b>用例简析

    三态缓冲器的工作原理和应用

    三态缓冲器(Three-state buffer),又称为三态门、三态驱动器,是一种特殊的逻辑门电路,其工作原理主要基于三态输出控制。三态
    的头像 发表于 08-02 17:47 2790次阅读