艾巴生活网

您现在的位置是:主页>科技 >内容

科技

zynq开发流程,Xilinx原语ODDR概述和使用

2024-07-08 09:20:01科技帅气的蚂蚁
ODDR是Xilinx HDL语言模板。输出双倍数据速率(DDR) 在介绍ODDR之前,我们先简单了解一下OLOGIC。OLOGIC块在FPGA中位于IOB旁边,作用是通过

zynq开发流程,Xilinx原语ODDR概述和使用

ODDR是Xilinx HDL语言模板。

输出双倍数据速率(DDR).

在介绍ODDR之前,我们先简单了解一下OLOGIC。

OLOGIC块在FPGA中位于IOB旁边,作用是通过IOB将数据发送到器件外部的专用同步块。OLOGIC资源的类型是OLOGIC2(位于HP I/O bank)和OLOGIC3(位于HR I/O bank)。

OLOGIC2和OLOGIC3不是原语,因此不能直接实例化。它包含一些用户可以在布局后实例化的元素,如OFD输出触发器或ODDR(输出DDR元素)。

OLOGIC主要由两个块组成,一个用于配置输出路径。另一个用于配置三态控制路径。这两个模块具有共同的时钟,但是具有不同的使能信号OCE和TCE。两者都有由SRVAL属性细化的异步和同步置位和复位(S/R信号)。

输出路径和三态控制路径可以独立配置为以下模式之一:

1.边沿触发D触发器

2.DDR模式(相同边沿或相反边沿)

3.电平敏感锁存器

4.异步电路/组合逻辑

OLOGIC块中的各种逻辑资源如下:

输出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属性实现的。它还支持三态控制。

1)对边模式

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

2)相同边缘模式

在这种模式下,数据可以在同一时钟沿发送到IOB。在同一时钟沿向IOB发送数据可以避免建立时间冲突,并允许用户使用最小的寄存器来执行更高的DDR频率,以实现寄存器延迟,而不是CLB寄存器。下图显示了使用SAME_EDGE模式的输出DDR的时序图:

向前计时

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

输出DDR原语(ODDR)

ODDR原语的结构图如下。

表2-10列出了ODDR端口信号。

表2-11描述了各种属性和ODDR原语的默认值。

verilog中ODDR的接口实例化

ODDR #(。DDR _ CLK _边缘(“相反_边缘”)、//“相反_边缘”或“相同_边缘”。INIT(1'b0),//Q的初始值:1'b0或1'b1。SRTYPE("SYNC") //设置/重置类型:"SYNC"或"ASYNC"

)ODDR_inst(。Q(Q),//1位DDR输出。C(C),//1位时钟输入。CE(CE),//1位时钟使能输入

. D1(D1),//1位数据输入(正沿)

. D2(D2),//1位数据输入(负沿)。R(R),//1位复位。S(S) //1位设置

);

ODDR _ inst实例化结束

注意:

1.Set和Reset不能同时设置。

2.重置2大约需要12个时钟。ODDR原语,第一次输入的数据可能会有问题(亲测)。