实际应用的DDR时序
扫描二维码
随时随地手机看文章
接下来我们会一步步地生成输入偏移约束,以便读者容易理解。图1描述了上升数据的时序,假定周期参数为5ns,占空比50%,所以半周期就是2.5ns。可以看到数据有效窗口只有2ns,因为相邻数据有250ps的边界。请留意时钟上升沿和数据有效开始时间的关系。
图1 实际应用的DDR时序示意
可以看到图1中数据在灰色的时钟捕捉沿以后2.5ns才开始有效,所以约束设置是-0.25ns,负值仅仅代表是在时钟沿之后。
接下来是定义数据在上升沿采样时的有效窗口宽度,如图2所示宽度为2ns。
图2 定义有效的数据采样窗口示意
因此对这组寄存器的约束如例子所示。
UCF示例如下:
NET "SysClk" TNM = SYSCLK_GRP;
TIMEGRP CLK_RISING =RISING SYSCLK_GRP;
OFFSET=IN -0.25ns VALID 2ns BEFORE"SysClk"TIMEGRP"CLK_RISING";
FALLING组的约束如图3所示,与RISINGG组数据的情况类似,数据前后各有250ps的边界。周期是5ns,占空比50%,所以半周期是2.5ns。
图3 下降沿采样的有效数据窗口示意
理论上FALLING组的数据与时钟上升沿的关系是下降沿数据落后时钟上升沿2.75(2.5ns+0.25ns=2.75ns)。所以输入偏移约束应该是-2.75ns,如图4和图5所示。
图4 保证数据在时钟下降沿采样参数示意
图5 经过约束后的数据有效窗口示意
再考虑2ns数据有效窗口宽度,对这组寄存器的约束可以这样写:
UCF 示例如下:
NET "SysClk" TNM = SYSCLK_GRP;
TIMEGRP CLK_FALLING =FALLING SYSCLK_GRP;
OFFSET=IN-2.75ns VALID 2ns BEEORE"SysClk"TIMEGRP"CLK_FALLING";
来源:ks990次