了解FPGA的設計流程嗎,看完這篇文章你就懂了

2019-11-27     電子工程師小李

一般來說,完整的FPGA設計流程包括電路設計與輸入、功能仿真、綜合優化、綜合後仿真、布局布線、布局布線後仿真、板級仿真與驗證、加載配置與在線調試等主要步驟。

1.電路設計與輸入

電路設計與輸入是指通過某些規範的描述方式,將電路構思輸入給EDA工具。常用的設計輸入方法有硬體描述語言和原理圖設計輸入方法等。原理圖設計輸入法在早期應用比較廣泛,它根據設計要求選用器件、繪製原理圖、完成輸入過程。這種方法的優點是直觀、便於理解、元器件庫資源豐富。但是在大型設計中,該方法的可維護性較差,不利於模塊構造與重用。

目前進行大型工程設計時,常用的設計方法是硬體描述語言設計輸入法,其中影響最為廣泛的HDL語言是VHDL和Verilog HDL。它們的共同特點是利於由頂向下設計,利於模塊的劃分與復用,可移植性好,通用性好,設計不因晶片的工藝與結構的不同而變化,更利於向ASIC的移植。波形輸入和狀態機輸入方法是兩種常用的輔助設計輸入方法。使用波形輸入法時,只要繪製出激勵波形和輸出波形,EDA軟體就能自動地根據響應關係進行設計。使用狀態機輸入法時,設計者只需畫出狀態轉移圖,EDA軟體就能生成相應的HDL代碼或者原理圖,使用十分方便。

2.功能仿真

電路設計完成後,要用專用的仿真工具對設計進行功能仿真,驗證電路功能是否符合設計要求。功能仿真有時也被稱為前仿真。

3.綜合優化

綜合優化是指將HDL語言、原理圖等設計輸入翻譯成由與門、或門、非門、RAM、觸發器等基本邏輯單元組成的邏輯連接(網表),並根據目標與要求(約束條件)優化所生成的邏輯連接,輸出edf和edn等標準格式的網表文件,供FPGA廠家的布局布線器實現。

4.綜合後仿真

綜合完成後需要檢查綜合結果是否與原設計一致,做綜合後仿真。在仿真時,把綜合生成的標準延時文件反標註到綜合仿真模型中,可估計門延時帶來的影響。綜合後仿真雖然比功能仿真更精確,但只能估計門延時,不能估計線延時,仿真結果與布線後的實際情況還有一定的差距,並不十分準確,這種仿真的主要目的是檢查綜合器的綜合結果是否與設計輸入一致。目前主流綜合工具日益成熟,對於一般性設計,如果設計者確信自己表述明確,沒有綜合歧義發生,可以省略綜合後仿真步驟。但是如果在布局布線後仿真發現有電路結構與設計意圖不符的現象,就需要回溯到綜合後仿真以確認是否是由於綜合歧義造成的問題。

5.布局布線

綜合結果的本質是一些由與門、或門、非門、觸發器和RAM等基本邏輯單元組成的邏輯網表,其與晶片實際的配置情況具有較大差距。此時應該使用FPGA廠商提供的軟體工具,根據所選晶片的型號,將綜合輸出的邏輯網表適配到具體的FPGA器件上,這個過程就叫實現過程。因為只有器件開發商最了解器件的內部結構,所以實現步驟必須選用器件開發商提供的工具。在實現過程中最主要的過程是布局布線,所謂布局是指將邏輯網表中的硬體或底層單元合理地適配到FPGA內部的固有硬體結構上,布局的優劣對設計的最終實現結果影響很大。

所謂布線是指根據布局的拓撲結構,利用FPGA內部的各種連線資源,合理正確地連接各元件的過程。FPGA的結構相對複雜,為了獲得更好的實現結果,特別是保證能夠滿足設計的時序條件,一般採用時序驅動的引擎進行布局布線。所以對於不同的設計輸入,特別是不同的時序約束,獲得的布局布線結果一般有較大差異。一般情況下,用戶可以通過設置參數指定布局布線的優化準則,總之,優化目標主要有面積和速度兩個方面要求。一般根據設計的主要矛盾,選擇面積、速度或平衡兩者的優化目標。如果當兩者衝突時,一般先滿足時序約束要求,此時選擇速度或時序優化目標效果更好。

6.時序仿真與驗證

將布局布線的時延信息反標註到設計網表中,所進行的仿真就叫時序仿真或布局布線後仿真,簡稱後仿真。布局布線之後生成的仿真時延文件包含的時延信息最全,不僅包含門延時,還包含實際布線延時,所以布線後仿真最準確,能較好地反映晶片的實際工作情況。一般來說,布線後仿真步驟必須進行,通過布局布線後仿真能檢查設計時序與FPGA實際運行情況是否一致,確保設計的可靠性和穩定性。布局布線後仿真的主要目的在於發現時序是否違規,即是否滿足時序約束條件或器件固有時序規則的情況。

7.板級仿真與驗證

在有些高速設計中還需要使用第三方的板級驗證工具進行仿真與驗證。

8.加載配置與在線調試

設計開發的最後步驟是在線調試或將生成的配置文件寫入晶片中進行測試。示波器和邏輯分析儀是邏輯設計的主要調試工具。傳統的邏輯功能板級驗證手段是用邏輯分析儀分析信號,設計時要求FPGA和PCB設計人員保留一定數量的FPGA引腳作為測試引腳,編寫FPGA代碼時需要觀察的信號作為模塊的輸出信號,在綜合實現時再把這些輸出信號鎖定到測試引腳上,然後將邏輯分析儀的探頭連接到這些測試腳,設定觸發條件,進行觀測。邏輯分析儀的優點是專業、高速、觸發邏輯可以相對複雜,缺點是價格昂貴、靈活性差。PCB布線後測試腳的數量有限,不能靈活增加,當測試腳不夠用時影響測試,如果測試腳太多又影響PCB布局布線。

對於相對簡單一些的設計,使用Quartus II內嵌的SignalTap II和Xilinx提供的Chip Scope工具,對設計進行在線邏輯分析可以較好地解決上述矛盾。其主要功能是通過JTAG口,在線、實時地讀出FPGA的內部信號。基本原理是利用FPGA中未使用的Block RAM,根據用戶設定的觸發條件將信號實時地保存到這些BlockRAM中,然後通過JTAG口傳送到計算機,最後在計算機螢幕上顯示出時序波形。任何仿真或驗證步驟出現問題,就需要根據錯誤的定位返回到相應的步驟更改或者重新設計。

文章來源: https://twgreatdaily.com/zh-cn/kRFTr24BMH2_cNUgCHhv.html