我是靠谱客的博主 直率水池,最近开发中收集的这篇文章主要介绍转发:Xilinx 7series FPGA SelectIO资源--ODDROLOGIC 资源Output DDR概述(ODDR),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

OLOGIC 资源

OLOGIC块在FPGA内的位置紧挨着IOB,其作用是FPGA通过IOB发送数据到器件外部的专用同步块。OLOGIC 资源的类型有OLOGIC2(位于HP I/O banks)和OLOGIC2(位于HR I/O banks)。在本文的下述论述中,除非特殊说明,OLOGIC2和OLOGIC3在功能和端口上都是相同的。

OLOGIC2和OLOGIC3不属于原语,正因为这样,所以它们不能被直接例化。它包含在布局布线后用户可例化的一些元素,例如一个输出触发器(OFD--output  flip-flop)或者一个ODDR(output DDR element).

OLOGIC主要由两个block组成,一个用于配置输出路径。另外一个用于配置三态控制路径。这两个block具有共同的时钟,但是具有不同的使能信号OCE和TCE。两者具有由SRVAL属性精致的一部和同步set和reset(S/R信号)。

输出路径和三态枯井可以以下列模式之一独立配置:

  • 边沿触发的D触发器
  • DDR模式(ASAME_EDGE 或 OPPOSITE_EDGE)
  • 电平敏感锁存器
  • 异步电路/组合逻辑
下图说明了OLOGIC block中的各种逻辑资源


    组合输出数据路径和三态控制路径

组合输出路径创建一个从FPGA逻辑到输出驱动或输出驱动控制的直接连接。这些路径常常由软件自动设置,当:

  1. 从FPGA逻辑内的逻辑资源到输出数据或者三态控制的直接连接(未经过寄存器)。
  2. pack i/o register/larches into IOBs 软件map指令被设置为OFF。

Output DDR概述(ODDR)

7系列器件在OLOGIC中有专用寄存器来实现输出DDR寄存器。这个功能在例化ODDR时可见。在使用OLOGIC时,DDR的复用是自动的,不需要手动控制多路复用。这个控制是从时钟产生的。

ODDR原语是由一个时钟输入,下降沿数据由输入时钟的本地反转来计时。反馈到I/O块的所有的时钟被完全复用。例如:在ILOGIC和OLOGIC块之间没有时钟共享。ODDR原语支持一下操作模式:

  • OPPOSITE_EDGE 模式
  • SAME_EDGE模式
SAME_EDGE模式与Virtex-6架构相同,这个模式允许设计者在ODDR时钟的上升沿向ODDR原语提供数据输入,从而节省CLB和时钟资源,并提高性能。此模式使用DDR_CLK_EDGE属性实现。它也支持三态控制。一下各节详细介绍了各种模式。


   OPPOSITE_EDGE 模式

在此模式中,时钟边沿被用来以两倍的吞吐量从FPGA逻辑中捕获数据。这种结构与virtex-6的实现比较相似。两个输出都提供给IOB的数据输入或者三态控制输入。使用OPPOSITE_EDGE模式的输出DDR时序图如下图所示:


    SAME_EDGE 模式

在此模式下,数据可以在相同的时钟边沿从给IOB。相同的时钟沿江数据送给IOB可以避免建立时间违规,并允许用户使用最小的寄存器来执行更高的DDR频率来进行寄存器的延迟,而不是使用CLB寄存器。下图显示了使用SAME_EDGE模式的输出DDR的时序图:


    时钟前向

输出DDR可以发送时钟的副本到输出。这对于传播时钟和DDR数据之间相同的延时是非常有用的,并且对于多个时钟生成,每个时钟负载具有唯一的时钟驱动器。这是通过将ODDR原语中D1输入设置为High,D2输入设置为低来实现的。Xilinx建议使用此方案将FPGA逻辑时钟转发到输出引脚。


    输出DDR原语(ODDR)

图2-20显示了ODDR原语结构图。Set和Reset不能同时置位。表2-21列出了ODDR端口信号。表2-11描述了各种可哦那个的属性和ODDR原语的默认值。




    ODDR在verilog中的接口例化


  
  
  1. ODDR #(
  2. . DDR_CLK_EDGE( "OPPOSITE_EDGE"), // "OPPOSITE_EDGE" or "SAME_EDGE"
  3. . INIT( 1'b0), // Initial value of Q: 1'b0 or 1'b1
  4. . SRTYPE( "SYNC") // Set/Reset type: "SYNC" or "ASYNC"
  5. ) ODDR_inst (
  6. . Q( Q), // 1-bit DDR output
  7. . C( C), // 1-bit clock input
  8. . CE( CE), // 1-bit clock enable input
  9. . D1( D1), // 1-bit data input (positive edge)
  10. . D2( D2), // 1-bit data input (negative edge)
  11. . R( R), // 1-bit reset
  12. . S( S) // 1-bit set
  13. );


最后

以上就是直率水池为你收集整理的转发:Xilinx 7series FPGA SelectIO资源--ODDROLOGIC 资源Output DDR概述(ODDR)的全部内容,希望文章能够帮你解决转发:Xilinx 7series FPGA SelectIO资源--ODDROLOGIC 资源Output DDR概述(ODDR)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部