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

    文章

    5079

    浏览量

    166251
  • 寄存器
    +关注

    关注

    30

    文章

    5037

    浏览量

    117765
  • 缓冲器
    +关注

    关注

    6

    文章

    1578

    浏览量

    44895
  • 触发器
    +关注

    关注

    14

    文章

    1685

    浏览量

    60422
  • Versal
    +关注

    关注

    1

    文章

    151

    浏览量

    7535

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

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

收藏 人收藏

    评论

    相关推荐

    什么是三态门和OC门?

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

    如何才能制作一个三态指示灯?

    如何才能制作一个三态指示灯?需要什么材料等等
    发表于 10-28 19:51

    labview做一组三态灯求助

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

    请问AD5420的SDO是否是三态输出脚

    1、AD5420的SDO是否是三态输出脚2、MCU的SPI接口配置CPOL=0、CPAH=0,是否正确
    发表于 12-20 09:26

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

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

    三态缓冲区位于何处?

    如果我在其中一个存储器上使用32位三态输出,则合成器会添加一个切片。有人能告诉我内部三态缓冲器在FPGA架构中的位置(我得到了kintex 7)吗?我在CLB指南中找了它,但没找到
    发表于 03-04 13:17

    三态缓冲区未按预期工作

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

    ADS1211sPI接口设计SDOUT是否是三态状态?

    一片ADS1211时要求其余两片的ADS1211的SDOUT引脚此时具有三态状态,以实现让出SPI数据接口的目的,ADS1211的SDOUT具有三态状态,可是:The CS signal does
    发表于 05-23 08:07

    三态输出门的电路图是什么样?

    三态输出门的电路图和图形符号
    发表于 10-25 07:17

    【梦翼师兄今日分享】 三态门程序设计讲解

    等,要求信号为三态类型,也就是我们所说的输入输出(inout)类型。那么,本节梦翼师兄将和大家一起来探讨三态门的用法。项目需求设计一个三态门电路,可以实现数据的输出和总线“挂起”。系统架构 模块功能
    发表于 12-12 16:11

    请教技术大佬 三态门与高阻是个撒子东西?

    新人在工作中经常碰到三态门与高阻;请教技术大佬,这两个到底是什么东西 ?
    发表于 04-07 06:59

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

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

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

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

    AD5420的SDO是否是三态输出脚?

    1、AD5420的SDO是否是三态输出脚 2、MCU的SPI接口配置CPOL=0、CPAH=0,是否正确
    发表于 12-20 08:08

    HDIO OBUFTIOBUF用例简析

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