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

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

3天内不再提示

HDIO OBUFT和IOBUF用例简析

Hack电子 来源:Hack电子 2023-07-12 10:04 次阅读

问题描述:

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

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

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

wKgaomSuCjyAFn3OAAC4FkjPVKc643.jpg

^dataValidBeforeTristate = 550 ps
dataValidAfterTristate = 200 ps^

受影响的器件:除 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 将向用户标记此问题:

wKgaomSuCjyAIvFXAAB1Zx7EO-k949.jpg

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

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

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

wKgaomSuCjyAMRJiAABVy_WMppQ001.jpg

替换为

wKgZomSuCjyAFU0aAAAhnTmNcQc326.jpg

时序图示例:

wKgZomSuCjyAMaQaAABYWb3AB6E859.jpg

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

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

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

wKgZomSuCjyAfxyJAABZRSuPSek283.jpg

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

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

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

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

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

source -quiet fixHDIO.tcl

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

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

reportHDIOTristateBuffers - 报告以 2.5 V 或 3.3 V 上电的 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) 的重新布线。

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

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

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

wKgZomSuCjyATYCOAAAmAdUoT7w385.jpg

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

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

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

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

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

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





审核编辑:刘清

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

    关注

    40

    文章

    5081

    浏览量

    166313
  • 寄存器
    +关注

    关注

    30

    文章

    5047

    浏览量

    117822
  • 缓冲器
    +关注

    关注

    6

    文章

    1613

    浏览量

    44919
  • DCP
    DCP
    +关注

    关注

    0

    文章

    28

    浏览量

    17055
  • QSPI接口
    +关注

    关注

    0

    文章

    14

    浏览量

    3279

原文标题:FPGA:HDIO OBUFT 和 IOBUF 三态时序影响

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PCB的报价是怎么来的?PCB价格的组成_华强pcb

      PCB的报价是怎么来的?PCB价格的组成_华强pcb  PCB的价格是很多采购者一直很困惑的事情,很多人在华强pcb网站在线下单时也会疑问这些价格是怎么算出来的,下面我们就一起谈论一下PCB
    发表于 01-29 10:36

    无法将符号组合到单个IOB中

    _1 / OBUFT”(控制信号= fpga_0_IIC_EEPROM_Sda_T)BUF符号“iobuf_1 / IBUF”(输出信号= fpga_0_IIC_EEPROM_Sda_I)IOB被选择,因为IO包含
    发表于 10-10 11:49

    FPGA是否可能用完IOBUF

    我正在使用PlanAhead,并在代码中使用循环实例化了9个pad。然而,最后一个垫PAD [8]具有与其他垫不同的原理图。这是我的原理图。 FPGA_PAD [8]错过了IOBUF_inst。但是
    发表于 10-19 14:23

    如何在地图编译中修复警​​告?

    "VMEDATA_INP_13_IOBUF/OBUFT". This may result in suboptimal timing. The LUT-1 inverter RD_HIT_inv321_INV_0 drives multiple loads. Thank
    发表于 10-23 10:31

    求提供一个使用IOBUF原语的小型VHDL代码片段

    嗨,有人可以为我提供一个使用IOBUF原语的小型VHDL代码片段。带着敬意vjose2以上来自于谷歌翻译以下为原文Hi , Can someone provide me with an small
    发表于 06-27 09:01

    【设计技巧】rtos的核心原理

    rtos的核心原理rtos全称real-time operating system(实时操作系统),我来简单分析下:我们都知道,c语句中调用一个函数后,该函数的返回地址都是放在堆栈中的(准确
    发表于 07-23 08:00

    请问mig 7实现错误的解决办法?

    ] .u_iobuf_dq / OBUFTOBUFT)在IO放置器之后未放置[放置30-69]实例U_mig_7series_0 / u_mig_7series_0_mig / u_memc_ui_top_std
    发表于 08-24 09:15

    Linux内核网络之网络层发送消息之IP分片

    1、Linux内核网络之网络层发送消息之IP分片本文分析下ip的分片。行 IP 分片。IP分片通常发生在网络环境中,比如1个B环境中的MTU为500B,若的数据长度超过
    发表于 07-20 15:34

    Armv8.1-M PAC和BTI扩展

    1、Armv8.1-M PAC和 BTI 扩展Armv8-M通过Trustzone for Armv8-M, Memory Protection Unit (MPU) 和Privileged
    发表于 08-05 14:56

    Rockchip RK3399 Linux4.4 USB DTS配置步骤

    1、Rockchip RK3399 Linux4.4 USB DTS配置步骤本文档提供RK3399 USB DTS的配置方法。RK3399支持两个Type-C USB3.0(Type-C PHY
    发表于 08-10 16:10

    RK3288 Android6.0系统RT5640播放时的Codec寄存器列表

    1、RT5640播放时的Codec寄存器列表Platform: RockchipOS: Android 6.0Kernel: 3.10.92Codec: RT5640此文给调试RT5640播放
    发表于 11-24 18:12

    OpenHarmony智慧设备开发-芯片模组T507

    降噪,自动调色系统和梯形校正模块可以提供提供流畅的用户体验和专业的视觉效果。 典型应用场景: 工业控制、智能驾舱、智慧家居、智慧电力、在线教育等。 、*附件:OpenHarmony智慧设备开发-芯片模组T507.docx
    发表于 05-11 16:34

    OpenHarmony智慧设备开发-芯片模组RK3568

    产品需求。 典型应用场景: 影音娱乐、智慧出行、智能家居,如烟机、烤箱、跑步机等。 *附件:OpenHarmony智慧设备开发-芯片模组RK3568.docx
    发表于 05-16 14:56

    OpenHarmony应用核心技术理念与需求机遇

    一、核心技术理念 图片来源:OpenHarmony官方网站 二、需求机遇 新的万物互联智能世界代表着新规则、新赛道、新切入点、新财富机会;各WEB网站、客户端( 苹果APP、安卓APK)、微信
    发表于 09-22 16:12

    Versal HDIO OBUFTIOBUF三态时序影响

    本文着重探讨 HDIO OBUFTIOBUF 用例。如果含三态控制 (OBUFT/IOBUF) 的
    的头像 发表于 07-12 09:50 434次阅读
    Versal <b class='flag-5'>HDIO</b> <b class='flag-5'>OBUFT</b>和<b class='flag-5'>IOBUF</b>三态时序影响