FPGA最小系統之:實例1 在Altera的FPGA開發板上運行第一個FPGA程序
2.5.1 實例的內容及目標
1.實例的主要內容
本節旨在通過給定的工程實例——“蜂鳴器播放梁祝音樂”來熟悉Altera Quartus II軟件的基本操作、設計、編譯及仿真流程。同時使用基于Altera FPGA的開發板將該實例進行下載驗證,完成工程設計的硬件實現,熟悉Altera FPGA開發板的使用及配置方式。
在本節中,將主要講解下面一些知識點。
- Quartus II工程創建及屬性設置。
- Quartus II源文件設計輸入方式。
- Quartus II約束設計。
- Quartus II工程編譯。
- Quartus II功能仿真。
- Quartus II時序仿真。
- Quartus II硬件下載。
通過這些知識點,按照下面提供的訓練流程,讀者可以迅速地掌握使用Quartus II軟件進行FPGA開發的方法。
2.實例目標
通過詳細的流程講解,讀者應達到下面的目標。
- 熟悉Quartus II軟件的操作環境。
- 熟悉Quartus II軟件開發FPGA的基本流程。
- 可獨立使用Quartus II軟件開發新工程。
2.5.2 平臺簡介
本實例基于紅色颶風II代Altera板,在此開發板上集成了Altera的Cyclone一代FPGA及相關的豐富外設資源。
此開發板更加詳細的信息、擴展附件及使用方法,可以到紅色颶風的官方網站:http://www.fpgadev.com獲取更多的信息。
本實例將在這個開發板上對Altera的FPGA設計流程做一個全面的介紹,依照此例程的流程便可在該開發板上運行一個FPGA程序。如圖2.29所示為此開發板的外觀圖。
圖2.29 紅色颶風II代Altera板外觀圖
2.5.3 實例詳解
本節將使用圖解的方式將整個流程一步一步展現給讀者,使讀者能夠輕松掌握Quartus II的開發流程。
1.工程創建及屬性設置
(1)啟動Quartus II軟件。
安裝Quartus II軟件后,在桌面或者程序組中啟動Quartus II軟件。
(2)打開新工程向導。
啟動軟件后,選擇“File”菜單的“New Project Wizard”選項,打開新建工程向導,如圖2.30所示。在新建工程向導的 “介紹”頁面中,單擊“Next”按鈕進入下一頁。
(3)設置工程屬性。
如圖2.31所示,在新建工程向導的第一頁對工程工作目錄、工程名稱以及頂層模塊名稱進行設置。
圖2.30 新建工程
圖2.31 設置工程屬性
(4)添加設計文件。
在新建工程向導的第二頁選擇為工程添加設計文件,如圖2.32所示。
圖2.32 添加設計文件
(5)選擇FPGA器件。
在新建工程向導的第三頁,為工程配置相應的器件型號和參數,如圖2.33所示。選取的器件型號將在完全編譯時將工程設計映射到對應的器件邏輯資源上。
圖2.33 選擇器件型號
(6)完成工程創建。
配置完器件屬性后,選擇Quartus II默認的綜合工具、仿真工具及時序分析工具,完成工程的創建。
選擇軟件左側的工程瀏覽器的按鈕來管理已添加的文件。如圖2.34所示,左邊為工程層次窗口,右邊為設計文件窗口。
圖2.34 工程結構窗口
2.設計輸入
(1)添加設計文件。
如果在創建工程時沒有為工程添加設計文件,可以選擇“Project”菜單的“Add/Remove Files in Project”選項,為工程添加設計文件。在本實例中,讀者可向工程添加實例代碼中的liangzhu.v文件。
添加后,在工程瀏覽器中雙擊liangzhu.v圖標,即可查看該Verilog設計文件,如圖2.35所示。
圖2.35 Verilog設計文件
(2)配置器件屬性。
同樣的,如果在創建工程時沒有為工程配置器件型號及屬性,可以在工程瀏覽器的工程實體圖標上單擊右鍵,選擇“Device”選項,為工程配置器件屬性,如圖2.36所示。
若在建立工程時已經配置好,則可單擊“Device Pin Options…”按鈕,進一步設置器件的相關屬性,如圖2.37所示。
圖2.36 器件選擇 圖2.37 器件屬性配置
在如圖2.38所示的對話框中,可對FPGA所使用的配置芯片及未用管腳等進行配置。
圖2.38 指定配置模式
選擇“Unused Pins”選項卡,將不使用的管腳配置為三態,如圖2.39所示。
圖2.39 未用管腳置三態
(3)分析工程。
編寫設計輸入文件后,首先要進行工程分析,目的是為了檢查設計輸入的語法。單擊“Start Analysis Synthesis”按鈕分析工程,如圖2.40所示。
圖2.40 分析工程選項
查看信息欄,修改所有出現的錯誤,直到分析通過,如圖2.41所示。
圖2.41 分析工程結果,沒有報錯
3.約束設計
(1)管腳分配。
管腳分配的作用在于將設計輸入文件的端口與實際的器件進行映射,實現設計輸入模塊端口在實際器件管腳上的實例化。在Quartus II軟件中可以在管腳分配主窗口中對管腳的分配進行設置,如圖2.42所示。
圖2.42 管腳分配
通過工具欄中的快捷按鈕可以幫助用戶快速的進行管腳分配,如圖2.43所示。
通過管腳分配主窗口中的管腳信息可以看到管腳的I/O種類、管腳的序號、Bank所在的位置、I/O使用的電壓標準等,如圖2.44所示。
圖2.43 指定管腳快捷按鈕 圖2.44 管腳信息
(2)其他約束。
除了對工程的管腳進行約束外,Quartus II軟件還允許用戶對其他的一些約束進行設置,例如面積約束、速度約束、時鐘約束、資源約束等。這些約束都屬于較為嚴格的工程設置,在本實戰訓練中無需考慮。
4.編譯工程
(1)完全編譯。
有了完整的設計輸入、完整的約束條件后,就可以對工程進行完全編譯了,如圖2.45所示是完全編譯的選項。
根據工程復雜度的不同,Quartus II在進行完全編譯時所消耗的時間差異也很大。在工程瀏覽器中顯示了編譯的類別及進度,幫助用戶了解編譯的進程。
圖2.45 完全編譯選項 圖2.46 編譯狀態
若在編譯過程中出現錯誤提示,用戶可在信息欄中查看錯誤的信息,修改所有存在的錯誤后重新進行編譯,直到能夠無錯誤地完成編譯,如圖2.47所示。
圖2.47 編譯結果信息欄
(2)編譯報告。
Quartus II編譯結束后,為用戶提供了一個完整而詳細的編譯報告。通過該報告,用戶可以查看工程使用資源的情況及系統可以達到的性能,如圖2.48所示。
5.功能仿真
(1)建立仿真文件。
選擇Quartus II軟件“File”菜單的“New”選項,打開新建其他文件對話框,選擇新建波形圖文件,如圖2.49所示。
圖2.48 編譯結果報告 圖2.49 新建波形圖
(2)添加觀察信號。
用戶可以通過雙擊波形窗口中的空白區域為工程添加需要觀察的信號,如圖2.50所示。
圖2.50 仿真波形窗口
在打開的插入節點或總線對話框中,打開“Node Finder…”(節點查找器),如圖2.51所示。通過節點查找器,用戶可以方便地選擇需要觀察的信號。
圖2.51 插入節點或總線對話框
選擇Filter:“Pins:all”,然后點擊list列出所用輸入/輸出端口,如圖2.52所示。
圖2.52 節點查找器
選中所有信號,單擊按鈕,即可將選中信號加入觀察目標窗口中,如圖2.53所示。
圖2.53 已添加好的信號
(3)設置仿真時間最小間隔。
考慮到硬件環境提供的是50MHz的時鐘,即時鐘周期為20ns,設置“Grid Size”為20ns。選擇“Edit”菜單的“Grid Size”選項進行設置,如圖2.54所示。
(4)設置仿真時間長度。
選擇“Edit”菜單的“End Time”選項,設置仿真時間長度為10ms,如圖2.55所示。
(5)添加激勵信號。
選中sys_clk信號,單擊時鐘按鈕,將該信號設置為時鐘波形,周期為20ns,如圖2.56所示。此信號代表了系統時鐘。
圖2.55 設置仿真結束時間 圖2.56 設置時鐘
選中rst_n信號,單擊高電平按鈕,將該信號設置為1。此信號代表了復位信號。
添加激勵信號后,選擇保存文件,此時的波形如圖2.57所示。
圖2.57 以設置好的輸入波形
(6)生成功能仿真網表。
選擇“Tools”菜單的“Simulator Tool”選項,打開仿真器,如圖2.58所示。
將仿真器的仿真模式設置為“Functional”(功能仿真),如圖2.59所示。
圖2.58 仿真器選項 圖2.59 仿真對話框
單擊“Generate Functional Simulation Netlist”按鈕產生仿真網表。仿真網表是將工程設計文件進行編譯及映射后生成的用于進行仿真的文件,仿真器根據仿真網表進行仿真,直接反應了工程設計文件的真實情況。
(7)開始功能仿真。
單擊“Start”按鈕開始進行功能仿真,如圖2.60所示,可以看到仿真的進度,根據工程的復雜度,仿真過程所消耗的時間也有所不同。
圖2.60 仿真進度
仿真完成后單擊“open”按鈕打開仿真結果,如圖2.61所示。
圖2.61 仿真波形結果
6.時序仿真
功能仿真后,如果波形沒有問題,開始做時序仿真,檢查波形延時對設計是否有影響。
選擇“Tools”菜單的“Simulator Tool”選項,打開仿真器,選擇仿真模式為“Timing”,即時序仿真模式,如圖2.62所示。
圖2.62 選擇時序仿真
單擊“Start”按鈕,開始時序仿真。時序仿真比功能仿真要慢一些。
仿真完成后,查看仿真結果。通過波形可以看到產生了7.06ns的延時,如圖2.63所示。
圖2.63 查看仿真結果
可以看到,功能仿真并不包含延遲,而時序仿真則會根據具體的器件參數配置及資源使用情況將延遲仿真出來。功能仿真主要用于驗證工程設計文件邏輯的正確性,而時序仿真更能體現真實的硬件運行過程中設計文件的執行過程。
7.下載程序
仿真驗證結束后,用戶就可以將工程下載到實際的開發板上進行驗證了。
選擇“Tools”菜單的“Programmer”選項,打開下載器界面,如圖2.64所示。
圖2.64 下載界面
首先單擊“Hardware Setup”按鈕,選擇下載電纜,如ByteBlasterII(LPT1),即打印機接口下載線,然后選擇下載模式為JTAG(在線調試)模式或者AS(固化至EPCS配置芯片)模式,并選擇對應的下載文件。
連接好下載電纜后,選中“Program/Configure”即可下載。
8.結果檢驗
下載結束后,用戶應該可以在開發板的蜂鳴器上聽到演奏的梁祝樂曲。如果采用的是JTAG下載模式,那么將開發板斷電后,重新上電,則樂曲不會再繼續演奏;若使用的是AS下載模式,則樂曲還會再繼續演奏。
若下載后沒有聽到樂曲,用戶應檢查幾個主要容易出問題的步驟。例如,設計輸入是否完整,管腳是否分配,下載電纜是否正確連接等。
2.5.4 小結
上述流程就是一個完整的FPGA設計流程。雖然此實例實現的功能比較簡單,但對于初學者來說,是一個不錯的入門實例。其主要目的是讓初學者對FPGA的設計有一個初步的了解。通過該實例來熟悉Quartus II軟件的使用,為今后的學習打下基礎。
在實際的FPGA設計中,在每個階段都會遇到很多問題。為了實現最終的目標,需要充分地利用Quartus II設計軟件。這需要一個比較長時間的學習和積累,希望通過這個實例能讓初學者更快地入門。
評論