手把手課堂:Xilinx FPGA設計時序約束指南

2021-01-04 電子產品世界

  作為賽靈思用戶論壇的定期訪客,我注意到新用戶往往對時序收斂以及如何使用時序約束來達到時序收斂感到困惑。為幫助 FPGA設計新手實現時序收斂,讓我們來深入了解時序約束以及如何利用時序約束實現FPGA 設計的最優結果。

本文引用地址:http://www.eepw.com.cn/article/119144.htm

  何為時序約束?

  為保證設計的成功,設計人員必須確保設計能在特定時限內完成指定任務。要實現這個目的,我們可將時序約束應用於連線中——從某 FPGA 元件到 FPGA 內部或 FPGA 所在 PCB 上後續元件輸入的一條或多條路徑。

  在 FPGA 設計中主要有四種類型的時序約束:PERIOD、OFFSET IN、OFFSET OUT 以及 FROM: TO(多周期)約束。

  PERIOD 約束與建組

  每個同步設計要有至少一個PERIOD 約束(時鐘周期規格),這是最基本的約束類型,指定了時鐘周期及其佔空比。若設計中有不止一個時鐘,則每個時鐘都有自己的 PERIOD 約束。PERIOD約束決定了我們如何進行布線,來滿足設計正常工作的時序要求。

  為簡化時序約束應用過程,常常可將具有類似屬性的連線分組為一組總線或一組控制線。這樣做有助於完成正確為設計約束定義優先級這一關鍵步驟。

  設計約束優先次序排列

  若設計有多重約束,則需進行優先次序排列。一般來說,約束的一般性越強,其優先級越低。相反,約束的針對性越強,其優先級越高。舉例來說,時鐘網絡上的某個一般性 PERIOD 約束將被特定網絡的具有更高優先級的 FROM: TO 約束所覆蓋。

  特定 FROM: TO(或 FROM: THRU:TO)約束在時鐘域內任意網絡中的重要性均高於一般性約束。

  為便於進行約束的優先級排列,可運行賽靈思時序分析器(ISE® Design Suite中的靜態時序分析工具),並生成時序規格迭代報告,即常說的 .tsi 報告。該報告說明了各約束間是如何迭代的,以及該工具如何為各約束設置默認優先級。

  採用 PRIORITY 約束關鍵詞可手動設置任一時序約束的優先級並使其優先於默認的或預先設定的優先級。這對同一路徑上的兩個或多個時序約束髮生衝突時尤為有用。這裡的優先級指的是同一路徑上有兩個或多個時序約束時,該應用哪一個。其餘的低優先級約束則被忽略。優先級可在 -10 ~ +10 的範圍內設置。

  PRIORITY 值越低,優先級越高。注意該值不會影響到哪些路徑應率先布局和走線,只有當優先級相同的兩個約束出現在同一路徑上時,它才會影響由哪個約束控制該路徑。

  下面將以 PERIOD 只控制從同步元件到同步元件之間的網絡,如 FFS 到FFS 為例來進一步介紹(約束以藍色顯示如下):

  創建名為 tnm_clk20 的 TIMEGRP(時序分組),包含網絡 clk20 驅動的所有下遊同步組件。這些同步元件間的所有路徑均受時序規格「TS_clk20: 20ns」(同步元件到同步元件 20 納秒的時間要求)的約束。「HIGH 50%」指 clk20 的佔空比為50/50。

  在第二個例子中,我們使用 FROM:TO 約束來定義對兩個分組間路徑的要求,即:

  該命令的作用是告知工具,確保數據從時序分組「my_from_grp」包含的元件到「my_to_grp」的元件所用時間為 40納秒。時序分析器仍將計算從源分組到目標分組的時鐘偏移,不過若時鐘關聯,則優先級較低。也可使用如下預定義分組:

 

fpga相關文章:fpga是什麼


