- 零點起飛學Xilinx FPG
- 高敬鵬 武超群 白錦良
- 2148字
- 2020-06-30 10:21:56
1.7 FPGA的設計流程
一般來說,完整的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布局布線。
ChipScope Pro是ISE下一款功能強大的在線調試工具,對以上問題ChipScope Pro都可以有效地解決。它的主要功能是通過JTAG口在線實時讀取FPGA的內部信號。ChipScope Pro的基本原理是利用FPGA中未使用的Block RAM,根據用戶設定的觸發條件將信號實時地保存到這些Block RAM中,然后通過JTAG口傳送到計算機,最后在計算機屏幕上顯示出時序波形。
- ATmega16單片機項目驅動教程
- FPGA從入門到精通(實戰篇)
- 施耐德SoMachine控制器應用及編程指南
- The Applied AI and Natural Language Processing Workshop
- 3ds Max Speed Modeling for 3D Artists
- 計算機維修與維護技術速成
- 微服務分布式架構基礎與實戰:基于Spring Boot + Spring Cloud
- 計算機組裝與維護(第3版)
- 單片機項目設計教程
- Blender for Video Production Quick Start Guide
- FPGA實戰訓練精粹
- 計算機組裝、維護與維修項目教程
- UML精粹:標準對象建模語言簡明指南(第3版)
- The Reinforcement Learning Workshop
- The Deep Learning Workshop