7 Series FPGA DCI—Only available in the HP I/O banks
背景
- 基于Xilinx的7系列FPGA,在通过文档《ug471_7Series_SelectIO.pdf》学习I/O过程中,
对7系列的DCI(Digitally Controlled Impedance,数字控制阻抗)进行展开学习,遂就有了此文。
系列目录与传送门
- 基于Xilinx的7系列,
- 笔者学习、研究FPGA的过程、笔记,记录为:《凡人修FPGA传》。
说明1:本系列基于文档文档《ug471_7Series_SelectIO.pdf》而写,翻译和感悟,会出现中英文混合的情况。
说明2:虽然文中会出现一些原文的部分截图,非常支持并推荐大家去看原汁原味的官方文档
说明3:在查阅相关资料过程中,发现一些关于相关知识点的介绍零零散散,本系列会对其进行整合,力求详尽。
说明4:本博客是笔者用来记录学习过程的一个形式,并非专业论文。虽然有一点点的论文写作经验,但在本博客中不会太注重图文格式的规范,主打一个自由随性、简单易读。
说明5:如果文章有误,欢迎诸位道友指出、讨论,笔者也会积极改正,希望大家一起进步!
文章目录
- 背景
- 系列目录与传送门
- 1、前言
- 1.1、为什么要阻抗匹配?
- 1.2、反射系数是什么?
- 1.3、补充
- 1.3.1、阻抗匹配原理
- 1.3.2、串联源端匹配
- 1.3.3、串联源端匹配
- 2、DCI(数字控制阻抗)
- 2.1、Introduction
- 2.2、Xilinx DCI
- 2.3、Match_cycle Configuration Option
- 2.4、DCIUpdateMode Configuration Option
- 2.5、DCIRESET Primitive
- 2.6、Special DCI Requirements for Some Banks
- 2.7、VRN/VRP External Resistance Design Migration Guidelines
- 3、DCI Cascading
- 3.1、DCI级联
- 3.2、级联示例
- 3.3、使用DCI级联时的准则
- 4、串联端接
- 4.1、Controlled Impedance Driver (Source Termination)
- 4.2、Controlled Impedance Driver with Half Impedance (Source Termination)
- 5、并联端接
- 5.1、并联端接概述
- 5.2、Split-Termination DCI (Thevenin Equivalent Termination to Vcco/2)
- 5.2.1、电阻Z0=R
- 5.2.2、电阻Z0=2R
- 5.3、DCI and 3-state DCI (T_DCI)
- 6、DCI in 7 Series FPGAs I/O Standards
- 6.1、7 系列设备中的所有 DCI I/O 标准:
- 6.2、在 7 系列器件中正确使用 DCI
- 6.3、DCI Usage Examples
- 7、参考文献
1、前言
1.1、为什么要阻抗匹配?
文章《阻抗与阻抗匹配》针对这个问题,展开了一个比较详细的描述。
前一段,从原理的角度对阻抗匹配进行了描述,后一段正好对应了《ug471_7Series_SelectIO.pdf》中的<2.1、Introduction>这部分的内容。算是对DCI技术的背景进行了一个详细的描述。
1.2、反射系数是什么?
- 反射系数时,通常涉及传输线理论或高频信号传输中的阻抗匹配问题。
- 反射系数定义:
- 反射系数的物理意义:
- 举个栗子:
”反射系数接近+1,信号到输入端如同撞墙,因此反射信号都会反射回来。反射信号与源端传播的信号叠加,使负载端接受到的信号与原始信号的幅度近似相同;负载端反射信号向源端传播,到达源端后被匹配电阻吸收;反射信号到达源端后,源端驱动电流降为0,直到下一次信号传输。相对并联匹配来说,串联匹配不要求信号驱动器具有很大的电流驱动能力。“(《阻抗与阻抗匹配》)
1.3、补充
在查询资料时,发现博客《基于7系列FPGA的DCI技术的应用》,对阻抗匹配原理、串联源端匹配、并联终端匹配有着比较详细的描述。在这里,笔者将其展示出来供诸位道友学习,也十分推荐诸位道友去看这篇原博客。
1.3.1、阻抗匹配原理
1.3.2、串联源端匹配
1.3.3、串联源端匹配
接下来,便是基于《ug471_7Series_SelectIO.pdf》对DCI技术的介绍。
2、DCI(数字控制阻抗)
- DCI,Digitally Controlled Impedance technology。
2.1、Introduction
随着FPGA 器件规模不断扩大,系统时钟速度越来越快,PCB的设计和制造难度也在增加。信号边沿速率越来越快,保持信号完整性成为一个至关重要的问题。PCB板上的走线必须进行适当的端接处理,以避免信号反射或振铃现象。
为了实现传输线的端接,传统方法是通过添加电阻使输出端(和/或输入端)的阻抗与接收器(或驱动器)的阻抗匹配,从而与传输线的阻抗一致。然而,由于器件I/O数量的增加,在器件引脚附近添加电阻会导致电路板面积和元件数量增加,并且某些情况下甚至无法物理上实现。为了解决这些问题并实现更好的信号完整性,赛灵思(Xilinx)开发了数字控制阻抗(DCI)技术。
**根据所采用的I/O标准,DCI技术可以控制驱动器的输出阻抗,或者在驱动器端(和/或 接收器端)添加并联端接(parallel termination),从而精确匹配传输线的特性阻抗。DCI通过在I/O内部动态调节阻抗,校准放置在VRN和VRP引脚的外部精密参考电阻。**此机制可以补偿因工艺偏差导致的I/O阻抗变化,并持续动态调整阻抗以消除温度波动和供电电压变化的影响。
对于具有受控阻抗驱动器的I/O标准,DCI通过调节驱动器阻抗,使其匹配两个外部参考电阻的阻值,或在部分标准中匹配参考电阻阻值的一半。
对于具有受控并联端接(parallel termination)的I/O标准,DCI技术可为发送端与接收端同时提供并联端接(parallel termination)。这消除了电路板上端接电阻的需求,从而降低了PCB板上的布线复杂度和元件数量,并通过消除残桩反射(Stub Reflection)提升信号完整性。当终端电阻距离传输线末端过远时,会产生残桩反射。DCI将终端电阻尽可能地集成在输出驱动器或输入缓冲器旁,从而消除此类反射。
需注意:DCI技术仅在7系列FPGA的HP I/O BANK中可用,而HR I/O组不具备此功能。
2.2、Xilinx DCI
支持DCI的每个BANK均有一对多功能管脚(VRP/VRN管脚),来控制该BANK内所有I/O的驱动器阻抗或并联端接(parallel termination)阻值。那么,可以理解为,每个BANK只有一组VRP/VRN管脚,该BANK的所有引脚共享参考电阻阻值。
VRN 必须通过参考电阻上拉至Vcco电压,VRP 必须通过另一参考电阻下拉至接地。
每个参考电阻的阻值应该等于PCB走线的特性阻抗,或者PCB走线的特性阻抗的2倍。
“这两个管脚提供一个参考电压供DCI内部电路使用,DCI内部电路依据此参考电压调整IO输出阻抗与外部参考电阻匹配。”(《阻抗与阻抗匹配》)
为了在设计中实现 DCI:
1、在 HP I/O BANK 中分配一个 DCI I/O 标准(参见表 1-2 和表 1-3)。
2、将 VRN 多功能引脚连接到 与同一BANK的 Vcco 电源 相连的精密电阻。
3、将 VRP 多功能引脚连接到 与地相连的精密电阻。
以下部分讨论了如何在不同 I/O 标准下确定VRN 和 VRP 的精密电阻值。
每个 BANK 仅使用一组 VRN 和 VRP 电阻,因此每个 BANK 内的所有 DCI 标准必须能够共享相同的外部电阻值。
如果同一 I/O BANK 列中的多个 I/O BANK 使用 DCI,并且所有这些 I/O BANK 使用相同的 VRN/VRP 电阻值,则可以级联内部的 VRN 和 VRP 节点,这样整个 I/O 列中的所有 I/O BANK 只需要一对连接到精密电阻的引脚即可。
如果 BANK 中未使用 DCI I/O 标准,这些引脚可用作普通 I/O 引脚。
DCI 通过选择性地开启或关闭 I/O 中的晶体管来调整 I/O 的阻抗,以匹配外部参考电阻。调整过程从设备启动阶段开始。默认情况下,在阻抗调整过程的第一部分完成之前,DONE 引脚不会变为高电平。
对于受控阻抗输出驱动器,阻抗可以调整为与参考电阻阻值相匹配,或者调整为参考电阻阻值的一半。对于片上端接,端接阻值始终调整为与参考电阻阻值相匹配。
2.3、Match_cycle Configuration Option
Match_cycle 是一个配置选项,可选择在 FPGA 配置序列结束时暂停启动序列,直到 DCI 逻辑对外部参考电阻器执行第一次匹配(校准)。此选项有时也称为 DCI 匹配。
2.4、DCIUpdateMode Configuration Option
DCIUpdateMode 是一个配置选项,可以覆盖频率控制,即 DCI 电路更新阻抗以匹配 VRN 和 VRP 参考电阻的频率控制。此选项默认为 AsRequired,但在 Xilinx 实现软件中还有一个可选值 Quiet。DCIUpdateMode 配置选项的设置如下:
• AsRequired:在设备初始化时进行初始阻抗校准,并在设备运行过程中根据需要(自动)进行动态阻抗调整(默认)。
set_property BITSTREAM.CONFIG.DCIUPDATEMODE AsRequired [current_design]
• Continuous:对于 7 系列 FPGA,此值无效(默认为 AsRequired)。
set_property BITSTREAM.CONFIG.DCIUPDATEMODE Continuous [current_design]
• Quiet:阻抗校准仅在设备初始化时进行一次,或者(在包含DCIRESET原语的设计中)每次 DCIRESET 原语上的 RST 引脚被断言时重新校准。
set_property BITSTREAM.CONFIG.DCIUPDATEMODE Quiet [current_design]
强烈建议保持 DCIUpdateMode 选项的默认值 AsRequired,以使 DCI 电路能够正常运行。
2.5、DCIRESET Primitive
DCI 校准可以通过实例化 DCIRESET 原语来复位。在设备运行过程中,对 DCIRESET 原语的 RST 输入进行切换,会重置 DCI 状态机并重启校准过程。在 DCIRESET 模块的 LOCKED 输出信号被断言之前,所有使用 DCI 的 I/O 都不可用。当设备从上电到正常工作条件期间,温度(和/或 电源电压)发生显著变化时,这种功能非常有用。
DCIRESET 是 Xilinx 设计原语,能够在设计正常运行期间对 DCI 控制器状态机进行重置。
DCIRESET DCIRESET_inst (
.LOCKED(LOCKED), // 1-bit output: LOCK status output
.RST(RST) // 1-bit input: Active-High asynchronous reset input
);
除非 DCIUpdateMode 设置为 Quiet(参见 DCIUpdateMode 配置选项),或者在涉及将多功能引脚设置为使用 DCI 的情况下;否则,大多数情况下设计中不需要使用此原语。
2.6、Special DCI Requirements for Some Banks
如果在用户设计中,将(任何器件的) I/O BANK 14、15,(仅限 SSI 器件的) BANK 11、12、17、18、20 和 21中的任何多功能引脚分配为 DCI I/O 标准,则设计中还应包含并使用 DCIRESET 原语。
在这种情况下,
• 设计应在使用这些配置了DCI标准的引脚进行用户输入/输出前:对 DCIRESET 的 RST 输入发送脉冲信号,然后等待 LOCKED 信号被断言。
• 这是因为这些 I/O 引脚会忽略在正常设备初始化期间进行的初始 DCI 校准。
如果未使用 DCIRESET 原语,并且 DCIUpdateMode 设置为 AsRequired,则在这些引脚变成常规I/O引脚后,在配置结束和 DCI 校准算法更新这些引脚的 DCI 设置之间会有不确定的延迟。
如果未使用 DCIRESET,并且 DCIUpdateMode 设置为 Quiet,则这些引脚的 DCI 值将不会被设置。在这种情况下,受控阻抗 DCI I/O 标准(如 LVDCI_18)将始终表现为高阻态,而 分离终端DCI I/O 标准(如 SSTL15_DCI)将表现为没有内部端接。在设计中包含并使用 DCIRESET 原语,可以使这些引脚正常支持DCI I/O标准并稳定工作。
2.7、VRN/VRP External Resistance Design Migration Guidelines
以前具有 DCI 功能的 Xilinx FPGA 系列使用了略有不同的电路,来校准 分离终端(split-termination)阻抗,通过 VRN 和 VRP 引脚上的外部参考电阻。Virtex-6 FPGA的DCI将分离终端电路各支路校准为外部电阻值的两倍。例如,在Virtex-6器件中,若需实现50Ω并联至Vcco/2的目标终端,需在VRN和VRP引脚使用50Ω外部电阻。
7 系列 FPGA 的 DCI 将 分离终端(split termination) 电路的每个分支直接校准为等于外部电阻值。例如,在 7 系列器件中,如果目标是将 并联终端(parallel termination)设置为 50Ω 到 Vcco/2,则需要在 VRN 和 VRP 引脚上使用 100Ω 的外部电阻。这一点在选择同一 I/O BANK(或多个级联 DCI BANK)中用于 受控阻抗 DCI 和 分离终端 DCI 标准的 VRN 和 VRP 值时尤为重要。
在 Virtex-6 FPGA 设计中,如果有一个 50Ω 目标受控阻抗驱动器用于 LVDCI_18 输出,以及一个 50Ω 的目标分离终端 接收器用于 HSTL_I_DCI_18 输入,可在VRN/VRP引脚使用50Ω外部电阻。将此设计迁移到 7 系列 FPGA 时,HSTL_I_DCI_18 I/O 标准保持不变;然而,外部电阻必须更改为 100Ω,并且受控阻抗驱动器更改为 LVDCI_DIV2_18 输出。上述调整可实现等价功能,但需同步修改电阻值与I/O标准。对于 VRN 和 VRP 外部电阻,可以安全使用 0.05W 或更高的功率额定值。
3、DCI Cascading
3.1、DCI级联
使用 DCI I/O 标准的 7系列FPGA 的 HP I/O BANK,可以选择从另一个 HP I/O BANK 获取 DCI 阻抗值。如图 1-6 所示,通过内部数字控制总线在I/O BANK内分配阻抗控制信号,以调节每个I/O的阻抗。
- 通过 DCI 级联:
• 1、I/O BANK 之间会形成 master与slave 的关系
• 2、一个 I/O BANK(master BANK)必须将其 VRN/VRP 引脚连接到外部参考电阻。
• 3、同一 HP I/O BANK 列中的其他 I/O BANK(slave BANK)上的 VRN/VRP 引脚无需连接到外部电阻。
• 4、由 master BANK 发出的DCI 阻抗控制信号会在级联 BANK 中被接收。
• 5、slave BANK 可以使用与 master BANK 相同阻抗的 DCI 标准。
3.2、级联示例
- 图1-7展示了DCI级联支持可跨多个 I/O BANK。Bank B 是 master I/O BANK,而 Bank A 和 Bank C 被视为 slave I/O BANK。
3.3、使用DCI级联时的准则
- 使用 DCI级联 时应遵循以下准则:
• 1、DCI级联 只能用于 HP I/O BANK列;
• 2、master和slave SelectIO BANK 必须全部位于设备上的同一个 HP I/O 列中。
• 3、在采用堆叠硅互连(SSI)技术的大型 Virtex-7 设备中(如 XC7V2000T 和 XC7VX1140T),DCI 级联不能跨越中介层边界。
• 4、master 和slave BANK 必须具有相同的 Vcco 和 Vref 电压(如果适用)。
• 5、同一个 HP I/O 列中不使用 DCI(Pass-through BANKs)的 I/O BANK 不必遵守 Vcco 和 Vref 电压规则,来组合 DCI 设置。
• 6、所有 master 和slave BANK 必须满足 DCI I/O BANK 兼容性规则(例如,所有 master 和 slave BANK 只允许使用一种使用单一终端类型的 DCI I/O 标准)。
• 7、Xilinx 建议给未使用的 BANK 供电,因为让未使用 I/O BANK 的 Vcco 引脚悬空会降低这些引脚和 BANK 中的 I/O 引脚的 ESD 保护水平。若 BANK 未供电,DCI 仍然可以通过未供电的 BANK 进行级联。
4、串联端接
- 对于支持 DCI 受控阻抗驱动器的 I/O 标准,DCI 可以将输出驱动器配置为以下类型:
- 受控阻抗驱动器(源端端接)
- 半阻抗受控阻抗驱动器(源端端接)
4.1、Controlled Impedance Driver (Source Termination)
为了优化高速或高性能应用的信号完整性,需要采取额外措施来使驱动器的输出阻抗与传输线及接收器的阻抗相匹配。理想情况下,驱动器的输出阻抗应与传输线特性阻抗匹配,否则可能因阻抗不连续引发反射。为解决这个问题,设计者有时会在高驱动强度、低阻抗驱动器的引脚附近放置外部源端串联终端电阻。选择电阻值,使 驱动器的输出阻抗,加上 源端串联电阻 之和大致等于传输线的阻抗。
DCI可提供受控阻抗输出驱动器,无需外部源端端接电阻即可消除反射。该阻抗通过阻值等于传输线阻抗的外部参考电阻设定。
支持受控阻抗驱动器的 DCI I/O 标准包括:LVDCI_15、LVDCI_18、HSLVDCI_15、HSLVDCI_18、HSUL_12_DCI 和 DIFF_HSUL_12_DCI。图 1-8 展示了 7系列器件中的受控阻抗驱动器。
4.2、Controlled Impedance Driver with Half Impedance (Source Termination)
DCI 还提供具有参考电阻阻值一半阻抗的驱动器阻抗配置。将参考电阻值加倍,使这些电阻的静态功耗降低了一半。支持半阻抗受控阻抗驱动器的 DCI I/O 标准有:LVDCI_DV2_15 和 LVDCI_DV2_18。图1-9展示了7系列器件内部半阻抗受控驱动器。参考电阻 R 必须为 2 × Z0,以匹配 Z0 的阻抗。
5、并联端接
5.1、并联端接概述
对于支持 并行端接(parallel termination)的 I/O 标准,DCI会创建一个 戴维南等效(Thevenin Equivalent)电路,或 分离终端(split-termination)电阻 将分压至 Vcco的一半(Vcco/2)。 I/O 标准的命名约定添加了以下内容:
• 如果 I/O 中始终存在 分离终端 电阻 ,无论该标准是用于输入、输出还是双向引脚,则需要在I/O标准的名称中添加“DCI”。
• 如果仅在输出缓冲器处于三态时存在分离终端电阻 ,则需要在I/O标准的名称中会添加“T_DCI”。
5.2、Split-Termination DCI (Thevenin Equivalent Termination to Vcco/2)
- Split-Termination DCI (Thevenin Equivalent Termination to Vcco/2), 分离终端DCI(等效于Vcco/2的戴维南终端)。
5.2.1、电阻Z0=R
部分I/O标准(如HSTL与SSTL)需要在输入端配置阻值为R的端接电阻,连接至VTT电压(Vcco/2),如图1-10所示。
5.2.2、电阻Z0=2R
分离终端DCI 通过使用两个两倍阻值的电阻(2R)创建戴维南等效电路:一端连接至Vcco,另一端接地。 分离终端DCI 通过该方法可提供一个 等效端接 到Vcco/2。2R 端接的阻值由外部参考电阻设定。例如,要实现 50Ω 到 Vcco/2 的 戴维南等效并联端接 电路,则需要在 VRN 和 VRP 引脚处连接100Ω的外部精密电阻。支持 分离终端(split-termination)的 DCI 输入标准在表 1-2 中显示。
图1-11展示了7系列器件内部的Split-Termination DCI结构。
5.3、DCI and 3-state DCI (T_DCI)
-
SSTL 和 HSTL I/O 标准的 class-I类 驱动器 仅支持单向信号传输;它们只能被分配给设计中的输入专用或输出专用引脚,而不是双向引脚。class-I类 的SSTL 和 HSTL I/O 标准的 DCI **仅在输入(而非输出)**上存在内部分离终端电阻。
-
SSTL 和 HSTL I/O 标准的 class-II 类 驱动器支持双向和单向信号传输;它们可以被分配给设计中的输入、输出或双向引脚。SSTL 和 HSTL I/O 标准的 DCI 的 class-II类 驱动器始终在输入、输出或双向引脚上存在 内部分离终端电阻。
-
图 1-12 展示了 7 系列器件内部的 split termination 驱动器。
-
当引脚处于驱动状态时,若存在 分离终端( split-termination) 时,DCI 仅控制终端的阻抗,而不控制驱动器。然而,许多应用可以在引脚驱动时关闭分离终端电阻,并从中受益。3-state DCI(T_DCI)标准的设计满足了这一需求,即在输出缓冲器驱动时关闭分离终端电阻,并在输出处于3态(如接收或空闲状态)时打开分离终端电阻。T_DCI 标准只能被分配给双向引脚。对于单向输入引脚,可以分配标准的 DCI 版本。对于单向输出引脚,可以分配非 DCI 版本或 DCI 版本。
-
一直具有分离终端DCI电阻的I/O标准,如表1-3所列。
HSTL 和 SSTL I/O 标准的 非class II 版本仅在输入端有 split-termination DCI 电阻,输出端没有。这些标准不允许双向引脚分配。
-
仅在三态时具有分离终端DCI I/O 标准( T_DCI ),如表 1-4 中显示。
注意:T_DCI 标准只能分配给双向引脚。
6、DCI in 7 Series FPGAs I/O Standards
6.1、7 系列设备中的所有 DCI I/O 标准:
6.2、在 7 系列器件中正确使用 DCI
要在7系列器件中正确使用DCI,需遵循以下规则:
1、Vcco 引脚须根据该 I/O bank 中的 IOSTANDARD 连接到适当的 Vcco 电压。
2、必须在软件中使用正确的 DCI I/O 缓冲器,可以通过 IOSTANDARD属性 或 HDL代码中的实例化 来实现。
3、
DCI 标准要求将外部参考电阻连接到多功能引脚(VRN 和 VRP)。此时,这两个多功能引脚不能用作 使用 DCI 的 I/O BANK 中的通用 I/O,或者在 级联DCI 时用作 master I/O BANK 中的通用 I/O。VRN 引脚必须通过其参考电阻上拉到 Vcco。VRP 引脚必须通过其参考电阻下拉到接地。但有一个例外:当在 slave I/O BANK 中 级联DCI 时, VRN 和 VRP 引脚可以用作通用 I/O(无需连接VRN/VRP外部参考电阻)。
具有受控阻抗驱动器的 DCI 标准可用于仅输入信号。在这种情况下,如果这些引脚是在某个给定 I/O BANK 中仅使用 DCI 标准的引脚,则该 BANK 不需要将外部参考电阻连接到 VRP/VRN 引脚。当某I/O BANK 中仅配置此类基于DCI的I/O标准时,该 BANK 的VRP与VRN引脚可用作通用I/O引脚。
不需要在 VRP/VRN 上使用参考电阻的 DCI 输入,如表 1-6 所示。
4、外部参考电阻的阻值应根据目标输出驱动阻抗或分离终端阻抗需求进行选择。
例如,当使用 LVDCI_15标准时,为了实现 50Ω 的输出驱动阻抗,VRN 和 VRP 引脚上的每个外部参考电阻都应为 50Ω。当使用 SSTL15_T_DCI标准时,为了实现 50Ω 的戴维南等效终端(R)到 Vcco/2,每个外部参考电阻都应为 100Ω,即(2R)。Xilinx 要求在 VRP 和 VRN 引脚上使用完全相同的电阻值,以实现预期的 DCI 行为。
5、遵循 DCI I/O BANK 规则:
a. 使用 DCI 级联时,同一 I/O BANK 或一组 I/O BANK 中的所有输入需要与其 VREF 必须兼容。
b. 同一 I/O BANK 中的所有输入和输出,其 Vcco 必须兼容。
c. 分离终端、受控阻抗驱动器和具有半阻抗的受控阻抗驱动器可以共存于 同一 BANK 中。
6.3、DCI Usage Examples
图1-13,展示了HSTL_I_DCI和HSTL_II_DCI I/O标准。
图1-14,展示了SSTL18_I_DCI和SSTL18_II_DCI I/O标准。
7、参考文献
1、《ug471_7Series_SelectIO.pdf》
2、《Xilinx 7系列SelectIO结构之DCI(动态可控阻抗)技术(一)》
3、《Xilinx 7系列SelectIO结构之DCI(动态可控阻抗)技术(二)》
4、《基于7系列FPGA的DCI技术的应用》
5、《FPGA - 7系列 FPGA内部结构之SelectIO -01- 简介与DCI技术简介》
6、《阻抗与阻抗匹配》