Xilinx原语ODDR的使用

ODDRisXilinxHDLLanguageTemplate。ODDR:OutputDoubleDataRate(DDR)。在介绍ODDR之前,我们先简单了解一下OLOGIC。OLOGIC块在FPGA内的位置紧挨着IOB,其作用是FPGA通过IOB发送数据到器件外部的专用同步块。OLOGIC资源的类型有OLOGIC2(位于HPI/Obanks)和OLOGIC3(位于…

大家好,又见面了,我是你们的朋友全栈君。

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,第一次输入的数据可能会有问题(亲测)。
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126131.html原文链接:https://javaforall.net

(2)
上一篇 2022年4月7日 上午10:40
下一篇 2022年4月7日 上午10:40


相关推荐

  • windows7配置java环境变量

    windows7配置java环境变量首先在官网下载好 java 版本双击安装好以后使用鼠标右击计算机 gt 属性 gt 高级系统设置 gt 环境变量系统变量里面点击新建变量名 JAVA HOME 变量值 C ProgramFiles Java jdk1 8 0 131 这里填写你的 java 安装目录 点击确定 依然在系统变量里点击新建变量名 CLASSPATH 变量值 JAVA

    2026年3月19日
    2
  • [弗曼学习法] Study for learning methods

    [弗曼学习法] Study for learning methods第一步 -选择一个你想要理解的概念    选择一个你想要理解的概念, 然后拿出一张白纸, 把这个概念写在白纸的最上边.第二步-设想一种场景,你正要向别人传授这个概念    在白纸上写下你对这个概念的解释, 就好像你正在教导一位新接触这个概念的学生一样. 当你这样做的时候, 你会更清楚地意识到关于这个概念你理解了多少, 以及是否还存在理解不清的地方.第三步-如果你感觉卡壳了…

    2022年6月12日
    48
  • git stash (idea操作)

    git stash (idea操作)1 简介 gitstash 命令的作用就是将目前还不想提交的但是已经修改的内容进行保存至堆栈中 后续可以在某个分支上恢复出堆栈中的内容 gitstash 作用的范围包括工作区和暂存区中的内容 没有提交的内容都会保存至堆栈中 使用场景 假如突然线上出现 bug 我们需要先切换到 master 分支 但当前分支的代码没有提交 直接切换分支 会将当前分支的新增的代码也会增加到 master 分支 而代码此时又不能 commit 这时候可以使用 gitstash 使用 gitstash 暂

    2026年3月18日
    2
  • CentOS 7 网卡重启方法

    CentOS 7 网卡重启方法1 centos6 的网卡重启方法 servicenetwo 的网卡重启方法 systemctlres DNS 配置文件 cat etc resolv conf 设置主机和 IP 绑定信息 cat etc hosts 设置主机名 cat etc hostname3 可以使用 nmtui 文本框方式修改 IP

    2026年3月17日
    2
  • JAVA: String转JsonArray

    JAVA: String转JsonArrayStringstr=”…”;JsonArrayjsonArray=newJsonParser().parse(str).getAsJsonArray();JsonObjectjsonObject=jsonArray.get(0).getAsJsonObject();StringtempId=jsonObject.get(“SUBJECT_DIRECTOR_ID”).getAsString();

    2022年6月20日
    214
  • python 离散数学 判断单射 双射 满射

    python 离散数学 判断单射 双射 满射#离散数学判断单射双射满射defpanduan(sets):#单射标志danshe=True#满射标志manshe=True#将传入对象分隔开,存入两个变量set1,set2=sets#判断是否单射#遍历set1,set2中所有数据,是否在set2,set1中存在映射,判断是否满足单射或者满射foriinset1:#单射判断#如果set2中存在

    2022年5月29日
    81

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号