輸入偏移約束最常用的一種形式是OFFSET IN BEFORE,它定義的是數(shù)據(jù)先于采樣時鐘多長時間有效;另一個參數(shù)是數(shù)據(jù)有效窗口,也稱“眼寬”,如圖1所示。因為數(shù)據(jù)何時無效對保持時間分析至關(guān)重要,所以VALID這個參數(shù)對保持時間分析是必需的。對建立時間的分析,如果不加這個參數(shù),則默認(rèn)用OFFSET。當(dāng)進(jìn)行保持時間分析時如果不加這個參數(shù),工具會用TRCE_fastpaths來報告保持時間。但是不會分析路徑,也不會檢查是否違規(guī)。
輸入偏移約束是全局約束,默認(rèn)參數(shù)會應(yīng)用于所有用該時鐘作為采樣的輸入數(shù)據(jù)引腳。但有時某些引腳會有不同的約束要求,這種情況下可以將這些引腳分組并分別做不同的約束。圖2所示為相同時鐘,但需采用不同輸入偏移約束的范例。SysClk驅(qū)動了4個寄存器,但是SRAMData[1∶0]和FPGAData[1∶0]卻有各自不同的OFFSET IN要求。
圖1 輸入偏移約束
圖2 相同時鐘、不同輸入偏移范例
可以用這樣的UCF生成PAD分組。
用戶約束文件(UCF)范例:
TIMEGRP "SRAMGroup" = PADS( "SRAMData(1)" "SRAMData(0)");
OFFSET IN<time><unit>VALID<time><unit>BEE○RE<clk>TIMEGRP SRAMGroup ;
現(xiàn)在對輸入時序分析有了基本的認(rèn)識,可以進(jìn)一步分析一個常用的輸入接口標(biāo)準(zhǔn)——系統(tǒng)同步接口。系統(tǒng)同步接口是指源頭和目的器件的內(nèi)部寄存器都使用同一個全局時鐘。對于如圖3所示的設(shè)計,板級的時鐘偏斜和數(shù)據(jù)延時限制了系統(tǒng)速度性能。因為從源端器件發(fā)出的數(shù)據(jù)必須在一個時鐘周期內(nèi)到達(dá)目的器件,所以這種系統(tǒng)同步接口適合于較低速度的單數(shù)據(jù)率應(yīng)用。
圖3 板間或器件之間的互連約束
來源:ks990次