FPGA基本結構
FPGA 的基本結構包括
可編程輸入輸出單元
,
可配置邏輯塊
,
數字時鍾管理模塊
,
嵌入式塊RAM
,
布線資源
,
內嵌專用硬核
,
底層內嵌功能單元
。
1. 典型FPGA開發流程與注意事項
FPGA的設計流程就是利用EDA開發軟件和編程工具對FPGA芯片進行開發的過程,典型FPGA的設計流程如下:
需求定義→設計輸入→功能仿真→設計綜合→設計實現→配置下載→片上實時調試
對應各流程細分得到詳細步驟:
功能定義/器件選型→設計輸入(verilogHDL、VHDL)→功能仿真→綜合優化→映射→布局→布線→時序分析→位流生成→板級仿真→芯片編程與調試
1.1 需求定義
- 這個設計是做什么用的?
- 需要實現什么功能?
- 有什么要注意的地方?
1.2 設計輸入
設計輸入
是將所設計的系統或電路以開發軟件要求的某種形式表示出來,並輸入給EDA工具的過程。常用方法:
- 硬件描述語言(HDL):verilogHDL,VHDL
- 原理圖輸入方法(目前很少使用)
1.3 功能仿真
電路設計完成后,要用專用的仿真工具對設計進行功能仿真,驗證電路功能是否符合設計要求。功能仿真有時也被稱為前仿真
1.4 綜合優化
綜合優化
(Synthesize)是將硬件語言或原理圖等設計輸入翻譯成由與,或,非門、RAM、觸發器等基本邏輯單元組成的邏輯連接(網表),並根據約束條件優化生成的邏輯連接,輸出edf和edn等文件。
1.5 實現
實現
可理解為利用實現工具把邏輯映射到目標器件結構的資源中,決定邏輯的最佳布局,選擇邏輯與輸入輸出功能連接的布線通道進行連線,並產生相應文件(如配置文件與相關報告)。主要包括以下內容: a.
映射
:將網表中邏輯門映射成物理元素,即把邏輯設計分割到構成可編程邏輯陣列內的可配置邏輯塊與輸入輸出塊及其它資源中的過程。 b.
布局布線
:布局是指從映射取出定義的邏輯和輸入輸出塊,並把它們分配到FPGA內部的物理位置,通常基於某種先進的算法,如最小分割、模擬退火和一般的受力方向張弛等來完成;布線是指利用自動布線軟件使用布線資源選擇路徑試着完成所有的邏輯連接。因最新的設計實現工具是時序驅動的,即在器件的布局布線期間對整個信號通道執行時序分析,因此可以使用約束條件操作布線軟件,完成設計規定的性能要求。在布局布線過程中,可同時提取時序信息形成報靠。
1.6 時序分析
在設計實現過程中,在映射后需要對一個設計的實際功能塊的延時和估計的布線延時進行時序分析;而在布局布線后,也要對實際布局布線的功能塊延時和實際布線延時進行靜態時序分析。 靜態時序分析器可以用來檢查設計的邏輯和時序,以便計算各通中性能,識別可靠的蹤跡,檢測建立和保持時間的配合,時序分析器不要求用戶產生輸入激勵或測試矢量。
1.6 編程調試
設計的最后一步就是編程調試。芯片編程是指產生使用的數據文件(位數據流文件,Bitstream Generaon),將編程數據加載到FPGA芯片中;之后便可進行上板測試。最后將FPGA文件(如.bit文件)從電腦下載到單板上的FPGA芯片中。