Xilinx IDDR及ODDR使用总结

概述

AD9361数据接口采用了DDR双沿采样模式,如下所示,AD9361与Xilinx FPGA通信需要用到其IDDR和ODDR原语,为加深记忆,将IDDR及ODDR使用总结如下。
在这里插入图片描述

IDDR

IDDR是将1 bit的双沿采样输入转换为2bit的单沿采样输出,IDDR框图如下图所示,其中D为双沿采样输入端,C为时钟输入,CE为时钟使能,S为置位信号,R为复位信号,Q1和Q2单沿采样输出端。
在这里插入图片描述

IDDR #(
.DDR_CLK_EDGE   ("SAME_EDGE_PIPELINED"  ),
.INIT_Q1        (1'b0                   ),
.INIT_Q2        (1'b0                   ),
.SRTYPE         ("ASYNC"                ))
i_rx_frame_iddr ( 
.CE             (1'b1                   ),
.R              (1'b0                   ),
.S              (1'b0                   ),
.C              (data_clk               ),
.D              (rx_frame_idelay        ),
.Q1             (rx_frame_p_s           ),
.Q2             (rx_frame_n_s           ));

从上面例化的模块说明IDDR的参数,其中INIT_Q1和INIT_Q1为输出初始值,SRTYPE表示同步或异步复位,而DDR_CLK_EDGE有以下三种模式:
1、OPPOSITE_EDGE模式
在这里插入图片描述
2、SAME_EDGE Mode
在这里插入图片描述
3、SAME_EDGE_PIPELINED模式
在这里插入图片描述

ODDR

ODDR是将2bit单沿采样输入转换为1bit的双沿采样输出,ODDR框图如下图所示,其中D1和D1为单沿采样输入端,C为时钟输入,CE为时钟使能,S为置位信号,R为复位信号,Q为双沿采样输出端。

在这里插入图片描述

ODDR #(
.DDR_CLK_EDGE   ("SAME_EDGE"            ),
.INIT           (1'b0                   ),
.SRTYPE         ("ASYNC"                ))
i_tx_frame_oddr (
.CE             (1'b1                   ),
.R              (1'b0                   ),
.S              (1'b0                   ),
.C              (data_clk               ),
.D1             (tx_frame               ),
.D2             (tx_frame               ),
.Q              (tx_frame_oddr_s        ));

从上面例化的模块说明ODDR的参数,其中INIT为输出初始值,SRTYPE表示同步或异步复位,而DDR_CLK_EDGE有以下两种模式:
1、OPPOSITE_EDGE模式
在这里插入图片描述
2、SAME_EDGE模式
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_39789553/article/details/114385676