1.XILINXISE傳統FPGA設計流程
利用Xilinx ISE軟件開發FPGA的基本流程包括代碼輸入、功能仿真、綜合、綜合后仿真、實現、布線后仿真與驗證和下班調試等步驟。如下圖所示。
1)電路設計或代碼輸入
FPGA的設計可以直接畫原理圖,但是這種方法在比較復雜的系統的情況下,原理圖相當復雜,所以慢慢被淘汰,ISE保留這一功能。
現在FPGA的設計輸入主要是Verilog和VHDL硬件語言。Verilog語言語法簡單,在亞洲區域使用比較廣泛;
VHDL被IEEE和美國國防部確認為標準硬件描述語言,在歐洲區域比較常見。
2)功能仿真
在基本的FPGA模塊編寫完成后,要使用仿真工具對設計的模塊進行仿真,驗證模塊的基本功能是否符合設計。功能仿真也被稱為前仿真。常用的仿真工具有
Model Tech公司的Modelsim, Synopsys公司的VCS,Cadence公司的NC-Verilog和NC-VHDL。功能仿真可以加快FPGA的設計,減少設計過程中的錯誤。
3)綜合
綜合優化(Synthesize)是將硬件語言或原理圖等設計輸入翻譯成由與,或,非門、RAM、觸發器等基本邏輯單元組成的邏輯連接(網表),并根據約束條件優化生成的邏輯連接,輸出edf和edn等文件。
4)實現
實現可理解為利用實現工具把邏輯映射到目標器件結構的資源中,決定邏輯的最佳布局,選擇邏輯與輸入輸出功能連接的布線通道進行連線,并產生相應文件(如配置文件與相關報告)。通常可分為如下五個步驟。(1)轉換:將多個設計文件進行轉換并合并到一個設計庫文件中。(2)映射:將網表中邏輯門映射成物理元素,即把邏輯設計分割到構成可編程邏輯陣列內的可配置邏輯塊與輸入輸出塊及其它資源中的過程。(3)布局與布線:布局是指從映射取出定義的邏輯和輸入輸出塊,并把它們分配到FPGA內部的物理位置,通常基于某種先進的算法,如最小分割、模擬退火和一般的受力方向張弛等來完成;布線是指利用自動布線軟件使用布線資源選擇路徑試著完成所有的邏輯連接。因最新的設計實現工具是時序驅動的,即在器件的布局布線期間對整個信號通道執行時序分析,因此可以使用約束條件操作布線軟件,完成設計規定的性能要求。在布局布線過程中,可同時提取時序信息形成報靠。(4)時序提取:產生一反標文件,供給后續的時序仿真使用。(5)配置:產生FPGA配置時的需要的位流文件。在實現過程中可以進行選項設置。因其支持增量設計,可以使其重復多次布線,且每次布線利用上一次布線信息以使布線更優或達到設計目標。在實現過程中應設置默認配置的下載形式,以使后續位流下載正常。
5)時序分析在設計實現過程中,在映射后需要對一個設計的實際功能塊的延時和估計的布線延時進行時序分析;而在布局布線后,也要對實際布局布線的功能塊延時和實際布線延時進行靜態時序分析。從某種程序來講,靜態時序分析可以說是整個FPGA設計中最重要的步驟,它允許設計者詳盡地分析所有關鍵路徑并得出一個有次序的報告,而且報告中含有其它調試信息,比如每個網絡節點的扇出或容性負載等。靜態時序分析器可以用來檢查設計的邏輯和時序,以便計算各通中性能,識別可靠的蹤跡,檢測建立和保持時間的配合,時序分析器不要求用戶產生輸入激勵或測試矢量。雖然Xilinx與Altera在FPGA開發套件上擁有時序分析工具,但在擁有第三方專門時序分析工具的情況下,僅利用FPGA廠家設計工具進行布局布線,而使用第三方的專門時序分析工具進行時序分析,一般FPGA廠商在其設計環境下皆有與第三方時序分析工具的接口。Synopsys公司的PrimeTime是一個很好的時序分析工具,利用它可以達到更好的效果。將綜合后的網表文件保存為db格式,可在PrimeTime環境下打開。利用此軟件查看關鍵路徑或設計者感興趣的通路的時序,并對其進行分析,再次對原來的設計進行時序結束,可以提高工作主頻或減少關鍵路徑的躚時。與綜合過程相似,靜態時序分析也是一個重復的過程,它與布局布線步驟緊密相連,這個操作通常要進行多次直到時序約束得到很好的滿足。
在綜合與時序仿真過程中交互使用PrimeTime進行時序分析,滿足設計要求后即可進行FPGA芯片投片前的最終物理驗證。
6)調試與加載配置
設計開發的最后步驟就是在線調試或者將生成的配置文件寫入芯片中進行測試。在ISE中使用iMPACT。
2.XILINXVIVADO傳統FPGA設計流程
Xilinx針對7系列FPGA、Zynq-7000 SOC FPGA和UltraScale芯片,為提升設計、集成和實現的效率,推出了全新的開發工具Vivado。
使用Vivado設計FPGA的基本流程如下圖
在設計輸入階段,除傳統的HDL代碼,Vivado還可以接受Vivado HLS生成的HDL代碼、System Generator模型輸出文件、IP Integrator模型以及IP。
在Vivado下,約束(時序約束和物理約束)采用XDC(xilinx Design Constraints)。
3.SOCFPGA設計流程
針對SOC FPGA的開發,xilinx在Vivado中專門設置了一個工具IP Integrator。
IP Integrator作為IP集成工具,以圖形化、模塊化的方式在設計中添加IP、連接端口。
Zynq芯片由兩部分組成,分別是PS和PL兩部分,相應地需要硬件編程和軟件編程。硬件編程使用Vivado,軟件編程使用SDK,具體流程見下圖。
借助Matlab完成Zynq開發,如下圖。在Matlab下即可完成算法建模到C代碼和RTL代碼的生成。
責任編輯:lq
-
FPGA
+關注
關注
1626文章
21666瀏覽量
601828 -
賽靈思
+關注
關注
32文章
1794瀏覽量
131164 -
Verilog
+關注
關注
28文章
1343瀏覽量
109985
原文標題:從賽靈思FPGA設計流程看懂FPGA設計
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論