您的位置 首页 技术

Xilinx OLOGIC 资源

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

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中的各种逻辑资源

Xilinx OLOG%&&&&&% 资源

组合输出数据途径和三态操控途径

组合输出途径创立一个从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时序图如下图所示:

Xilinx OLOG%&&&&&% 资源

SAME_EDGE 形式

在此形式下,数据能够在相同的时钟边缘从给IOB。相同的时钟沿江数据送给IOB能够防止树立时刻违规,并答应用户运用最小的寄存器来履行更高的DDR频率来进行寄存器的推迟,而不是运用CLB寄存器。下图显现了运用SAME_EDGE形式的输出DDR的时序图:

Xilinx OLOG%&&&&&% 资源

时钟前向

输出DDR能够发送时钟的副本到输出。这关于传达时钟和DDR数据之间相同的延时对错常有用的,而且关于多个时钟生成,每个时钟负载具有仅有的时钟驱动器。这是经过将ODDR原语中D1输入设置为High,D2输入设置为低来完成的。Xilinx主张运用此计划将FPGA逻辑时钟转发到输出引脚。

输出DDR原语(ODDR)

图2-20显现了ODDR原语结构图。Set和Reset不能一起置位。表2-21列出了ODDR端口信号。表2-11描绘了各种可哦那个的特点和ODDR原语的默认值。

Xilinx OLOG%&&&&&% 资源

Xilinx OLOG%&&&&&% 资源

Xilinx OLOG%&&&&&% 资源

ODDR在verilog中的接口例化

  ODDR #(

  .DDR_CLK_EDGE(“OPPOSITE_EDGE”), // “OPPOSITE_EDGE” or “SAME_EDGE”

  .INIT(1‘b0), // IniTIal value of Q: 1’b0 or 1‘b1

  .SRTYPE(“SYNC”) // Set/Reset type: “SYNC” or “ASYNC”

  ) ODDR_inst (

  .Q(Q), // 1-bit DDR output

  .C(C), // 1-bit clock input

  .CE(CE), // 1-bit clock enable input

  .D1(D1), // 1-bit data input (posiTIve edge)

  .D2(D2), // 1-bit data input (negaTIve edge)

  .R(R), // 1-bit reset

  .S(S) // 1-bit set

  );

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/jishu/340728.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部