HDIO OBUFT和IOBUF用例简析

问题描述:
本文着重探讨 hdio obuft 和 iobuf 用例。如果含三态控制 (obuft/iobuf) 的 hdio 输出缓冲器的上电电压为 3.3 v 或 2.5 v 并且 data(数据)控制信号与 tristate(三态)控制信号的切换时间彼此相近,则可能会受到三态数据争用条件的影响。
仅当三态和数据开关彼此相反(例如,三态 0 -> 1 且数据 1 -> 0)时,此争用条件才会导致问题。当三态和数据开关同向(例如,三态 0 -> 1 且数据 0 -> 1)时,则不会导致问题。
生成的输出可能会驱动错误的焊盘电压。焊盘可能保持在此错误电压下,直至三态(datavalidbeforetristate 场景)或数据(datavalidaftertrisate 场景)再次切换为止。
^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 将向用户标记此问题:
下列方法可用于确保在有问题的窗口中,数据和三态不执行切换:
通过设计系统将三态和数据切换偏移一个周期。
寄存的数据和三态信号可以在 iol flop 的 i 输入中利用数据和三态的逻辑 or 来避免此问题。

替换为
时序图示例:
通过 tcl 脚本使用 set_data_check 约束来确保数据和三态信号线的偏差足以确保数据和三态都能避免出现争用条件。
注释: 仅当数据和三态都发生切换时,才会发生此问题。在 data 管脚上,open drain(开漏)接口保持常量“0”,因此常用 2.5 v 接口和 3.3 v 接口(如 i2c)将不受影响。
仅当数据或三态已绑定时,才能通过以下命令豁免 drc。
对于 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 脚本无法通过新的布线解决该问题,那么布线器就无法以充足的偏差完成设计的重新布线。
注释: 在此场景中,如果报告的裕量为正值,那么即使出现该警告也没问题。
该脚本将标记 iob 触发器对数据和三态进行寄存的情况,但不会尝试解决。
这些管脚需实现与上述逻辑等效的电路更改,并对驱动 iob 数据寄存器的输入管脚的数据和三态信号线执行 or 逻辑。
如果 tcl 脚本以避免出现该问题的方式成功完成数据和三态管脚的重新布线,则将需要修改设计。围绕此问题常见的修改包括:
寄存数据和三态控制信号,对数据控制和三态控制执行 or 逻辑,如上所述。
调整设计,使三态和数据断言偏移一个周期。
如果出现该脚本无法解决此问题的罕见情况,请评估选项 1“将三态和数据切换偏移一个周期”和选项 2“对数据和三态执行逻辑 or”,并对设计执行必要的更改。


云知声以AI芯片缓解碎片化需求 帮助国内AIot行业数字化加速前行
基于500MHz带宽的TPS563209输出电压噪声优化和测试
虹膜识别+后置双摄+双曲面屏,性能强悍颜值爆表当属小米6
一个基于广电网的数字电视及多媒体数据传输综合平台
Espros创建“飞行时间学院”,进行进行ToF和激光雷达知识培训
HDIO OBUFT和IOBUF用例简析
LDO稳压器如何才能实现输出电压的稳定和
图像传感器在数码上的应用
揭秘纳米制程工艺背后的虚与实
5G时代再次迎来高峰发展,射频连接器厂商如何把握机会?
马化腾:警惕科技战,未雨绸缪做准备!
思无界,设享未来2023维谛技术(Vertiv)设计院高峰论坛隆重举行
小米宣布了适用于Redmi Note 9 Pro和Redmi Note 9 Pro Max的Mi保护玻璃
英特尔将在8月IDF谈先进芯片技术 包含10nm工艺
PROFIBUS总线光纤模块与西门子S7-300在造纸厂研磨生产线中的应用
苹果开放降级通道是真是假_苹果降级通道怎么查询_苹果系统降级通道查询教程
Type-C集线器厂商提高高速网络的产品
微雪电子树莓派4代B显示配件包介绍
Intel退出移动市场?此话言之过早!
全通滤波器工作原理及移相原理