天天看點

【小技巧】FPGA開發流程普通流程

        可程式設計邏輯器件的設計是指利用EDA開發軟體和程式設計工具對器件進行開發的過程。高密度複雜可程式設計邏輯器件(如FPGA)的設計流程如圖1所示。它包括設計準備,設計輸入,功能仿真,設計處理,時序仿真和器件程式設計及下載下傳等七個步驟。

【小技巧】FPGA開發流程普通流程

圖1 可程式設計邏輯器件設計流程

·設計準備

       在系統設計之前,首先要進行方案論證、系統設計和器件選擇等準備工作。設計人員根據任務要求,如系統的功能和複雜度,對工作速度和器件本身的資源、成本及連線的可布性等方面進行權衡,選擇合适的設計方案和合适的器件類型。一般采用自上而下的設計方法,也可采用傳統的自下而上的設計方法。

·設計輸入

       設計人員将所設計的系統或電路以開發軟體要求的某種形式表示出來,并送入計算機的過程成為設計輸入。設計輸入通常有以下幾種形式。原理圖輸入方式:原理圖輸入方式是一種最直接的設計描述方式,要設計什麼,就從軟體系統提供的元件庫中調出來,以需要的連接配接方式畫出原理圖。這樣比較符合人們的設計習慣。這種方式要求設計人員有豐富的電路知識及對FPGA的功能和結構比較熟悉。其主要優點是容易實作仿真,便于信号的觀察和電路的調整以及子產品的組合;缺點是效率低,特别是産品有所改動,需要選用另外一個公司的FPGA器件時,就需要重新輸入原理圖,而采用硬體描述語言輸入方式就不存在這個問題。

硬體描述語言輸入方式:硬體描述語言是用文本方式描述設計,它分為普通硬體描述語言和行為描述語言。普通硬體描述語言有ABEL、CUR和LFM等,它們支援邏輯方程、真值表、狀态機等邏輯表達方式,主要用于簡單PLD的設計輸入。行為描述語言是目前常用的高層硬體描述語言,主要有VHDL和Verilog HDL兩個IEEE标準。其突出優點有:語言與工藝的無關性,可以使設計人員在系統設計、邏輯驗證階段便于确立方案的可行性;語言的公開可利用性,便于實作大規模系統的設計;具有很強的邏輯描述和仿真功能,而且輸入效率高,在不同的設計輸入庫之間的轉換非常友善,用不着對底層的電路和PLD結構有非常的了解和熟悉。

波形輸入方式:波形輸入方式主要是用來建立和編輯波形設計檔案,以及輸入仿真向量和功能測試向量。波形設計輸入是适用于時序邏輯和有重複性的邏輯函數。系統軟體可以根據使用者定義的輸入/輸出波形自動生成邏輯關系。波形編輯功能還有允許設計人員對波形進行拷貝、剪切、粘貼、重複與伸展,進而可以用内部節點、觸發器和狀态機建立設計檔案,并将波形進行組合,顯示各種進制的狀态值,也可以将一組波形重疊到另一組波形上,對兩組仿真結果進行對比。

·功能仿真

功能仿真也叫前仿真。使用者所設計的電路必須在編譯之前進行邏輯功能驗證,此時的仿真沒有加入延時資訊,對于初步的功能檢測非常友善。仿真前,要先利用波形編輯器和硬體描述語言等建立波形檔案和測試向量(即将所關心的輸入信号組合成序列),仿真結果将會生成報告檔案和輸出信号波形,從中便可以觀察到各個節點的信号變化。如果發現錯誤,則傳回設計輸入中修改邏輯設計。

·設計處理

設計處理是器件設計中的核心環節。在設計處理過程中,便以軟體将對設計輸入檔案進行邏輯化簡、綜合優化和适配,最後産生加載用的程式設計檔案。

文法檢查和設計規則檢查:設計輸入完成後,首先進行文法檢查,如原理圖中有無漏連接配接的信号線,信号有無雙重來源,文本輸入檔案中關鍵字有無輸錯等各種文法錯誤,并及時列出錯誤資訊報告供設計人員修改。然後進行設計規則檢驗,檢查總的設計有無超出器件資源或規定的限制,并将編譯報告列出,指明違反規則情況以供設計人員糾正。

邏輯優化和綜合:化簡所有的邏輯方程或使用者自建的宏子產品,使設計所占用的資源最少。綜合的目的是将多個子產品化設計檔案合并為一個網表檔案,并使層次設計平面化。

适配和分割:确立優化以後的邏輯能否與器件中的宏單元和I/0單元适配,然後将設計分割為多個便于識别的邏輯小塊形式映射到器件相應的宏單元中。如果整個設計較大,不能裝入一片器件中時,可以将整個設計劃分為多塊,并裝入同一系列的多片器件中去。分割可全自動、部分或全部由使用者控制,目的是使器件數目最少,器件之間通信的引腳數目最少。

布局布線:布局和布線工作是在上面的設計工作完成後由軟體自動完成的,它以最優的

方式對邏輯元件布局,并準确的實作元件間的互聯。布線以後軟體自動生成報告,提供有關設計中各部分資源的使用情況等資訊。

·時序仿真

繼續閱讀