相關焦點

  • FPGA quartus ii裡的靜態時序分析
    FPGA quartus ii裡的靜態時序分析 huan09900990 發表於 2020-11-25 11:39:35 在fpga工程中加入時序約束的目的: 1、給quartusii
  • 6個步驟 讓你成為FPGA設計高手
    ,對於有經驗的工作人員,使用FPGA可以讓設計變得非常有靈活性。掌握了FPGA設計,單板硬體設計就非常容易(不是系統設計),特別是上大學時如同天書的邏輯時序圖,看起來就非常親切。但FPGA入門卻有一定難度,因為它不像軟體設計,只要有一臺計算機,幾乎就可以完成所有的設計。FPGA設計與硬體直接相關,需要實實在在的調試儀器,譬如示波器等。
  • FPGA工程師進階必學:時序分析的基本步驟和整體設計思路
    時序約束整體的思路與之前我說的方法基本一致。先是約束時鐘,讓軟體先解決內部時序問題;(在這一步驟中可以適當加入時序例外,以便時序通過)2. 然後再加入IO的延遲約束;3. 最後針對沒有過的時序,添加時序例外。在《vivado使用誤區與進階》中,提到了一種叫 UltraFAST 的設計方法。針對下圖中所說的根據迭代結果添加必要的例外約束(步驟1),為什麼是添加必要的呢?
  • Xilinx FPGA控制器的Everspin STT-DDR4設計指南
    本文將幫助工程師了解Xilinx FPGA控制器的Everspin STT-DDR4設計指南2.啟用ST-DDR4為了使設計人員能夠快速集成ST-DDR4支持,該過程從Xilinx Vivado開發環境中生成的現有8Gb DDR4 SDRAM-2666存儲器接口生成器(MIG)開始。
  • 詳細講解Xilinx+ModelSim的FPGA仿真
    本文主要概括一下,如何針對Xilinx+ModelSim進行FPGA的仿真設計。對於Verilog來說,其對應的源文件位置所在的位置是$Xilinx\Verilog\src\xilinxcorelib,對VHDL來說,其對應的源文件所在的位置是$Xilinx\VHDL\src\xilinxcorelib。
  • 9年FPGA工作經驗,轉行了,苦海無涯……
    工作了9年的fpga,總要總結…… 其實說我的fpga經驗,也是一坨屎。三年的,用altera的c3和c4 做led控制卡。2年的用lattice的MACHXO-XO2和ECP2做了視頻和網絡光端機,3年的XILINX的SPARTAN 6 做了視頻ISP處理,現在一年的xilinx的ZYNQ做機器視覺。
  • xilinx 7系列FPGA裡面的Block RAM
    打開APP xilinx 7系列FPGA裡面的Block RAM 小青菜哥哥 發表於 2020-11-23 14:08:43
  • FPGA設計開發軟體Quartus II的使用技巧之: 約束及配置工程
    設計好工程文件後,首先要進行工程的約束。約束主要包括器件選擇、管腳分配及時序約束等。時序約束屬於較為高級的應用,通過時序約束可以使工程設計文件的綜合更加優化。下面對這幾種約束方式進行介紹。按照用戶的設計需求進行管腳定義,然後再編譯整個工程文件,即可進行下載。
  • FPGA初學者做時序最易忽視的幾個要點,每一項都很重要
    FPGA畢竟不是ASIC,對時序收斂的要求更加嚴格,本文主要介紹本人在工程中學習到的各種時序約束技巧。首先強烈推薦閱讀官方文檔UG903和UG949,這是最重要的參考資料,沒有之一。它提倡要在設計的早期階段就要排除問題,越到後期時序的改善就越困難。其中HLS層次對性能的影響是最大的。
  • 基於Xilinx FPGA的復位信號處理
    後來也看了一些書籍,採用異步復位同步釋放,對自己設計的改進。   不過自從我研讀了Xilinx的White Paper後,讓我對復位有了更新的認識。   Fan-out即扇出,模塊直接調用的下級模塊的個數,如果這個數值過大的話,在FPGA直接表現為net delay較大,不利於時序收斂。因此,在寫代碼時應儘量避免高扇出的情況。
  • 基於FPGA的AXI4總線時序設計與實現
    摘  要: 針對AXI4總線設備之間的高速數據傳輸需求,根據AXI4總線協議,設計實現了一種基於FPGA的AXI4總線讀寫時序控制方法。以FPGA為核心,採用VHDL語言,完成了滿足AXI4總線協議的讀猝發方式數據傳輸和寫猝發方式數據傳輸時序控制模塊的設計。利用FPGA內部嵌入式系統提供的高性能數據傳輸接口完成AXI4時序控制模塊的功能驗證。實際應用表明,依據提出的設計方法實現的讀寫時序控制模塊能夠滿足AXI4總線協議規定的時序關係,實現數據的高速正確傳輸,總線數據傳輸速率能夠達到1.09 GB/s。
  • 美高森美Libero SoC v11.7版本軟體增強FPGA設計的安全性、使用性...
    本文引用地址:http://www.eepw.com.cn/article/201603/289040.htm  美高森美軟體工程副總裁Jim Davis表示:「我們的 Libero SoC v11.7軟體工具採用具有全新約束管理視圖的新型增強約束流程、完全重新設計的ChipPlanner和新的同步開關噪聲(simultaneous switching noise, SSN)分析器,顯著改善了用戶體驗
  • 學的FPGA如何轉行做ASIC?9年老工程師的肺腑之言
    工作了9年的FPGA,總要總結……pi6ednc其實說我的fpga經驗,也是一坨屎。三年的,用altera的c3和c4 做led控制卡。2年的用lattice的MACHXO-XO2和ECP2做了視頻和網絡光端機,3年的XILINX的SPARTAN 6 做了視頻ISP處理,現在一年的xilinx的ZYNQ做機器視覺。
  • 「正點原子FPGA連載」第九章Linux顯示設備的使用
    1)摘自【正點原子】領航者 ZYNQ 之Linux驅動開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
  • Xilinx 7系列FPGA內存資源的用戶指南
    Xilinx7系列FPGA包括四個FPGA系列,它們都是為最低功耗而設計的,以使一個通用設計能夠跨系列擴展以獲得最佳的功率、性能和成本。斯巴達®-7系列是7系列產品中密度最低、成本最低的入門級產品。Artix®-7系列針對成本敏感、高容量應用,針對每瓦最高性能和每瓦帶寬進行了優化。
  • Modelsim的功能仿真和時序仿真
    FPGA設計流程包括設計輸入,仿真,綜合,生成,板級驗證等很多階段。在整個設計流程中,完成設計輸入並成功進行編譯僅能說明設計符合一定的語法規範,並不能說明設計功能的正確性,這時就需要通過仿真對設計進行驗證。在FPGA 設計中,仿真一般分為功能仿真(前仿真)和時序仿真(後仿真)。
  • 乾貨| FPGA的IO到底是怎麼命名的?
    首先,FPGA的IO物理命名規則,也就是我們做管腳約束時候的命名,晶片通常是長方體或者正方體,所以命名通常採用字母+數字組合的方式,從上到下是字母(A,B,C,D```),從左到右是數字(1,2,3```),所以諸如:A13(見下圖),就是圖上標紅的位置,這個是xilinx的一顆晶片示意圖,其它廠商的FPGA晶片也類似。
  • xilinx vivado的五種仿真模式和區別
    打開APP xilinx vivado的五種仿真模式和區別 工程師曾玲 發表於 2018-07-02 08:43:00 本文介紹一下
  • 關於Xilinx FPGA如何獲取FPGA的Device DNA
    一般來說,用戶在邏輯上可以通過特定的接口把這個Device DNA讀取出來,經過一系列加密算法之後和預先在外部Flash存儲的一串加密後的字節串做比較,這個flash存儲的加密後的字節串也是由該DNA經過加密後得到,fpga加載程序後可以先從flash讀出該段字節做比較,如果相同,則讓FPGA啟動相應的邏輯,如不同,則代表該FPGA沒有經過用戶授權,用戶邏輯上可以關閉FPGA的邏輯功能甚至可以通過一些手段讓硬體損壞
  • ISE時序約束筆記3——Global Timing Constraints
    問題思考本文引用地址:http://www.eepw.com.cn/article/269608.htm  哪些路徑是由CLK1進行周期約束?  哪些路徑是由pad-to-pad進行約束?