接下來我們會一步步地生成輸入偏移約束,以便讀者容易理解。圖1描述了上升數(shù)據(jù)的時序,假定周期參數(shù)為5ns,占空比50%,所以半周期就是2.5ns。可以看到數(shù)據(jù)有效窗口只有2ns,因為相鄰數(shù)據(jù)有250ps的邊界。請留意時鐘上升沿和數(shù)據(jù)有效開始時間的關系。
圖1 實際應用的DDR時序示意
可以看到圖1中數(shù)據(jù)在灰色的時鐘捕捉沿以后2.5ns才開始有效,所以約束設置是-0.25ns,負值僅僅代表是在時鐘沿之后。
接下來是定義數(shù)據(jù)在上升沿采樣時的有效窗口寬度,如圖2所示寬度為2ns。
圖2 定義有效的數(shù)據(jù)采樣窗口示意
因此對這組寄存器的約束如例子所示。
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組數(shù)據(jù)的情況類似,數(shù)據(jù)前后各有250ps的邊界。周期是5ns,占空比50%,所以半周期是2.5ns。
圖3 下降沿采樣的有效數(shù)據(jù)窗口示意
理論上FALLING組的數(shù)據(jù)與時鐘上升沿的關系是下降沿數(shù)據(jù)落后時鐘上升沿2.75(2.5ns+0.25ns=2.75ns)。所以輸入偏移約束應該是-2.75ns,如圖4和圖5所示。
圖4 保證數(shù)據(jù)在時鐘下降沿采樣參數(shù)示意
圖5 經(jīng)過約束后的數(shù)據(jù)有效窗口示意
再考慮2ns數(shù)據(jù)有效窗口寬度,對這組寄存器的約束可以這樣寫:
UCF 示例如下:
NET "SysClk" TNM = SYSCLK_GRP;
TIMEGRP CLK_FALLING =FALLING SYSCLK_GRP;
OFFSET=IN-2.75ns VALID 2ns BEEORE"SysClk"TIMEGRP"CLK_FALLING";
來源:ks990次