1. 程式人生 > >FPGA整合開發軟體工具ISE的應用

FPGA整合開發軟體工具ISE的應用

在這裡插入圖片描述
作者:毛蘢瑋 / Saint
掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a
微博:https://weibo.com/5458277467/profile?topnav=1&wvr=6&is_all=1
GitHub:github.com/saint-000

FPGA整合開發軟體工具ISE的應用

一、實驗原理:
ISE的全稱為Integrated Software Environment,即“整合軟體環境”,是Xilinx公司的硬體設計工具。 ISE將先進的技術與靈活性、易使用性的圖形介面結合在一起,方便使用者更加快捷的硬體設計。

二、實驗目的:
在本次實驗中,我們對之前在ACTIVE-VHDL中編譯好的選擇器,加法器,三八譯碼器,優先編碼器,計數器,分頻器等匯入到ISE中,進行模組綜合,定義使用者約束,然後完成設計實現,最後連線到FPGA下載配置位元流檔案。

三、實驗內容:
選擇器,加法器,三八譯碼器,優先編碼器,計數器,分頻器的VHDL檔案匯入ISE進行綜合編譯,設定相應管角約束。

四、實驗器材(裝置、元器件):
①軟體Active-HDL9.2 ②Windows作業系統 ③ Xilinx ISE 10.1軟體 ④開發板;Spartan-3系列xc3s200 PQ208-4C

五、實驗步驟:
1.新建專案:開啟Xilinx ISE 10.1,在啟動介面下建立新的工程:選擇File->New Project,彈出New Project Wizard嚮導介面。在Namel一欄中輸入test,location目錄選擇C:\Users\test,working Directory選擇C:\Users\test,Top-level source type:選擇HDL,即硬體描述語言。

2.設定FPGA器件引數,如下圖:
在這裡插入圖片描述
3.在新建好的工程下新增原始檔,選擇"Projec > Add copy of Source",將原始檔複製到當前工程路徑下並新增到當前工程中。原始檔新增過程中,ISE 10.1自動對其進行分析,並且從資訊框中列出原始檔中的錯誤和警告。用滑鼠雙擊資訊行則自動定位於原始檔出錯或警告行。
在這裡插入圖片描述
4.定義頂層設計:完成原始檔新增後,若有多個原始檔,則需要指定設計的頂層檔案。
右擊頂層檔案選擇“Set as Top Module"。本次實驗目的在於掌握ISE的綜合編譯,還沒有真正的完成頂層的設計,所以我們只需要對單個設為頂層檔案進行編譯,然後綜合設定個別模組的管腳約束即可。
在這裡插入圖片描述


5.邏輯綜合:選擇頂層設計檔案,雙擊Synthesis-XST,綜合工具開始對設計進行邏輯綜合,綜合完成會在資料夾下生成網表文件,如上圖所示。

6.新增設計的約束檔案:在對設計進行邏輯綜合前需要進行必要的管腳指定和時序約束。
選中頂層檔案,在Processes視窗雙擊“User Constrains > Floorplan IO- Pre-Synthesis",在“Loe"欄指定與輸入輸出訊號對應的管腳,儲存檔案。
在這裡插入圖片描述
在選單欄選擇“View > Refresh",頂層檔案下將出現當前工程的約束檔案rgy.ucf. 單擊選中rgy.uef檔案,雙擊“User Constraints"標籤下的“Edit Constraints(Text)“可以顯示、編輯約束檔案。
在這裡插入圖片描述
7.邏輯綜合:選中設計頂層檔案,雙擊"Synthesis-XST”,綜合工具XST開始對設計進行邏輯綜合,綜合完成後會在工程資料夾下生成網表文件rgy.ngc.
8.觀察邏輯圖:在邏輯綜合完成後,在Processes視窗雙擊"Synthesis-XST > View RTL Schematic",顯示RTL電路圖,雙擊該檢視可以顯示綜合後的門級電路圖。
在這裡插入圖片描述
這裡我們只是單一的四位選擇器,所以邏輯圖只是簡單的一個器件。
在這裡插入圖片描述
如果是設計好的頂層檔案的邏輯圖會相對複雜(舉例樂曲電路設計邏輯圖如下圖):
在這裡插入圖片描述
在Poeses視窗雙擊“Sythesis-XST+ View Tecnology Schematie",顯示與所選用器件相關的電路圖。(以四位選擇器為例如下圖)
在這裡插入圖片描述
9.FPGA 設計實現:雙擊"Implement Design", ISE 將依次執行下面三個過程:
(I) Translate: 將輸入的網表和約束資訊轉換為特定格式的設計檔案。
(2) Map:將設計對映為目標器件內部可用的資源(slice 和RAM等)。
(3) Place & Route:對設計進行佈局佈線以滿足時序約束。
通過選單欄選擇" Projct > View Design Summary",可以看到資源佔用情況,此外,在Design Summary視窗中還可以檢視綜合報告、佈局佈線報告、靜態時序報告等。
在這裡插入圖片描述
10.程式設計下載FPGA:(1)生成FPGA下載檔案:右擊“Implement Design->Generate Programming File"選項,選擇"Properties"選項,選中“Sartup Options"選項,把“FPGA Sart-Up Clock"選項的值修改為“JTAG Clock" (一般程式設計下載都是採用JTAG方式)。
在這裡插入圖片描述
(2)生成配置檔案.BIT檔案:雙擊“Generate Programming File",生成.bit檔案(為二進位制流檔案,包含資料和配置資訊,用於JTAG模式下載FPGA)。雙擊“Generate target PROM/ACE File",開啟IMPACT整合配置工具
在這裡插入圖片描述
11.連線FPGA的電源線和JTAG線,給FPGA上電,執行IMPACT找到bit檔案,連線成功的頁面顯示如下,最後右擊執行程式。

