关于IDDR与FPGA的介绍与浅析

描述

1 IDDR

Primitive: Input Dual Data-Rate Register

1.1 介绍

该设计元素是专用的输入寄存器,旨在将外部双数据速率(DDR)信号接收到Xilinx FPGA中。IDDR可用的模式可以在捕获数据的时间和时钟沿或在相同的时钟沿向FPGA架构显示数据。此功能使您可以避免其他时序复杂性和资源使用情况。

1)OPPOSITE_EDGE模式-以传统的DDR方法恢复数据。给定分别在引脚D和C上的DDR数据和时钟,在时钟C的每个上升沿之后Q1发生变化,在时钟C的每个下降沿之后Q2发生变化。

2)SAME_EDGE模式-时钟C的相对边沿仍然恢复数据。但是,在负边沿数据寄存器后面放置了一个额外的寄存器。这个额外的寄存器由时钟信号C的正时钟沿提供时钟。结果,现在DDR数据在相同的时钟沿提供给FPGA架构。但是,由于此功能,数据对似乎是“分离的”。Q1和Q2不再具有对1和2。相反,出现的第一个对是对1和DONT_CARE,在下一个时钟周期之后是对2和3。

3)SAME_EDGE_PIPELINED模式-以与SAME_EDGE模式类似的方式恢复数据。为了避免SAME_EDGE模式的“分离”效应,在上升沿数据寄存器的前面放置了一个额外的寄存器。现在,数据对同时出现在Q1和Q2引脚上。但是,使用此模式将使Q1和Q2信号更改的延迟时间增加一个额外的周期。

1.2 Verilog Instantiation Template

// IDDR: Input Double Data Rate Input Register with Set, Reset

// and Clock Enable.

// 7 Series

// Xilinx HDL Libraries Guide, version 14.7

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

);

// End of IDDR_inst instantiation

1.3端口描述

1.4 可用属性


编辑:lyn

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分