南昌汉邦网站建设,电商营销推广有哪些?,tp5网站开发模板下载,企业免费发布信息平台本文主要参考UG471《7 Series FPGAs SelectIO Resources》
一、IO资源 7系列FPGA包含了来自前一代Xilinx FPGA的基本I/O逻辑资源。这些资源包括以下内容#xff1a;
组合输入/输出3态输出控制端口寄存器 输入/输出寄存器3态输出控制双数据速率#xff08;DDR#xff09;输…本文主要参考UG471《7 Series FPGAs SelectIO Resources》
一、IO资源 7系列FPGA包含了来自前一代Xilinx FPGA的基本I/O逻辑资源。这些资源包括以下内容
组合输入/输出3态输出控制端口寄存器 输入/输出寄存器3态输出控制双数据速率DDR输入/输出DDR输出3态控制IDELAY提供用户可调节的、精细分辨率延迟调整ODELAY提供用户可调节的、精细分辨率延迟调整SAME_EDGE输出DDR模式SAME_EDGE和SAME_EDGE_PIPELINED输入DDR模式 图2-1显示了1.8V HP存储器块的I/O块。图2-2显示了3.3V HR存储器块的I/O块。SelectIO™输入、输出和3态驱动器位于输入/输出缓冲IOB中。HP存储器块具有单独的IDELAY和ODELAY块。HR存储器块与HP存储器块具有相同的逻辑元件除了ODELAY块。 IDELAY2,ODELAY2,ILOGIC*,OLOGIC*都在IOB周围但不在IOB内部。 二、ILOGIC 资源 ILOGIC 块位于 I/O 块IOB旁边。ILOGIC 块包含用于捕获数据的同步元件这些数据通过 IOB 进入 FPGA。在 7 系列器件中可以配置的 ILOGIC 是 ILOGICE2HP I/O 存储器块和 ILOGICE3HR I/O 存储器块。尽管在本指南中始终被称为 ILOGIC除非明确指定否则 ILOGICE2 和 ILOGICE3 在功能上是相同的它们的端口也是相同的。ILOGICE2 和 ILOGICE3 之间唯一的区别是
ILOGICE3 位于 HR 存储器块中具有零保持延迟元素ZHOLD。ILOGICE2 位于 HP 存储器块中不具有 ZHOLD 元素。
ZHOLD作用? 这些差异显示在图2-3和图2-4中。输入/输出互连IOI存储元件的 D 输入处的 ZHOLD 延迟消除了任何板间保持时间要求。ZHOLD 延迟会自动匹配内部时钟分配延迟并在使用时确保板间保持时间为零。ILOGIC 块支持在输入上的可选静态非补偿零保持ZHOLD延迟线以补偿时钟插入延迟。ZHOLD 功能经过优化用于补偿时钟插入延迟当时钟路径直接来自于同一存储器块或相邻存储器块中的 BUFG/BUFGCE 时。除非时钟源是 MMCM 或 PLL或者在 Xilinx 设计约束XDC中设置了 IOBDELAY 属性否则默认启用 ZHOLD。
重要提示ZHOLD 可能不适用于所有应用程序请查看时序报告以验证对特定时钟方案的影响。 ILOGICE2 和 ILOGICE3 不是原语不能像实例化原语那样实例化。它们包含用户实例化的元素例如放置和布线后的输入触发器IFD或输入 DDR 元素IDDR。 ILOGIC 可以支持以下操作
边沿触发的 D 类型触发器IDDR 模式OPPOSITE_EDGE、SAME_EDGE 或 SAME_EDGE_PIPELINED。有关输入 DDR 的更多讨论请参阅输入 DDR 概述IDDR第109页。电平敏感型锁存器异步/组合逻辑 ILOGIC 块寄存器具有一个默认情况下为高电平有效的公共时钟使能信号CE1。如果未连接任何存储元素的时钟使能引脚都会默认为活动状态。 ILOGIC 块寄存器具有公共的同步或异步设置和复位SR 信号。设置/复位输入引脚 SR 强制存储元素进入由 SRVAL 属性指定的状态。复位条件优先于设置条件。 SRVAL 属性可以单独设置每个 ILOGIC 块中的每个存储元素但不能单独设置每个 ILOGIC 块中的存储元素的同步或异步设置/复位SRTYPE。 以下各节讨论了 ILOGIC 块内部的各种资源。
2.1、组合逻辑输入路径 组合逻辑输入路径用于在输入驱动器和 FPGA 逻辑之间创建直接连接。当以下情况自动使用此路径时
在 FPGA 逻辑中从输入数据到逻辑资源存在直接非寄存器连接。将 pack I/O 寄存器/锁存器映射指令设置为 OFF。 即不使用IO端口寄存器单端输出信号一般建议使用时序更可控制 2.2、输入 DDR 概述IDDR 7 系列器件在 ILOGIC 块中具有专用寄存器用于实现输入双数据速率DDR寄存器。通过实例化 IDDR 原语来使用此功能。 输入到 I/O 块的所有时钟都是完全多路复用的即 ILOGIC 和 OLOGIC 块之间没有时钟共享。IDDR 原语支持以下操作模式
OPPOSITE_EDGE 模式SAME_EDGE 模式SAME_EDGE_PIPELINED 模式 SAME_EDGE 和 SAME_EDGE_PIPELINED 模式与 Virtex-6 架构相同。这些模式允许设计者将下降沿数据传输到 ILOGIC 块内的上升沿域从而节省 CLB 和时钟资源提高性能。这些模式使用 DDR_CLK_EDGE 属性实现。以下各节详细描述了每种模式。
2.2.1、OPPOSITE_EDGE 模式 传统的输入 DDR 解决方案或称 OPPOSITE_EDGE 模式通过 ILOGIC 块中的单个输入来实现。数据在时钟上升沿通过输出 Q1 提交给 FPGA 逻辑并在时钟下降沿通过输出 Q2 提交给 FPGA 逻辑。这种结构类似于 Virtex-6 FPGA 的实现。图2-5显示了使用 OPPOSITE_EDGE 模式的输入 DDR 的时序图。2.2.2、SAME_EDGE 模式 在 SAME_EDGE 模式下数据在相同的时钟边沿被呈现到 FPGA 逻辑中。这种结构类似于 Virtex-6 FPGA 的实现。 图2-6显示了使用 SAME_EDGE 模式的输入 DDR 的时序图。在时序图中输出对 Q1 和 Q2 不再是 (0) 和 (1)。相反首先呈现的是 Q1 对 (0) 和 Q2 对不关心接着是下一个时钟周期上的对 (1) 和 (2)。 同一时钟上下沿的数据不对齐。
2.2.3、SAME_EDGE_PIPELINED模式 在SAME_EDGE_PIPELINED模式下数据在同一时钟沿上被提供给FPGA逻辑。 与SAME_EDGE模式不同数据对并没有在一个时钟周期内分离。但是需要额外的时钟延迟来消除SAME_EDGE模式的分离效应。图2-7显示了使用SAME_EDGE_PIPELINED模式的输入DDR的时序图。输出对Q1和Q2在同一时刻提供给FPGA逻辑。 2.2.3、输入 DDR 资源IDDR 图2-8显示了IDDR原语的块图。不能同时支持设置和复位。 注意 IDDR原语包含设置和复位引脚。但是每个IDDR只能使用一个引脚因此描述中使用了S/R代替单独的设置和复位引脚。 库指南中包括了在VHDL和Verilog中实例化IDDR原语的模板。 2.2.4、ILOGIC 时序模型
本节描述了ILOGIC块内各种资源相关的时序。
ILOGIC 时序特性
图2-9说明了ILOGIC寄存器时序。当使用IDELAY时TIDOCK会被TIDOCKD替代。 时钟事件1
在时钟事件1之前的时间TICE1CK输入时钟使能信号在输入寄存器的CE1输入处变为有效高电平从而使输入寄存器对传入的数据启用。在时钟事件1之前的时间TIDOCK输入信号在输入寄存器的D输入处变为有效高电平并在时钟事件1之后的时间TICKQ时反映在输入寄存器的Q1输出上。
时钟事件4
在时钟事件4之前的时间TISRCKS/R信号在此情况下配置为同步复位变为有效高电平将输入寄存器复位并在时钟事件4之后的时间TICKQ时反映在IOB的Q1输出上。 ILOGIC 时序特性DDR
图2-10说明了IDDR模式下的ILOGIC时序特性。当使用IDELAY时TIDOCK会被TIDOCKD替代。所示的示例使用了OPPOSITE_EDGE模式的IDDR。对于其他模式请根据图2-7中所示的适当延迟添加。 时钟事件1
在时钟事件1之前的时间TICE1CK输入时钟使能信号在两个DDR输入寄存器的CE1输入处变为有效高电平从而使它们对传入的数据启用。由于CE1和D信号对两个DDR寄存器都是共用的因此必须小心地在时钟上升沿和下降沿之间切换这些信号并满足相对于这两个边沿的寄存器建立时间。在时钟事件1之前的时间TIDOCKCLK上升沿之前输入信号在两个寄存器的D输入处变为有效高电平并在时钟事件1之后的时间TICKQ时反映在输入寄存器1的Q1输出上。 时钟事件4
在时钟事件4之前的时间TIDOCKCLK下降沿之前输入信号在两个寄存器的D输入处变为有效低电平并在时钟事件4之后的时间TICKQ时反映在输入寄存器2的Q2输出上在此情况下没有变化。 时钟事件9
在时钟事件9之前的时间TISRCKS/R信号在此情况下配置为同步复位变为有效高电平将Q1在时钟事件9之后的时间TICKQ时复位并在时钟事件10之后的时间TICKQ时将Q2复位。 三、输入延迟资源IDELAY 每个I/O块都包含一个可编程延迟原语称为IDELAYE2。IDELAY可以连接到ILOGICE2/ISERDESE2或ILOGICE3/ISERDESE2块。 IDELAYE2是一个31级、环绕式的延迟原语具有校准的级分辨率。请参考7系列FPGA数据手册获取延迟值。它可以应用于组合逻辑输入路径、寄存器输入路径或两者。它还可以直接从FPGA逻辑中访问。IDELAY允许根据每个输入引脚独立延迟传入信号。级延迟分辨率通过7系列FPGA数据手册中指定的范围内的IDELAYCTRL参考时钟进行连续校准。
图2-11显示了IDELAYE2原语。 IDELAY_TYPE 属性
IDELAY_TYPE属性设置所使用的延迟类型。
当IDELAY_TYPE属性设置为FIXED时级延迟值在由IDELAY_VALUE属性设置确定的级数上固定。此值预设且不能在配置后更改。
当IDELAY_TYPE属性设置为VARIABLE时将选择可变级延迟。可以通过设置CE 1和INC 1来增加级延迟或通过CE 1和INC 0来减小级延迟。增量/减量操作与C同步进行。
当IDELAY_TYPE属性设置为VAR_LOAD或VAR_LOAD_PIPE时可更改并动态加载可变级延迟。可以通过设置CE 1和INC 1来增加级延迟或通过CE 1和INC 0来减小级延迟。增量/减量操作与C同步进行。在此模式下LD引脚加载在VAR_LOAD模式中CNTVALUEIN中呈现的值或在VAR_LOAD_PIPE模式中先前写入到流水线寄存器中的值。这允许动态设置级延迟的值。 IDELAY_VALUE 属性
IDELAY_VALUE属性指定初始级延迟的级数。可能的值是从0到31的任何整数。默认值为零。在级延迟被复位通过断言LD引脚时级延迟的值将恢复为IDELAY_VALUE。在VARIABLE模式下此属性确定延迟线的初始设置。在VAR_LOAD或VAR_LOAD_PIPE模式下不使用此属性因此延迟线的初始值始终为零。 HIGH_PERFORMANCE_MODE 属性
当为TRUE时此属性减少了输出抖动。抖动的减小导致IDELAYE2原语的功耗略微增加。 SIGNAL_PATTERN 属性
时钟和数据信号具有不同的电气特性因此在IDELAY链中累积不同数量的抖动。通过设置SIGNAL_PATTERN属性用户可以在计算时序时适当地考虑抖动。时钟信号是周期性的不具有连续的1或0的长序列而数据是随机的可以具有长序列和短序列的1和0。 IDELAY 模式
在作为IDELAY时数据输入来自IBUF或FPGA逻辑输出到ILOGICE2/ISERDESE2或ILOGICE3/ISERDESE2。有四种可用的操作模式
固定延迟模式IDELAY_TYPE FIXED 在固定延迟模式下延迟值在配置时预设为由属性IDELAY_VALUE确定的级数。一旦配置此值不能更改。在此模式下使用时必须实例化IDELAYCTRL原语。有关详细信息请参见IDELAYCTRL使用和设计指南。可变延迟模式IDELAY_TYPE VARIABLE 在可变延迟模式下延迟值可以在配置后通过操作控制信号CE和INC来更改。在此模式下使用时必须实例化IDELAYCTRL原语。有关详细信息请参见IDELAYCTRL使用和设计指南。在VARIABLE模式下使用的控制引脚在表2-6中描述。 可加载的可变延迟模式IDELAY_TYPE VAR_LOAD 除了具有IDELAY_TYPE VARIABLE的相同功能外在此模式下可以通过来自FPGA逻辑的5位输入位CNTVALUEIN4:0加载IDELAY级延迟。当脉冲LD时CNTVALUEIN4:0处的值将是新的级值。由于这个功能IDELAY_VALUE属性被忽略。在此模式下使用时必须实例化IDELAYCTRL原语。有关详细信息请参见IDELAYCTRL使用和设计指南。在VAR_LOAD模式下使用的控制引脚在表2-7中描述。 IDELAY时序
表2-8显示了IDELAY的切换特性。 图2-12显示了一个IDELAYIDELAY_TYPE VARIABLEIDELAY_VALUE 0DELAY_SRC IDATAIN的定时图。 时钟事件1
在C的上升沿上检测到复位LD为高电平导致输出DATAOUT选择来自31级链的级0作为输出。 时钟事件2
在C的上升沿上捕获到CE和INC的脉冲。这表示一个递增操作。输出从级0无故障地变为级1。参见递增/递减操作后的稳定性。 时钟事件3
CE和INC不再被激活从而完成递增操作。输出将永远停留在级1除非LD、CE或INC引脚有进一步的活动。 图2-13显示了VAR_LOAD模式下IDELAY的定时图。 时钟事件0
在脉冲LD之前级设置和因此CNTVALUEOUT的值是未知的。 时钟事件1
在C的上升沿上检测到LD为高电平导致输出DATAOUT具有由CNTINVALUE定义的延迟并将级设置更改为级2。CNTVALUEOUT被更新以表示新的级值。 时钟事件2
在C的上升沿上捕获到CE和INC的脉冲。这表示一个递增操作。输出从级2无故障地变为级3。CNTVALUEOUT被更新以表示新的级值。 时钟事件3
在C的上升沿上检测到LD为高电平导致输出DATAOUT被CNTINVALUE延迟。CNTVALUEOUT显示级设置的值。输出将停留在级10除非LD、CE或INC引脚有进一步的活动。 递增/递减操作后的稳定性
图2-12显示了延迟线在响应INC和CE命令时从级0变为级1。显然当级0处的数据值与级1处的数据值不同时输出必须改变状态。然而当级0和级1处的数据值相同时例如都为0或都为1则从级0到级1的过渡不会对输出造成任何毛刺或干扰。可以通过想象接收器数据信号通过IDELAY级链来更好地理解这个概念。如果级0和级1都接近接收器数据眼的中心那么在级0处采样的数据与在级1处采样的数据没有区别。在这种情况下从级0到级1的过渡不会对输出产生任何变化。为了确保这一点IDELAY的递增/递减操作被设计为无毛刺。相同的解释也适用于图2-13中显示的VAR_LOAD行为。然而VAR_LOAD可以改变延迟超过一个级这可能会导致样本点远离当前眼中心点。
因此用户可以在实时传递通过IDELAYE2原语的实时用户数据时动态调整IDELAY级设置。只要当前的延迟线值接近接收数据眼的中央这些调整不会干扰实时用户数据。
在时钟信号路径中使用IDELAYE2原语时无毛刺行为也适用。调整级设置不会导致输出上的毛刺或干扰只要延迟线值不接近接收到的时钟信号中看到的边缘。在这种情况下可以调整时钟路径中IDELAYE2原语的级设置而不会干扰可能在该时钟上运行的任何时钟管理元素或状态机。
IDELAY VHDL和Verilog 所有原语和子模块的VHDL和Verilog实例化模板都可以在Libraries Guide中找到。 四、IDELAYCTRL
IDELAYCTRL概述
如果实例化了IDELAYE2或ODELAYE2原语则还必须实例化IDELAYCTRL模块。IDELAYCTRL模块不断校准其区域内各个延迟级IDELAY/ODELAY以减小工艺、电压和温度变化的影响。IDELAYCTRL模块使用用户提供的REFCLK校准IDELAY和ODELAY。 IDELAYCTRL原语
图2-14显示了IDELAYCTRL原语。 IDELAYCTRL端口
RST - 复位
复位输入引脚RST是一个主动高电平的异步复位。为确保正确的IDELAY和ODELAY操作必须在配置后重置IDELAYCTRL并且REFCLK信号稳定。需要复位脉冲宽度TIDELAYCTRL_RPW。
复位需要时钟稳定宽度有要求。 REFCLK - 参考时钟
参考时钟REFCLK为IDELAYCTRL提供时间参考以校准同一区域内如何理解的所有IDELAY和ODELAY模块。此时钟必须由全局或水平时钟缓冲器BUFG或BUFH驱动。REFCLK必须是FIDELAYCTRL_REF ± 指定的ppm公差IDELAYCTRL_REF_PRECISION以保证指定的IDELAY和ODELAY分辨率TIDELAYRESOLUTION。REFCLK可以直接来自用户提供的源或MMCM并且必须路由到全局时钟缓冲器。 RDY - 就绪
就绪RDY信号指示特定区域内的IDELAY和ODELAY模块何时完成校准。如果REFCLK保持高电平或低电平超过一个时钟周期RDY信号将被去激活。如果RDY被去激活为低电平则必须重置IDELAYCTRL模块。实现工具允许RDY未连接/忽略。图2-15说明了RDY与RST之间的时序关系。 IDELAYCTRL时序
表2-9显示了IDELAYCTRL的切换特性。 如图2-15所示7系列FPGA的IDELAYCTRL RST是边沿触发信号。 IDELAYCTRL位置
IDELAYCTRL模块存在于每个时钟区域中的每个I/O列中。一个IDELAYCTRL模块会校准其时钟区域内的所有IDELAYE2和ODELAYE2模块。有关时钟区域的定义请参阅7系列FPGA时钟用户指南。
图2-16说明了IDELAYCTRL模块的相对位置。 、每个区域有50个IO左右共享、使用Gclk、IDELAYCTRL是否需要指定位置 IDELAYCTRL的使用和设计指南
有关放置和锁定IDELAYCTRL的更多信息请参阅约束指南。 五、OLOGIC资源
OLOGIC块位于I/O块IOB旁边。OLOGIC是一个专用的同步块通过IOB将数据发送出FPGA。OLOGIC资源的类型有OLOGICE2HR I/O bank和OLOGICE3HP I/O bank。尽管在本指南中称为OLOGIC但除非明确界定
OLOGICE2和OLOGICE3在功能上是相同的它们的端口也是相同的。 OLOGICE2和OLOGICE3不是原语不能被实例化。它们包含用户实例化的元素如放置和路由后的输出触发器OFD或输出DDR元件ODDR。
OLOGIC由两个主要块组成一个用于配置输出数据路径另一个用于配置三态控制路径。这两个块具有公共时钟CLK但具有不同的使能信号OCE和TCE。两者都具有独立的SRVAL属性控制的异步和同步设置和复位S/R信号。
输出和三态路径可以独立配置为以下模式之一。
边沿触发的D型触发器DDR模式同一边沿或相反边沿电平敏感型锁存器异步/组合 图2-17说明了OLOGIC块中的各种逻辑资源。 本文档的这一部分讨论了使用OLOGIC资源可以使用的各种功能。 组合式输出数据和三态控制路径
组合输出路径从FPGA逻辑到输出驱动器或输出驱动器控制创建了直接连接。当满足以下条件时软件将自动使用这些路径
FPGA逻辑中的逻辑资源与输出数据或三态控制之间存在直接未使用寄存器连接。将I/O寄存器/锁存器包装到IOB的软件映射指令设置为OFF。 输出DDR概述ODDR
7系列器件在OLOGIC中具有专用寄存器用于实现输出DDR寄存器。在实例化ODDR原语时可以访问此功能。当使用OLOGIC时DDR多路复用是自动的无需手动控制多路复用选择。此控制信号由时钟生成。
ODDR原语只有一个时钟输入。下降沿数据由输入时钟的局部反相版本锁存。进入I/O块的所有时钟都是完全多路复用的即ILOGIC或OLOGIC块之间没有时钟共享。ODDR原语支持以下操作模式
相反边缘模式同一边缘模式 同一边缘模式与Virtex-6架构相同。这种模式允许设计者在ODDR时钟的上升沿上同时提供ODDR原语的两个数据输入从而节省CLB和时钟资源提高性能。这种模式使用DDR_CLK_EDGE属性实现。它也支持三态控制。接下来的几节将详细描述每种模式。 OPPOSITE_EDGE模式
在OPPOSITE_EDGE模式下时钟CLK的两个边沿都用于以两倍的吞吐量捕获来自FPGA逻辑的数据。这个结构类似于Virtex-6 FPGA的实现。两个输出都呈现给IOB的数据输入或三态控制输入。使用OPPOSITE_EDGE模式的输出DDR的时序图如图2-18所示。 SAME_EDGE模式
在SAME_EDGE模式下数据可以在相同的时钟边沿呈现给IOB。在相同的时钟边沿将数据呈现给IOB可以避免设置时间违规并允许用户在最小的寄存器到寄存器延迟的情况下执行更高的DDR频率而不是使用CLB寄存器。图2-19显示了使用SAME_EDGE模式的输出DDR的时序图。 时钟转发
输出DDR可以将时钟的复制转发到输出。这对于传播具有相同延迟的时钟和DDR数据以及多时钟生成非常有用其中每个时钟负载都有一个唯一的时钟驱动器。通过将ODDR原语的D1输入连接到高电平将D2输入连接到低电平来实现这一点。Xilinx建议使用此方案将时钟从FPGA逻辑转发到输出引脚。 Output DDR原语ODDR
图2-20显示了ODDR原语的框图。不支持同时设置和复位。 ODDR VHDL和Verilog模板
“库指南”中包含了在VHDL和Verilog中实例化ODDR模块的模板。 OLOGIC Timing Models
本节讨论与OLOGIC块相关的所有时序模型。表2-12描述了7系列FPGA数据手册中的OLOGIC开关特性的功能和控制信号。 Timing Characteristics
图2-21说明了OLOGIC输出寄存器的时序。 时钟事件1
在时钟事件1之前的TOOCECK时间点输出时钟使能信号在输出寄存器的OCE输入上变为有效高电平启用输出寄存器用于接收数据。在时钟事件1之前的TODCK时间点输出信号在输出寄存器的D1输入上变为有效高电平并在时钟事件1之后的TOCKQ时间点上反映在OQ输出上。
时钟事件4
在时钟事件4之前的TOSRCK时间点S/R信号在此情况下配置为同步复位变为有效高电平将输出寄存器复位并在时钟事件4之后的TRQ时间点上反映在OQ输出上。 图2-22说明了OLOGIC ODDR寄存器的时序。 时钟事件1
在时钟事件1之前的TOOCECK时间点ODDR时钟使能信号在ODDR的OCE输入上变为有效高电平启用ODDR用于接收数据。必须注意在CLK的上升沿和下降沿之间切换ODDR寄存器的OCE信号以及相对于两个时钟沿的寄存器建立时间。在时钟事件1之前的TODCK时间点CLK的上升沿数据信号D1在ODDR寄存器的D1输入上变为有效高电平并在时钟事件1之后的TOCKQ时间点上反映在OQ输出上。
时钟事件2
在时钟事件2之前的TODCK时间点CLK的下降沿数据信号D2在ODDR寄存器的D2输入上变为有效高电平并在时钟事件2之后的TOCKQ时间点上反映在OQ输出上在这种情况下OQ输出没有变化。
时钟事件9
在时钟事件9之前的TOSRCK时间点CLK的上升沿S/R信号在此情况下配置为同步复位变为有效高电平将ODDR寄存器复位反映在时钟事件9之后的OQ输出上在这种情况下OQ输出没有变化并将ODDR寄存器复位反映在时钟事件10之后的OQ输出上在这种情况下OQ输出没有变化。 图2-23说明了OLOGIC 3态寄存器的时序。 时钟事件1
在时钟事件1之前的TOTCECK时间点3态时钟使能信号在3态寄存器的TCE输入上变为有效高电平启用3态寄存器用于接收数据。在时钟事件1之前的TOTCK时间点3态信号在3态寄存器的T输入上变为有效高电平在时钟事件1之后的TOCKQ时间点将引脚返回到高阻态。 时钟事件2
在时钟事件2之前的TOSRCK时间点S/R信号在此情况下配置为同步复位变为有效高电平将3态寄存器在时钟事件2之后的TRQ时间点复位。 图2-24说明了IOB DDR 3态寄存器的时序。本示例使用了DDR在相对边沿模式下。对于其他模式请根据图2-7中显示的适当延迟添加。 时钟事件1
在时钟事件1之前的TOTCECK时间点3态时钟使能信号在3态ODDR寄存器的TCE输入上变为有效高电平启用它们用于接收数据。必须注意切换3态ODDR寄存器的TCE信号以使其在CLK的上升沿和下降沿之间切换并且满足相对于两个时钟沿的寄存器建立时间。在时钟事件1之前的TOTCK时间点CLK的上升沿3态信号T1在3态寄存器的T1输入上变为有效高电平并在时钟事件1之后的TOCKQ时间点上反映在TQ输出上。 时钟事件2 在时钟事件2之前的TOTCK时间点CLK的下降沿3态信号T2在3态寄存器的T2输入上变为有效高电平并在时钟事件2之后的TOCKQ时间点上反映在TQ输出上在这种情况下TQ输出没有变化。 时钟事件9
在时钟事件9之前的TOSRCK时间点CLK的上升沿S/R信号在此情况下配置为同步复位变为有效高电平将3态寄存器复位反映在时钟事件9之后的TQ输出上在这种情况下TQ输出没有变化并将3态寄存器复位反映在时钟事件10之后的TQ输出上在这种情况下TQ输出没有变化。
六、Output Delay Resources (ODELAY)—Not Available in HR Banks
每个HP高性能I/O块都包含一个可编程的绝对延迟原语称为ODELAYE2。 ODELAY可以连接到OLOGICE2/OSERDESE2块。 ODELAY是一个31分tap、wraparound、带有校准tap分辨率的延迟原语。请参考7系列FPGA数据手册以获取延迟值。它可以应用于组合输出路径或已注册的输出路径。也可以直接从FPGA逻辑中访问。ODELAY允许个别延迟出去的信号延迟。通过选择7系列FPGA数据手册中指定的范围内的IDELAYCTRL参考时钟可以改变tap延迟分辨率。 ODELAYE2原语
图2-25显示了ODELAYE2原语。 ODELAY端口
来自FPGA OLOGICE2/OSERDESE2的数据输入 - ODATAIN
ODATAIN输入由OLOGICE2/OSERDESE2驱动。ODATAIN驱动DATAOUT端口该端口由ODELAY_VALUE设置的延迟连接到IOB。 来自时钟缓冲区的时钟输入 - CLKIN
CLKIN输入来自时钟缓冲区BUFIO、BUFG或BUFR。然后此时钟通过设置为ODELAY_VALUE的值延迟并通过DATAOUT和输出缓冲器OBUFT或OBUFTDS输出。当使用IOBUF时延迟的时钟可以路由回FPGA逻辑。
注意在使用IOBUF将时钟路由回FPGA时要注意使用了FPGA的一个封装引脚。 数据输出 - DATAOUT
从两个数据输入端口中的一个延迟的数据。DATAOUT连接到IOB。
时钟输入 - C
ODELAYE2原语的所有控制输入LD、CE和INC都与时钟输入C同步。在VARIABLE、VAR_LOAD或VAR_LOAD_PIPE模式下配置ODELAY时必须连接时钟到此端口。C可以本地反转必须由全局或区域时钟缓冲器提供。此时钟必须连接到SelectIO逻辑资源中使用的相同时钟。例如当使用OSERDESE2时C连接到CLKDIV相同的时钟。如果在与ODELAYE2原语相同的I/O bank中使用IDELAYE2原语则C必须为两个原语使用相同的时钟网络。 模块加载 - LD
在VARIABLE模式下ODELAY加载端口LD将延迟原语加载到由ODELAY_VALUE属性设置的值。如果未指定这些属性则假定值为零。LD信号是一个主动高电平的信号与输入时钟信号C同步。
在VAR_LOAD模式下ODELAY加载端口LD将延迟原语加载到由CNTVALUEIN设置的值。CNTVALUEIN[4:0]处的值将是新的tap值。由于此功能将忽略ODELAY_VALUE属性。 在VAR_LOAD_PIPE模式下IDELAY加载端口LD将当前在Pipeline 寄存器中的值加载。Pipeline 寄存器中存在的值将是新的tap值。 Pipeline寄存器加载 - LDPIPEEN
当高电平时此输入将Pipeline 寄存器加载到CNTVALUEIN引脚上当前的值。 Pipeline 寄存器复位 - REGRST
当高电平时此输入将Pipeline 寄存器复位为全零。 C引脚极性切换 - CINVCTRL
CINVCTRL引脚用于动态切换C引脚的极性。这是在不需要毛刺的应用中使用的。在切换极性时不要在两个时钟周期内使用ODELAY控制引脚。 计数值输入 - CNTVALUEIN
CNTVALUEIN引脚与LD引脚一起用于动态切换可加载的tap值。 计数值输出 - CNTVALUEOUT
CNTVALUEOUT引脚用于报告加载的tap值。 增量/减量信号 - CE、INC
增量/减量由使能信号CE控制。此接口仅在ODELAY处于VARIABLE、VAR_LOAD或VAR_LOAD_PIPE模式时可用。
只要CE保持高电平ODELAY将每个时钟C周期以TIDELAYRESOLUTION递增或递减。INC的状态确定ODELAY是否递增或递减INC 1时递增INC 0时递减与时钟C同步。如果CE为低电平则ODELAY的延迟不会改变无论INC的状态如何。
当CE变为高电平时增量/减量操作将在下一个正时钟周期开始。当CE变为低电平时增量/减量操作将在下一个正时钟沿停止。
ODELAYE2原语中的可编程延迟tap是环绕的。当达到延迟tap的末端tap 31时后续的增量函数将返回到tap 0。减量功能也是如此减小到零以下会移动到tap 31。 VAR_LOAD_PIPE模式中的Pipeline 寄存器功能在总线结构设计中非常有用。可以逐个加载个别延迟管道然后使用LD引脚将所有延迟同时更新为其新值。 ODELAY_TYPE属性
当设置为FIXED时tap延迟值固定为由ODELAY_VALUE属性设置确定的分段数量。此值预设且在配置后无法更改。
当设置为VARIABLE时选择可变的tap延迟。可以通过设置CE 1和INC 1来增加tap延迟或通过CE 1和INC 0来减少tap延迟。增量/减量操作与C同步进行。
当设置为VAR_LOAD或VAR_LOAD_PIPE时可更改并动态加载可变的tap延迟。可以通过设置CE 1和INC 1来增加tap延迟或通过CE 1和INC 0来减少tap延迟。增量/减量操作与C同步进行。
在VAR_LOAD模式下LD引脚加载CNTVALUEIN上呈现的值。这允许动态设置tap值。在VAR_LOAD_PIPE模式下LD引脚启用将管道寄存器中的当前值加载到输出延迟中。 ODELAY_VALUE属性
ODELAY_VALUE属性指定tap延迟。可能的值是从0到31的任何整数。默认值为零。通过在断言LD信号时将tap延迟复位tap延迟的值将恢复为ODELAY_VALUE。在VAR_LOAD或VAR_LOAD_PIPE模式下假定此属性为零。
HIGH_PERFORMANCE_MODE属性
当为TRUE时此属性减少了输出抖动。抖动减小导致ODELAYE2原语的功耗略有增加。 SIGNAL_PATTERN属性
时钟和数据信号具有不同的电气特性因此在ODELAY链中积累不同量的抖动。通过设置SIGNAL_PATTERN属性用户可以在计算时序时适当地考虑抖动。时钟信号具有周期性没有连续的连续1或0序列而数据具有随机性可以具有长短不一的1和0序列。 ODELAY模式
当用作ODELAY时数据输入来自IBUF或FPGA逻辑输出到ILOGICE2/ISERDESE2或ILOGICE3/ISERDESE2。有四种可用的操作模式
固定延迟模式ODELAY_TYPE FIXED 在固定延迟模式中延迟值在配置时预设为由属性ODELAY_VALUE确定的分段数。一旦配置此值无法更改。在此模式下使用时必须实例化IDELAYCTRL原语。有关更多详细信息请参阅IDELAYCTRL用法和设计准则。可变延迟模式ODELAY_TYPE VARIABLE 在可变延迟模式下可以通过操纵控制信号CE和INC在配置后更改延迟值。在此模式下使用时必须实例化IDELAYCTRL原语。
有关更多详细信息请参阅IDELAYCTRL用法和设计准则。在VARIABLE模式中使用的控制引脚在表2-6中描述。 可加载可变延迟模式ODELAY_TYPE VAR_LOAD
除了在此模式中具有ODELAY_TYPE VARIABLE的相同功能外ODELAY tap还可以通过来自FPGA逻辑的5输入位CNTVALUEIN4:0进行加载。当LD脉冲时CNTVALUEIN4:0上呈现的值将成为新的tap值。由于此功能将忽略ODELAY_VALUE属性。在此模式下使用时必须实例化IDELAYCTRL原语。有关更多详细信息请参阅IDELAYCTRL用法和设计准则。在VAR_LOAD模式下使用的控制引脚在表2-7中描述。 ODELAY Timing
图2-26显示了ODELAYE2ODELAY_TYPE VARIABLEODELAY_VALUE 0DELAY_SRC CLKIN/ODATAIN的时序图。 时钟事件1
在C的上升沿上检测到复位LD为高导致输出DATAOUT选择来自31个延迟tap链的tap 0作为输出。 时钟事件2 在C的上升沿上捕获到CE和INC的脉冲表示增量操作。输出从tap 0到tap 1变化没有毛刺。请参阅增量/减量操作后的稳定性。
时钟事件3
不再断言CE和INC因此完成了增量操作。输出将无限期保持在tap 1直到LD、CE或INC引脚有进一步活动为止。
图2-27显示了ODELAY的时序图。 时钟事件0
在脉冲LD之前tap设置和CNTVALUEOUT的值未知。 时钟事件1
在C的上升沿上检测到LD为高导致输出DATAOUT等于CNTINVALUE并将tap设置更改为tap 2。CNTVALUEOUT更新以表示新的tap值。 时钟事件2
在C的上升沿上捕获到CE和INC的脉冲表示增量操作。输出从tap 2到tap 3变化没有毛刺。CNTVALUEOUT更新以表示新的tap值。 时钟事件3
在C的上升沿上检测到LD导致输出DATAOUT等于CNTINVALUE。CNTVALUEOUT显示tap设置的值。输出将无限期保持在tap 10直到LD、CE或INC引脚有进一步活动为止。 增量/减量操作后的稳定性
图2-26显示了ODELAY线在响应INC和CE命令时从tap 0变为tap 1。显然当tap 0处的数据值与tap 1处的数据值不同时输出必须更改状态。但是当tap 0和tap 1处的数据值相同时例如都为0或都为1则从tap 0到tap 1的过渡不会对输出造成毛刺或干扰。通过想象发射器数据信号通过ODELAY tap链的方式可以更好地理解这个概念。如果tap 0和tap 1都接近传输信号的中心那么tap 0处的数据与tap 1处的数据将没有任何不同。在这种情况下从tap 0到tap 1的过渡不会对输出造成任何更改。为了确保这一点ODELAY的增量/减量操作被设计成无毛刺。
因此只要当前的延迟线值接近传输数据信号的中心用户可以在实时传递用户数据的同时动态调整ODELAY tap设置。只要当前的延迟线值接近传输数据信号的中心这些调整不会干扰实时用户数据。 当ODELAYE2原语用于时钟信号的路径时无毛刺行为也适用。调整tap设置不会导致输出上的毛刺或干扰。 ODELAY VHDL和Verilog实例化模板
所有原语和子模块的VHDL和Verilog实例化模板可在Libraries Guide中找到。 在VHDL中每个模板都有一个组件声明部分和一个体系结构部分。模板的每个部分都应插入到VHDL设计文件中。体系结构部分的端口映射应包括设计信号名称。