在這裡插入圖片描述
在這裡插入圖片描述
12.觀察實驗現象以及相應功能是否與設計功能相吻合。

六、實驗結論:
我們通過基於ISE的FPGA設計與實現各模組的操作,瞭解到了設計與實現的主要步驟:設計輸入,設計綜合,設計實現,FPGA程式設計下載,同時我們在不同的設計階段可以採用不同的設計驗證方式:RTL模擬,門級模擬,時序模擬和線上除錯等。

七、總結及心得體會:
(1)實驗過程中的設計比較簡單,在掌握ISE的編譯操作時要一步一步的編譯成功才能進行下一步,這裡是比較花時間的,但做完幾遍之後發現操作不難,多除錯幾次就能基本掌握ISE的編譯過程。
(2)管腳的分配時我們要參照FPGA的使用者手冊上的管腳編號去設定,並且要分配合理。我們需要關注更多的是獨立按鍵的分配,在實現更多的功能時,控制按鍵的需求是比較大的,因此最大限度的分配管腳也是很重要的,在測試階段如果獨立按鍵不夠用,我們可以用上矩陣鍵盤。
在這裡插入圖片描述
八、對本實驗過程及方法、手段的改進建議:
因為ISE的功能和ACTIVE-VHDL的功能差異,(ACTIVE-VHDL只是編譯環境而ISE功能更為強大)我們可以直接在ISE上新增模組程式碼,然後直接編譯模擬波形。我們以綜合設計門程式碼為例:

1.在ISE上直接建立新的VHDL工程。
在這裡插入圖片描述
2.設定模型埠以及實體名稱,構造體名稱。
在這裡插入圖片描述
3.新增程式碼,編譯Synthesze-XST。
在這裡插入圖片描述

4.編譯正確後選定vhdl檔案為其新增新的test bench激勵模擬檔案,並進行模擬輸出波形。
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
5.觀察波形驗證功能,成功後直接在ISE上進行設計實現等步驟,此處不再一一列舉。
在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述

由圖可知,當a=0,b=0時,Z(0)是與門輸出,為0,Z(1)是與非閘電路,為1,Z(2)是或閘電路,為0,Z(3)是或非閘電路,輸出為1,Z(4)異或閘電路,為0,Z(5)是異或非閘電路,為1,故波形輸出由高到低為101010

**結論:**通過上述的模型設計,我們可以把之前設計的資料選擇器,加法器,分頻器等用同樣的方式在ISE上編寫模擬:(用test bench在ISE上加激勵)也意味著整體的程式碼編寫設計,模擬,綜合,生成bit檔案都可以在ISE上直接完成,可以提高效率,不過也要看對軟體的掌握程度,ACTIVE-VHDL編譯環境會舒適,圖形化模擬加激勵的方式也很便利,所以用ACTIVE-VHDL和ISE協同設計還是直接用ISE設計對不同的人和需求也不一樣,但是對於我而言,通過這次實驗又多掌握了一種用ISE內的模擬工具來模擬的方法,加深對硬體設計的理解。