微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 大家有没有用过OSERDES,Xilinx官方的代码为什么在时钟信号输出后面加上ODDR?

大家有没有用过OSERDES,Xilinx官方的代码为什么在时钟信号输出后面加上ODDR?

时间:10-02 整理:3721RD 点击:
大家有没有用过OSERDES,Xilinx官方的代码为什么在时钟信号输出后面加上ODDR,直接输出时钟不可以吗?

是啊,好像是作为SDR来接收的吧?我最近也在看这个,大家可以讨论讨论,我的QQ405965767

我以前这么做时的考虑时,因为数据线也要经过ODDR的,时钟也这么做,可以让时钟和数据经过同样的结构单元出去,这样它们的时延信息等都是一致的,如果有很大的环境温度变化的影响,它们输出的时间差也能保持恒定,有利于设计稳定。

      //------------------------------------------------------------------------
  // GMII Transmitter Clock Management
  //------------------------------------------------------------------------
  // Instantiate a DDR output register.  This is a good way to drive
  // GMII_TX_CLK since the clock-to-PAD delay will be the same as that for
  // data driven from IOB Ouput flip-flops eg GMII_TXD[7:0].
  ODDR gmii_tx_clk_oddr (
      .Q(GMII_TX_CLK),
      .C(TX_CLK),
      .CE(1'b1),
      .D1(1'b0),
      .D2(1'b1),
      .R(RESET),
      .S(1'b0)
  );
这位仁兄说的非常正确,上边是我从xilinx一个ip里边找到的。

哦,谢谢大家!

都是高手啊~时钟问题是首要的

都是高手啊~时钟问题是首要的

由这个我想引申的问一下,如果一个设计里面使用了ODDR以后,那么修改设计进行不同次综合实现,由ODDR输出的信号到PAD的时延会改变吗?
同样的问题对IDDR。

henhao,meiqianle

学习一下!



    我是这么理解的:
    对于时钟使用IDDR或者是ODDR,我认为是数据应用到了DDR模块而言。
   在输出DDR数据的时候,同时把时钟作为一个副本传出,这样可以获得跟数据同样的延时。
   ODDR到pad之间是一个独立的延时,由专门的delay模块控制的,可以通过ucf或者代码中设置。

学习了

我的理解是如果你用ODDR,就是想保证从FF的输出到IO这段延时基本固定起来,基本不受环境的影响,尤其是DDR接口的,用ODDR可以使得随路时钟和数据在输出时是同步的;而对于输出时钟而言,如果芯片资源多的话,可以考虑输入时钟上ibuffg,占用芯片的全局布线资源,这样使得时钟可以在芯片内部到各个FF的延时基本一致,对于时序方便有很大的便利!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top