Ultrascale selectio 仿真之 IDDRE1和ODDRE1

        由于项目需要使用LVDS通信接口,从xilinx官方selectio资源入手,选择关键原语进行学习和功能仿真验证

1 IDDRE1

功能仿真

调用Xilinx代码模板进行简单的功能仿真:

OPPOSITE_EDGE

Ultrascale selectio 仿真之 IDDRE1和ODDRE1_第1张图片

Ultrascale selectio 仿真之 IDDRE1和ODDRE1_第2张图片

DDR采样,i_clk上升沿采样和下降沿采样,上升沿采样的数据在o_data_q1立即输出;下降沿采样的数据在o_data_q2立即输出。输入数据单位长度为半个时钟周期,输出数据单位长度为1个时钟周期。

SAME_EDGE

Ultrascale selectio 仿真之 IDDRE1和ODDRE1_第3张图片

Ultrascale selectio 仿真之 IDDRE1和ODDRE1_第4张图片

    DDR采样,i_clk上升沿采样和下降沿采样,上升沿采样的数据在o_data_q1立即输出;下降沿采样的数据,等到下次上升沿时在o_data_q2立即输出。

SAME_EDGE_PIPELINED

Ultrascale selectio 仿真之 IDDRE1和ODDRE1_第5张图片

Ultrascale selectio 仿真之 IDDRE1和ODDRE1_第6张图片

    DDR采样,i_clk上升沿采样和下降沿采样,上升沿采样的数据,等到下次上升沿时在o_data_q1立即输出;下降沿采样的数据,等到下次上升沿时在o_data_q2立即输出。

    在属性栏中将IS_CB_INVERTED由0改为1,此时将testbench中i_clk_b改成与i_clk相位、频率、占空比一致,仿真结果与上图一样。

Ultrascale selectio 仿真之 IDDRE1和ODDRE1_第7张图片

IDDRE1原语block框图如下

   

Ultrascale selectio 仿真之 IDDRE1和ODDRE1_第8张图片

IDDRE1端口如下

Port

I/O

Description

Q1, Q2

Output

IDDRE1寄存器输出

C

Input

时钟输入管脚

CB

Input

IS_C_INVERTED=0,IS_CB_INVERTED=0时反向时钟输入管脚

D

Input

IOB(输入输出单元)给出的寄存器输入

R

Input

给到C/CB的异步复位,同步释放

   

IDDRE1属性如下

Attribute

Value

Default

Type

Description

DDR_CLK_EDGE

OPPOSITE_EDGE

SAME_EDGE

SAME_EDGE_PIPELINED

OPPOSITE_EDGE

String

根据时钟边沿设置IDDRE1的操作模式

IS_C_INVERTED

0 or 1

0

Bit

为1时,C输入局部时钟反向

IS_CB_INVERTED

0 or 1

0

Bit

为1时,C和CB被同一个全局时钟缓冲驱动;为0时,CB必须在相同的全局时钟缓冲前面加一个反相器

2 ODDRE1

功能仿真

调用Xilinx代码模板进行简单的功能仿真:

波形如下

Ultrascale selectio 仿真之 IDDRE1和ODDRE1_第9张图片

Ultrascale selectio 仿真之 IDDRE1和ODDRE1_第10张图片

    结合xilinx user guide分析波形,在上升沿处采样i_data1和i_data2,该上升沿后o_data_q依次输出采样的i_data1和i_data2的值,各占半个时钟周期。  输入数据单位长度为1个时钟周期,输出数据单位长度为半个时钟周期。

    分析仿真波形发现标尺1处采样的idata1为1、idata2为0,该上升沿后o_data_q却输出了0(半个时钟周期)、0(半个时钟周期);在标尺2处采样idata1为0、idata2为1,该上升沿后o_data_q输出了0(半个时钟周期)、1(半个时钟周期);后面采样和输出均正确。在标尺1处出现输出不正确的情况。

    将复位后多延时一段时间再做采样操作,如下图。此时不存在上图中的问题。

Ultrascale selectio 仿真之 IDDRE1和ODDRE1_第11张图片

ODDRE1原语block框图如下

Ultrascale selectio 仿真之 IDDRE1和ODDRE1_第12张图片

   ODDRE1端口如下

Port

I/O

Description

Q

Output

ODDRE1寄存器输出

C

Input

时钟输入引脚

D1, D2

Input

ODDRE1寄存器输入

SR

Input

异步置位/复位,SR被断言(复位?),Q异步置位为SRVAL,恢复正常操作之前SRVAL保持4个时钟周期

    IDDRE1属性如下

Attribute

Values

Default

Type

Description

SRVAL

0 or 1

0

Bit

复位后Q输出值的配置

IS_C_INVERTED

0 or 1

0

Bit

本地信号反向

IS_D1_INVERTED

0 or 1

0

Bit

Not supported

Note: Simulation results will not match hardware if IS_D1_INVERTED is set to 1.

IS_D2_INVERTED

0 or 1

0

Bit

Not supported

Note: Simulation results will not match hardware if IS_D2_INVERTED is set to 1.

SIM_DEVICE

ULTRASCALE

ULTRASCALE_PLUS

ULTRASCALE_PLUS_ES1

ULTRASCALE_PLUS_ES1

ULTRASCALE

ULTRASCALE

String

Device family for behavioral simulation.

你可能感兴趣的:(xilinx原语仿真,fpga开发)