FPGA结构分析——IDDR,网口储备点1

先抛出几个问题:

1.什么是 IDDR? IDDR的作用是什么?使用场景?
2. IDDR结构是什么样?都有哪些端口?端口属性都是什么?
3. IDDR原语结构,参数属性说明?
4. IDDR时序是什么样 ?

1.什么是 IDDR, IDDR的作用是什么,使用场景

IDDR全称 input double date rate,可以将双沿(时钟的上升沿、下降沿)数据信号转换为单沿数据信号,通常使用在串转并数据设计中,如网口的RGMII信号转换为GMII信号

2. IDDR结构是什么样,都有哪些端口,端口属性都是什么

在这里插入图片描述
端口说明:
C:同步时钟输入端口
CE:时钟使能端口,高电平有效
D:双沿数据输入端口
S/R:置位复位管脚
Q1:C端口上升沿数据
Q2:C端口下降沿数据

3.IDDR原语结构,参数属性说明

原语结构:


   IDDR #(
      .DDR_CLK_EDGE("OPPOSITE_EDGE"), // "OPPOSITE_EDGE", "SAME_EDGE" 
                                      //    or "SAME_EDGE_PIPELINED" 
      .INIT_Q1(1'b0), // Initial value of Q1: 1'b0 or 1'b1
      .INIT_Q2(1'b0), // Initial value of Q2: 1'b0 or 1'b1
      .SRTYPE("SYNC") // Set/Reset type: "SYNC" or "ASYNC" 
   ) IDDR_inst (
      .Q1(Q1), // 1-bit output for positive edge of clock 
      .Q2(Q2), // 1-bit output for negative edge of clock
      .C(C),   // 1-bit clock input
      .CE(CE), // 1-bit clock enable input
      .D(D),   // 1-bit DDR data input
      .R(R),   // 1-bit reset
      .S(S)    // 1-bit set
   );

参数属性说明:
DDR_CLK_EDGE:设置IDDR相对于时钟端口的边沿工作模式,共三种模式,在第4小节会具体说明;
INIT_Q1/ INIT_Q2设置Q1、Q2端口初始值;
SRTYPE:设置置/复位异步或者同步,默认异步

4.IDDR时序是什么样

IDDR有三种采集模式,在原语中由DDR_CLK_EDGE参数进行设置,分别为“OPPOSITE_EDGE”、“SAME_EDGE”和“SAME_EDGE_PIPELINED”模式。

OPPOSITE_EDGE模式的时序图如下图所示,Q1端在时钟的上升沿更新,Q2端在时钟的下降沿更新,更准确地来说在时钟的上升沿Q1端数据稳定,在在时钟的下降沿Q2端数据稳定。
在这里插入图片描述

SAME_EDGE模式的时序图如下图所示,Q1端、Q2端都在时钟的上升沿更新,但D0和D1出现相差一个时钟。
在这里插入图片描述

SAME_EDGE_PIPELINED模式的时序图如下图所示,Q1端、Q2端都在时钟的上升沿更新,但D0和D1出现在同一个时钟。

在这里插入图片描述

一般情况使用第三种SAME_EDGE_PIPELINED模式,不需要考虑多余的时钟延迟就能直接使用串转并后的数据。

5.几点思考:

1.在FPGA中,经常出现的问题就是时钟和数据的对齐,这个问题的原因有很多,比如器件差异、PCB走线等等,那么在使用IDDR时如何校正这一块就是一个难题,通常可以采用修改时钟相位偏移来解决,比如使用FPGA 内侧的时钟资源进行相位偏移,或者IOLOGIC侧IODELAY原语进行延迟等,本质上都是为了使得时钟与数据的对齐;
在这里插入图片描述
2.有IDDR就会有ODDR,比如网口中通过ODDR将GMII转化为RGMII,在下一篇继续阐述;

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值