问题描述:
SelectIO 架构手册 AM010 描述了如何使用 XPIO_VREF 原语来调整 Internal Vref。
解决方法:
如 AM010 中所述,使用 XPHY 时,VREF_NIB 必须设置为 VREF_RIU,这在 Advanced IO Wizard 2023.1 版本和更低版本中并未正确实现。
为解决此问题,请勿使用 Advanced IO Wizard 中的“Enable VREF Tuning”选项。在 RTL 中例化 XPIO_VREF,设置 ISTANDARD 以生成您的标准 (POD) 并使用 VREF_NIB = VREF_RIU。
(* DONT_TOUCH = "yes" *)
XPIO_VREF #(
.ISTANDARD("POD12"),
.VREF_NIB("VREF_RIU")
) XPIO_VREF_inst6 (
.FABRIC_VREF_TUNE(), // 10-bit input: VREF tuning value
.VREF()
);
对于要微调 Vref 的每个 XPHY/Nibble,您都需为其例化 XPIO_VREF。
您还需要使用 LOC 将 XPIO_VREF 定位到 XPHY 旁的位置。
这并不会建立从 XPIO_VREF 的 Vref 端口到 IOBUF 的 Vref 的物理连接,但使用 VREF_NIB = VREF_RIU 将其例化时,将从 RIU 进行控制。
需从 RIU 接口控制 Vref 的微调操作
注释:如果您当前不使用 RIU 接口,则需在 Advanced IO Wizard 的“Basic”选项卡上将其启用。
供 RIU 用于控制 Vref Tuning 的地址是 0x41H(在 AM010 中并未记述此地址)。
在 AM010 中包含用于计算 Vref 微调值的公式:https://docs.xilinx.com/r/en-US/am010-versal-selectio/XP-IOB-Internal-VREF
有效示例:
Fabric_Vref_Tune = % of Vcco * 1023
除 LVSTL 外的所有 IOSTANDARD 都有额外 50% 的缩放。