这篇博文单讲ODDR,而不去深入理解和它相关的什么OLOGIC(花里胡哨):

为什么要花时间研究一下ODDR的工作原理呢?源于在之前的程序中用到了这个原语,虽疑惑为什么要用,但还是从用了之后有什么效果以及怎么用来下手吧。

先看看ODDR的原语介绍:

ODDR是一个原理,全名叫:DedicatedDual Data Rate (DDR) Output Register,即专用双倍数据速率输出寄存器。

其有6个输入端口,一个输出端口。

其端口含义如下:

C为时钟输入,根据此时钟来采样数据;

CE为时钟使能,高电平有效;

D1/D2为输入数据;

R和S分别为复位和置位,其设置与参数SRTYPE的设置有关。

在看看其参数:

第一个参数DDR_CLK_EDGE决定ODDR的操作模式,具体介绍在下面。

INIT决定输出初始化的值,而参数SRTYPE决定置位和复位的类型。

下面介绍操作模式:

ODDR有下面两种操作模式,

• OPPOSITE_EDGE mode
• SAME_EDGE mode

意思是,在OPPOSITE_EDGE mode中,在时钟C的上升沿采样D1,在下降沿采样D2。

时序图如下:

在SAME_EDGE mode中,在时钟的上升沿采样D1和D2。

时序图如下:

此原语的例化模板为:

// ODDR: Output Double Data Rate Output Register with Set, Reset
// and Clock Enable.
// 7 Series
// Xilinx HDL Libraries Guide, version 14.7
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

默认的操作模式是OPPOSITE_EDGE mode,当如下方式使用这个原语时,其大致波形图如下:

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_dsp_sriosgmiiclk (.Q( dsp_sriosgmiiclk_oddr ),   // 1-bit DDR output.C( dsp_sriosgmiiclk313m ),   // 1-bit clock input.CE( 1'b1 ), // 1-bit clock enable input.D1( 1'b1 ), // 1-bit data input (positive edge).D2( 1'b0 ), // 1-bit data input (negative edge).R( 1'b0 ),   // 1-bit reset.S( 1'b0 )     );  // 1-bit set

ODDR:

dsp_sriosgmiiclk313m 为输入时钟,而dsp_sriosgmiiclk_oddr 为输出时钟。

参考文献:

UG768 (v14.7) October 2, 2013

UG471 (v1.10) May 8, 2018

Xilinx原语ODDR概述和使用

Xilinx OLOGIC 资源

https://wavedrom.com/editor.html

https://blog.csdn.net/Reborn_Lee/article/details/81368861

https://www.cnblogs.com/lifei-chan/p/8653973.html

【FPGA】ODDR使用研究记录相关推荐

  1. 一种从Robotstudio环境中导出机器人模型并在MATLAB下使其可视化的研究记录

    1.前记:回到学校反而没时间记录了自己瞎折腾的东西了,允我长长的叹一口气   '_' // 先提一下,在这篇MATLAB机器人可视化博客中提到了如何使CAD模型的机器人在MATLAB环境下可视化的问题 ...

  2. 【FPGA ODDR原语理解】

    FPGA ODDR原语 一.原语例化内容 // ODDR : In order to incorporate this function into the design, // Verilog : t ...

  3. AI绘图风格对照表/画风样稿详细研究记录及经验总结(分析Midjourney和Stable Diffusion风格提示词实际使用情况)不断更新中...

    作为AI绘图头牌的Midjourney和Stable Diffusion,其风格提示词都相同 Midjourney是收费的在线服务,通过discord对话形式来生图,局限较大,但由于官方模型做得好,因 ...

  4. 关于百度OCR和EasyOCR的研究记录

    现行方案:迅捷OCR软件 采用迅捷OCR文字识别软件,购买了一年的期限 操作需要使用pyautogui来操作软件进行操作,现在也可以使用USB鼠键模块KM3来真实模拟鼠标键盘的操作,可信度更高. 思考 ...

  5. FPGA学习笔面试记录(二)——FPGA基础

    这里我罗列了一个学习思维导图,笔面试过程中遇到的问题,大都涵盖在内,可以参考.基础知识记录如下: 目录 FPGA部分 1.典型FPGA的开发流程 2.FPGA内部资源包括哪些及作用? 3.查找表LUT ...

  6. FPGA学习思考过程记录:一

    目录 目录 目录 概述 VIVADO工程文件结构 FPGA基本开发流程 什么是IP 为什么要仿真 RTL ANALYSIS SYNTHESIS IMPLEMENTATION 可执行文件 bit 和 b ...

  7. T型加速算法fpga实现思想研究

    用加法器实现T型曲线的理论分析 //  2017年12月28日     建立 by cofin T型加速曲线公式:如下所示: Vt = v0+at                (1) S = 1/2 ...

  8. ADI最新基带处理芯片 ADRV9002特性及 FPGA 驱动开发调试记录分享

    ADI的产品迭代还是非常迅速的,继ADRV9009之后,又相继退出ADRV9026,ADRV9040,射频通道数量都是呈指数倍增加,今天要介绍一款低功耗产品ADRV9002, 数据接口从高速串行口又回 ...

  9. XCZU15 FPGA+ADRV9026 驱动调试记录

    https://blog.csdn.net/jingjiankai5228/article/details/119475487 之前博客记录过一次adrv9026的博客,当时主要是FMC形式,FMC只 ...

最新文章

  1. 服务器可以响应字符类型的数据吗,HTTP - Response
  2. 第十六周程序阅读(8)
  3. vue 打包体积过大 实现懒加载 ????
  4. SAP UI5 初学者教程之二十一 - SAP UI5 的自定义格式器(Custom Formatter) 试读版
  5. JS设计模式七:发布-订阅模式
  6. php导出数据库的指定表数据,MYSQL教程mysql数据库导出指定表数据的方法
  7. Java泛型的PECS原则
  8. SQL:日期函数 year() month() day()
  9. 错误ImportError: 'No module named skimage.io'和ImportError: No module named google.protobuf.internal
  10. Cmd替代者 Cmder
  11. cnpm 安装yarn
  12. 拍拍贷第三届“魔镜杯”启动:10万美金邀你“秀出你的算法!”
  13. 2022年3月18到5月18的思考
  14. openharmony开发TS语言基础
  15. DataNode引用计数磁盘选择策略
  16. 室内定位——如何在微信小程序中获取Beacon的RSSI值
  17. linux怎样保存文件,linux不能保存文件如何解决
  18. 自制电脑usb红外遥控键盘
  19. 在做ADAU1452和ADAU1467的硬件设计时,输入输出通道的设计是怎么做的?(含原理图)
  20. css设置背景图片样式

热门文章

  1. 【使用Java编写的B*算法】
  2. 一个httpwebrequest异步下载的例子
  3. linq to sql初步
  4. 用计算机怎么开启音乐模式,XP开机音乐怎么设置?如何设置电脑开机音乐?
  5. arduinowin7_Arduino在64位WIN7下无法安装驱动的解决办法
  6. linux将b1内容重定向到b3,linux
  7. ssha java接口_java – 从Spring在LDAP中设置SSHA密码
  8. c++interesting转换为uint_1.6运算符及数据类型转换
  9. 打开方式中选择默认方式无反映_Win7系统无法选择打开方式的解决方法
  10. mysql设置了utf8mb4还是报错_第07期:有关 MySQL 字符集的 SQL 语句