Xilinx原语ODDR的使用
ODDR is Xilinx HDL Language Template。
ODDR:Output Double Data Rate(DDR) 。
在介绍ODDR之前,我们先简单了解一下OLOGIC。
OLOGIC块在FPGA内的位置紧挨着IOB,其作用是FPGA通过IOB发送数据到器件外部的专用同步块。OLOGIC 资源的类型有OLOGIC2(位于HP I/O banks)和OLOGIC3(位于HR I/O banks)。
OLOGIC2和OLOGIC3不属于原语,正因为这样,所以它们不能被直接例化。它包含在布局布线后用户可例化的一些元素,例如一个输出触发器(OFD–output flip-flop)或者一个ODDR(output DDR element).
OLOGIC主要由两个block组成,一个用于配置输出路径。另外一个用于配置三态控制路径。这两个block具有共同的时钟,但是具有不同的使能信号OCE和TCE。两者具有由SRVAL属性精致的异步和同步set和reset(S/R信号)。
输出路径和三态控制路径可以 以 下列模式之一独立配置:
1.边沿触发的D触发器
2.DDR模式(ASAME_EDGE 或 OPPOSITE_EDGE)
3.电平敏感锁存器
4.异步电路/组合逻辑
OLOGIC block中的各种逻辑资源如下:
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属性实现。它也支持三态控制。
1) OPPOSITE_EDGE 模式
在此模式中,时钟边沿被用来以两倍的吞吐量从FPGA逻辑中捕获数据。这种结构与virtex-6的实现比较相似。两个输出都提供给IOB的数据输入或者三态控制输入。使用OPPOSITE_EDGE模式的输出DDR时序图如下图所示:
2)SAME_EDGE 模式
在此模式下,数据可以在相同的时钟边沿送给IOB。相同的时钟沿将数据送给IOB可以避免建立时间违规,并允许用户使用最小的寄存器来执行更高的DDR频率来进行寄存器的延迟,而不是使用CLB寄存器。下图显示了使用SAME_EDGE模式的输出DDR的时序图:
时钟前向
输出DDR可以发送时钟的副本到输出。这对于传播时钟和DDR数据之间相同的延时是非常有用的,并且对于多个时钟生成,每个时钟负载具有唯一的时钟驱动器。这是通过将ODDR原语中D1输入设置为高,D2输入设置为低来实现的。Xilinx建议使用此方案将FPGA逻辑时钟转发到输出引脚。
输出DDR原语(ODDR)
ODDR原语结构图如下。
表2-10列出了ODDR端口信号。
表2-11描述了各种属性和ODDR原语的默认值。
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
);// End of ODDR_inst instantiation
注意:
1.Set和Reset不能同时置位。
2.ODDR原语的复位需要约12个clock,第一次输入的数据可能会有问题(亲测)。
Xilinx原语ODDR的使用相关推荐
- Xilinx 原语简介--(Xilinx FPGA开发实用教程)
目录 前言 1.Xilinx 原语简介 1.1 时钟组件原语(Clock Components) 1.1.1 BUFG 1.1.2 BUFGMUX 1.2 I/O端口组件(IO Components) ...
- Xilinx原语的使用
一.什么是原语? 原语,英文名称primitive,是FPGA软件集成开发环境所提供的一系列底层逻辑功能单元.由于是底层逻辑功能单元,所以它们往往跟目标FPGA芯片以及芯片厂商紧密相关,因此不同厂商. ...
- Xilinx原语使用方法
目录 简介 1. 时钟组件 IBUFG IBUFGDS BUFG 简介 原语(Primitive),是Xilinx针对其器件特征开发的一系列常用模块的名字,用户可以将其看成Xilinx公司为用户提供的 ...
- Xilinx原语的用法
Xilinx公司原语的使用方法 原语,其英文名字为Primitive,是Xilinx针对其器件特征开发的一系列常用模块的名字,用户可以将其看成Xilinx公司为用户提供的库函数,类似于C++中的&qu ...
- 【XINLIX 原语】XILINX 原语的使用之 IBUFDS 差分转单端、OBUFDS 单端转差分
目录 IBUFGDS IBUFDS 介绍 IBUFDS 示意图 例化方式 OBUFDS OBUFDS 介绍 OBUFDS 示意图 例化方式 在 XILINX 中有许多原语,常见的差分转单端 IBUFD ...
- 【FPGA】ODDR使用研究记录
这篇博文单讲ODDR,而不去深入理解和它相关的什么OLOGIC(花里胡哨): 为什么要花时间研究一下ODDR的工作原理呢?源于在之前的程序中用到了这个原语,虽疑惑为什么要用,但还是从用了之后有什么效果 ...
- Xilinx 7series FPGA SelectIO资源--ODDR
OLOGIC 资源 OLOGIC块在FPGA内的位置紧挨着IOB,其作用是FPGA通过IOB发送数据到器件外部的专用同步块.OLOGIC 资源的类型有OLOGIC2(位于HP I/O banks)和O ...
- FPGA中的ODDR原语是干嘛用的?
文章目录 pll 锁相环实验 锁相环的作用 ip core--clock wizard clk_wiz 例化 oddr 原语 oddr 的作用 pll 锁相环实验 锁相环的作用 他的基本的作用是实现频 ...
- XILINX FPGA 7系之 Distribute RAM
XILINX FPGA 7系之 CLB/LUT 可以知道 CLB 是基本的组成单元,SLICE 也是 CLB 的基本组成单元,为了更好的使用 XILINX FPGA ,有必要在深挖一下 Distrib ...
最新文章
- java查看文件夹下文件夹大小,java 获取文件夹大小,文件大小,文件个数
- JDBC连接执行MySQL存储过程报空指针或权限错误
- Python 之 matplotlib (十四)图中图
- OpenCASCADE绘制测试线束:图形命令之AIS 查看器——显示命令
- 开发Windows Mobile和Wince(Windows Embedded CE)的部署项目(Deploy Project)时,如何修改注册表...
- python如何安装scrapy_Python爬虫之Scrapy的安装
- 凯撒(Caesar)密码加密解密c语言
- Java多线程同步机制
- 改善 Python 程序的 91 个建议
- 测试网络的带宽指令_单机千万级MQTT服务器测试报告
- JS当中的无限分类递归树
- RocketMQ实战系列-RocketMQ命令详解
- minGW, cygwin, GnuWin32【C++的跨平台交叉编译问题】
- html日期自动更新,原生javascript实现自动更新的时间日期_javascript技巧
- 关于安装完Node.js 出现node is not dedined 问题
- AttributeError:type object ‘TFLiteConverterV2 ‘has no attribute ‘form_keras_model_file ‘
- 解决Eclipse 鼠标悬停提示框是黑色的
- fft qt 代码_FFT代码详解
- (2021系统架构设计师)个人对于软考的一些总结
- 索博士面膜app开发