1.4 UltraScale系列selectio之IO的约束原则(下)



内容简介

2024-01-31

全文共2547字,阅读大约需要6分钟,Xilinx的引脚称为SelectIO,对于每个引脚都可以有不同的电气特点,例如IO标准、电压幅值、输出强度,也都可以有不同的使用方法,例如单端和差分,是否启用上拉下拉,这些都可以通过约束来实现,但也不是唯一的实现方法。



11、Internal VREF

    

    这个用于调用每个BANK的内部参考电压并指定参考电压值的大小的。每个BANK都有VREF这样的引脚用来表示这个BANK的参考电压的大小,注意是整个BANK。例如HSTL_II这个I/O标准的接收端是单端输入差分接收,那么差分的N端的值就是这个VREF。


    UltraScale系列为VREF参考电压值的产生提供了另外一种方法,也就是内部根据VCOO来产生,约束通过INTERNAL_VREF来实现,约束命令如下:


set_property INTERNAL_VREF value  [get_iobanks BANK_number]


value的值可设为0.60、0.675、0.70、0.75、0.84和0.90这几种。


示例 1:使用 HSTL_II (1.5V) 且需要 0.75V 参考电压的 bank 84 的 INTERNAL_VREF 使用以下约束:


set_property INTERNAL_VREF 0.75 [get_iobanks 84]

    

    但注意,使用内部产生的VREF也不能将外部的VERF作为普通IO引脚来使用,因为他是专用引脚。如果使用内部产生的,外部的应通过 500Ω 或 1KΩ 电阻将专用外部 VREF 管脚连接至 GND 


12、DQS_BIAS


这个对于一些没有驱动或者说没有使用的差分引脚提供了保持功能。

    对于DIFF_SSTL, DIFF_HSUL, and DIFF_POD这些IO标准,会将N端弱拉到VCCO,P端接地

    对于LVDS输入,会将P和N均置为VCCO/2

约束命令如下所示:


set_property DQS_BIAS TRUE|FALSE [get_ports port_name]


默认为FALSE,TRUE表示使能该功能,注意不能与PULLTYPE约束同时使用。


13、发送端的预加重


    预加重即Pre-Emphasis,对于7系列的FPGA,预加重技术是应用于serdes的,对于UltraScale系列,通用IO引脚也提供了这样的功能,主要是用于类似DDR4这样的高速数据传输的。


    预加重的主要目的是提高信号在接收端的可靠性减少失真,信号在链路传输会因阻抗原因出现失真和衰减,也就是高电平可能由1.5V变成了1.3V,原本上升沿挺陡的结果变斜坡了,而且高频的衰减程度要高于低频信号没所以基于此,对高频信号做个预加重,让它衰减后预低频信号差不多,预加重的方法就是抬高跳变沿的幅值,例如原本1.5V,发送时让跳变沿这一小部分区间变为1.7V,这样衰减后还能保持1.5V,当然这只是一个形象的例子。


    xilinx用PRE_EMPHASIS描述预加重,XDC的约束如下:

set_property PRE_EMPHASIS value [get_ports port_name]


    value值可设为RDRV_NONE或RDRV_240,默认是RDRV_NONE,如果启用预加重,需将 ENABLE_PRE_EMPHASIS设置为TURE。


14、LVDS源端的预加重


    英文手册的描述是“LVDS transmitter pre-emphasis”,也就是LVDS发送端的预加重,用LVDS_PRE_EMPHASIS进行约束,如下所示:


set_property LVDS_PRE_EMPHASIS TRUE|FALSE [get_ports port_name]


    与PRE_EMPHASIS的区别在于更有针对性,仅应用于LVDS I/O标准的预加重,默认为 FALSE,使用时需设置为TRUE。


  需注意,使用预加重时需将ENABLE_PRE_EMPHASIS设置为TRUE,否则不起作用。


15、接收端的均衡器(equalization)


    接收端的均衡器(receiver equalization)也就是信号均衡(Signal Equalization),是一种数字通信系统中的信号处理技术。通过对接收信号进行处理,例如线性均衡器、决定性序列估计(DFE)、自适应均衡器等以补偿信号在传输过程中受到的失真和干扰,以提高接收信号的质量和可靠性。


    对于我们应用者来说,需要做的就是在需要的时候给均衡器设置合适的值。由EQUALIZATION属性来决定,约束如下


set_property EQUALIZATION value [get_ports port_name]

对于HP BANK,允许值如下:

• EQ_LEVEL0

• EQ_LEVEL1

• EQ_LEVEL2

• EQ_LEVEL3

• EQ_LEVEL4

• EQ_NONE (默认值)

对于HR BANK,允许值如下:

• EQ_LEVEL0

• EQ_LEVEL0_DC_BIAS

• EQ_LEVEL1

• EQ_LEVEL1_DC_BIAS

• EQ_LEVEL2

• EQ_LEVEL2_DC_BIAS

• EQ_LEVEL3

• EQ_LEVEL3_DC_BIAS

• EQ_LEVEL4

• EQ_LEVEL4_DC_BIAS

• EQ_NONE (默认值)

    需注意,使用均衡器的端口不能使用PULLTYPE属性进行约束。

    在 DDR4 和 SGMII 接口中采用不同 Equalization 值的典型 AC 增益如下:



16、接收端的偏移控制


    接收器偏移控制 (OFFSET_CNTRL) 功能允许针对某些 I/O 标准在接收器中对信号进行偏移,以补偿由于工艺引起的偏移变化。


OFFSET_CNTRL 属性的有效值为:

• CNTRL_NONE (默认值)

• FABRIC

OFFSET_CNTRL 属性在 XDC 文件中使用以下语法:

set_property OFFSET_CNTRL value [get_ports port_name]


    要在I/O bank中调用偏移消除功能,必须将 OFFSET_CNTRL设置为FABRIC。可以使用 IBUFE3、IBUFDSE3、IOBUFE3或 IOBUFDSE3原语来使用偏移消除控制功能。


17、VREF_CNTR


    VREF_CNTR是用于描述HP bank中接收端VREF扫描功能属性的。它与 HPIO_VREF UNISIM 原语一起使用。 VREF_CNTR 属性的有效值为:

• FABRIC_RANGE1 (POD 标准)

• FABRIC_RANGE2 (其它适用标准)


    调用接收器 VREF 扫描功能时, FABRIC_RANGE1 与 POD 标准一起使用,而 FABRIC_RANGE2 与其它适用标准一起使用。


18、DATA_RATE


    DATA_RATE 是仅供参考的属性,用于 Vivado Design Suite 的功耗和时序分析和 SSN 工具使用。此属性为这些工具 提供有关的 I/O速率相关信息。


此属性的有效值为:

• 单倍数据速率 (SDR)

• 双倍数据速率 (DDR)


    在非原生 PHY 应用中,此属性的默认值为 SDR。在原生模式应用中 (如果 I/O 连接到原生 PHY 原语之一,例如 IDDRE1、 ODDRE1、 RX_BITSLICE、 TX_BITSLICE 等),则默认值为 DDR,约束为如下。


set_property DATA_RATE SDR|DDR [get_ports port_name]






快来扫描下方二维码关注公众号,领取站内所有相关资料,所有哦~

有建议、有需求、有疑问、联系我

<