新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 手把手課堂:Xilinx FPGA設(shè)計(jì)時(shí)序約束指南

手把手課堂:Xilinx FPGA設(shè)計(jì)時(shí)序約束指南

作者: 時(shí)間:2011-04-29 來源:電子產(chǎn)品世界 收藏

  傳輸時(shí)間與 OFFSET 約束

本文引用地址:http://m.butianyuan.cn/article/119144.htm

  信號(hào)從 A 點(diǎn)到達(dá) B 點(diǎn)所用的時(shí)間稱為傳輸時(shí)間。它取決于傳輸介質(zhì)中光傳播的速度。例如,PCB 電路板上的走線以 6~7 皮秒/ 毫米來傳輸信號(hào)??刹捎枚喾N方法來確定這一時(shí)間值,例如進(jìn)行仿真,或在材料介電常數(shù)與走線幾何結(jié)構(gòu)已知的情況下,列方程求解。在芯片內(nèi),信號(hào)的行為方式也很類似,不過也會(huì)因通過緩存器、反相器、邏輯和互聯(lián)等有源電路而發(fā)生延遲。

  傳輸時(shí)間是可測(cè)量的,通常用示波器來測(cè)量。當(dāng)路徑上無有源元件時(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)。如下這樣也可接受:

  不過,該約束不會(huì)檢查保持時(shí)間,因不清楚數(shù)據(jù)何時(shí)會(huì)從 的引腳結(jié)束。若數(shù)據(jù)在時(shí)鐘脈沖邊沿 2 納秒之后才建立,則使用如下方案:

  OFFSET_IN 適用于進(jìn)入器件的時(shí)鐘與數(shù)據(jù)之間的關(guān)系,另一種常見的OFFSET_OUT 約束定義時(shí)鐘在 輸入處發(fā)生跳變后數(shù)據(jù)離開器件所需的時(shí)間。以下為常見的 OFFSET_OUT 用法:

  該約束告知工具,需確保輸入時(shí)鐘在 輸入跳變后 3 納秒時(shí)長后,數(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í)間分組是用來識(shí)別對(duì)于同步元件間的路徑集或連線集的約束的一種方式。向時(shí)序分組添加組件,應(yīng)使用 TNM、TNM_NET 或 TIMEGRP。

  通過定義分組并給定分組之間的時(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)用于任何連線、元件引腳、原語或宏。組件可加入一個(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)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