手把手課堂:Xilinx FPGA設(shè)計(jì)時(shí)序約束指南
傳輸時(shí)間與 OFFSET 約束
本文引用地址:http://www.ex-cimer.com/article/119144.htm信號(hào)從 A 點(diǎn)到達(dá) B 點(diǎn)所用的時(shí)間稱為傳輸時(shí)間。它取決于傳輸介質(zhì)中光傳播的速度。例如,PCB 電路板上的走線以 6~7 皮秒/ 毫米來(lái)傳輸信號(hào)??刹捎枚喾N方法來(lái)確定這一時(shí)間值,例如進(jìn)行仿真,或在材料介電常數(shù)與走線幾何結(jié)構(gòu)已知的情況下,列方程求解。在芯片內(nèi),信號(hào)的行為方式也很類似,不過(guò)也會(huì)因通過(guò)緩存器、反相器、邏輯和互聯(lián)等有源電路而發(fā)生延遲。
傳輸時(shí)間是可測(cè)量的,通常用示波器來(lái)測(cè)量。當(dāng)路徑上無(wú)有源元件時(shí),傳輸時(shí)間一般不會(huì)有太大變化。若路徑在芯片內(nèi),則晶體管的作用會(huì)使路徑延遲在最大值與最小值之間變化。設(shè)計(jì)需同時(shí)滿足二者的時(shí)序要求。
為告訴工具數(shù)據(jù)何時(shí)到達(dá)特定位置,需使用另一種名為“OFFSET_IN”的約束。“OFFSET_IN”約束在時(shí)鐘和數(shù)據(jù)進(jìn)入器件時(shí),對(duì)其關(guān)系進(jìn)行了定義。以如下約束為例:
該約束告知工具,數(shù)據(jù)將在 clk20 脈沖上升沿之前 2 納秒建立在 PAD 上,并在到達(dá)后 16 納秒內(nèi)保持有效。該約束只對(duì)那些進(jìn)入由 clk20 或其衍生(衍生約束)提供時(shí)鐘的寄存器的 PAD 有效。
OFFSET 要求在 clk20 上有一個(gè)PERIOD 約束,這樣才能理解時(shí)鐘結(jié)構(gòu)。如下這樣也可接受:
不過(guò),該約束不會(huì)檢查保持時(shí)間,因不清楚數(shù)據(jù)何時(shí)會(huì)從 FPGA 的引腳結(jié)束。若數(shù)據(jù)在時(shí)鐘脈沖邊沿 2 納秒之后才建立,則使用如下方案:
OFFSET_IN 適用于進(jìn)入器件的時(shí)鐘與數(shù)據(jù)之間的關(guān)系,另一種常見(jiàn)的OFFSET_OUT 約束定義時(shí)鐘在 FPGA 輸入處發(fā)生跳變后數(shù)據(jù)離開器件所需的時(shí)間。以下為常見(jiàn)的 OFFSET_OUT 用法:
該約束告知工具,需確保輸入時(shí)鐘在 FPGA 輸入跳變后 3 納秒時(shí)長(zhǎng)后,數(shù)據(jù)出現(xiàn)在 FPGA 的輸出引腳上。該約束僅應(yīng)用于由 clk20 或其衍生(衍生約束)提供時(shí)鐘的寄存器驅(qū)動(dòng)的 PAD。OFFSET 要求在 clk20 上有 PERIOD 約束,這樣才能理解時(shí)鐘結(jié)構(gòu)。保持時(shí)間不受 OFFSET_OUT 的約束。
若需要數(shù)據(jù)在時(shí)鐘脈沖邊沿前 2 納秒到達(dá)FPGA 輸出,則使用:
分組與分組名稱
時(shí)間分組是用來(lái)識(shí)別對(duì)于同步元件間的路徑集或連線集的約束的一種方式。向時(shí)序分組添加組件,應(yīng)使用 TNM、TNM_NET 或 TIMEGRP。
通過(guò)定義分組并給定分組之間的時(shí)序要求,可對(duì)路徑進(jìn)行約束。部分約束不需要時(shí)序分組,如 NET MAXDELAY。這一最大延遲 (MAXDELAY) 屬性定義了一條連線上允許的最大延遲。
時(shí)序名稱
向用戶定義的分組添加組件,可這樣處理:
在此,“TNM”為保留字,用于定義時(shí)序分組的名稱。
在這種情況下,object_name 為帶分組元件或信號(hào)的名稱,predefined_group 為可選關(guān)鍵詞,標(biāo)示符可以是字母、數(shù)字和下劃線的任意組合。不能使用諸如 FFS、LATCHES 或RAMS 這樣的保留字。該變量對(duì)大小寫敏感。(TNM=abc 不等于 TNM=ABC)。
可將 TNM 應(yīng)用于任何連線、元件引腳、原語(yǔ)或宏。組件可加入一個(gè)以上的分組。例如,my_ffs_group TNM 中可含有 my_ff組件。同樣,my_ffs_group2 TNM 也可包含 my_ff 組件。要?jiǎng)?chuàng)建分組,請(qǐng)使用:
為時(shí)序目的,可在分組中包含任何關(guān)鍵詞元件。在本例中,NET CLOCK可追溯到觸發(fā)器 (FFS)。這些觸發(fā)器使用名稱 clk_group 進(jìn)行時(shí)序命名 (TNM)。然后,clk_group 就可以在TIMESPECS中使用了。也可使用實(shí)例創(chuàng)建分組,如:
fpga相關(guān)文章:fpga是什么
評(píng)論