Xilinx Artix-7 FPGA快速入門(mén)、技巧與實(shí)例連載6——FPGA開(kāi)發(fā)流程![]() 鏈接:https://share.weiyun.com/53UnQas file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg 如圖1.32所示,這是一個(gè)基于FPGA開(kāi)發(fā)工具的開(kāi)發(fā)流程圖。當然了,在此之前,從FPGA項目的提上議程開(kāi)始,設計者需要進(jìn)行FPGA功能的需求分析,然后進(jìn)行模塊的劃分,比較復雜和龐大的設計,則會(huì )通過(guò)模塊劃分把工作交給一個(gè)團隊的多人協(xié)作完成。各個(gè)模塊的具體任務(wù)和功能劃分完畢(通常各個(gè)模塊間的通信和接口方式也同時(shí)被確定),則可以著(zhù)手進(jìn)行詳細設計,其各個(gè)步驟包括設計輸入、設計綜合、約束輸入、設計實(shí)現、分析實(shí)現結果(查看工具給出的各種報告結果)。為了保證設計達到預期要求,設計仿真以及設計優(yōu)化則穿插其間。在EDA工具上驗證無(wú)誤后,則可以生成下載配置文件燒錄到實(shí)際器件中進(jìn)行板級的調試工作。從圖中的箭頭示意不難看出,設計的迭代性是FPGA開(kāi)發(fā)過(guò)程中的一個(gè)重要特點(diǎn),這就要求設計者從一開(kāi)始就要非常認真細致,否則后續的很多工作量可能就是不斷的返工。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif ![]() 基于Xilinx的Vivado開(kāi)發(fā)工具,我們對以上開(kāi)發(fā)流程所涉及的各個(gè)步驟做簡(jiǎn)要的說(shuō)明。 設計輸入 設計輸入階段,設計者需要創(chuàng )建FPGA工程,并且創(chuàng )建或添加設計源文件到工程中。FPGA工程包含了各種不同類(lèi)型的源文件和設計模塊,比如HDL文件、EDIF或NGC網(wǎng)表文件、原理圖、IP核模塊、嵌入式處理器以及數字信號處理器模塊等。 設計綜合 設計綜合階段,FPGA開(kāi)發(fā)工具的綜合引擎將編譯整個(gè)設計,并將HDL源文件轉譯為特定結構的設計網(wǎng)表。Vivado設計工具內置Synthesis綜合功能,也支持第三方綜合工具,如Synplify, SynplifyPro和Precision等軟件工具的使用。 約束輸入 約束輸入階段,設計者可以指定時(shí)序、布局布線(xiàn)或者其它的設計要求。Vivado工具支持專(zhuān)用的編輯器實(shí)現時(shí)序約束、I/O引腳約束和布局布線(xiàn)約束。 設計仿真 在整個(gè)開(kāi)發(fā)過(guò)程的任意時(shí)刻,設計者都可以使用仿真工具對FPGA工程進(jìn)行功能驗證,比如Vivado內置的仿真器或者第三方工具ModelSim仿真器。 設計實(shí)現 設計綜合之后,接著(zhù)就需要設計實(shí)現,將邏輯設計進(jìn)一步轉譯為可以被下載燒錄到目標FPGA器件中的特定物理文件格式。使用Vivado的工程導航窗口中支持的目標和策略設置屬性,可以控制設計實(shí)現以及結果優(yōu)化。為了更快的達到設計目標,可以使用SmartXplorer進(jìn)行不同的處理策略實(shí)現,達到多次的自動(dòng)實(shí)現處理以完成設計目標。 分析實(shí)現結果 完成設計實(shí)現后,必須對設計約束、器件資源占用率、實(shí)現結果以及功耗等設計性能進(jìn)行分析。既可以查看靜態(tài)報告,也可以使用Vivado中內置的工具動(dòng)態(tài)的查看設計綜合實(shí)現的結果。對于時(shí)序結果和功耗結果,Vivado內置工具中都可以進(jìn)行查看。此外,在系統調試時(shí)也可以使用在線(xiàn)邏輯分析儀ILA。 設計優(yōu)化 基于對設計結果的分析,設計者可以對設計源文件、編譯屬性或設計約束進(jìn)行修改,然后重新綜合、實(shí)現以達到設計最優(yōu)化。 板級調試 在生成下載配置文件后,設計者便可以對FPGA器件進(jìn)行調試。在此過(guò)程中,既可以實(shí)現下載配置文件的快速在線(xiàn)燒錄進(jìn)行實(shí)時(shí)調試驗證,也可以實(shí)現產(chǎn)品固化燒錄使其可以離線(xiàn)運行。 當然了,對于沒(méi)有實(shí)際工程經(jīng)驗的初學(xué)者而言,這個(gè)流程圖可能不是那么容易理解。不過(guò)沒(méi)有關(guān)系,我們會(huì )簡(jiǎn)化這個(gè)過(guò)程,從實(shí)際操作角度,以一個(gè)比較簡(jiǎn)化的順序的方式來(lái)理解這個(gè)流程。如圖1.33所示,從大的方面來(lái)看,FPGA開(kāi)發(fā)流程不過(guò)是三個(gè)階段,第一個(gè)階段是概念階段,或者也可以稱(chēng)之為架構階段,這個(gè)階段的任務(wù)是項目前期的立項準備,如需求的定義和分析、各個(gè)設計模塊的劃分;第二個(gè)階段是設計實(shí)現階段,這個(gè)階段包括編寫(xiě)RTL代碼、并對其進(jìn)行初步的功能驗證、邏輯綜合和布局布線(xiàn)、時(shí)序驗證,這一階段是詳細設計階段;第三個(gè)階段是FPGA器件實(shí)現,除了器件燒錄和板級調試外,其實(shí)這個(gè)階段也應該包括第二個(gè)階段的布局布線(xiàn)和時(shí)序驗證,因為這兩個(gè)步驟都是和FPGA器件緊密相關(guān)的。我們這么粗略的三個(gè)階段劃分并沒(méi)有把FPGA整個(gè)設計流程完全的孤立開(kāi)來(lái),恰恰相反,從我們的階段劃分中,我們也看到FPGA設計的各個(gè)環(huán)節是緊密銜接、相互影響的。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg ![]() 更多資料共享 鏈接:https://share.weiyun.com/53UnQas |