加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

FPGA最小系統(tǒng)之:實(shí)例1 在Altera的FPGA開發(fā)板上運(yùn)行第一個FPGA程序

2013/08/15
2
閱讀需 16 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

?

2.5.1? 實(shí)例的內(nèi)容及目標(biāo)

1.實(shí)例的主要內(nèi)容

本節(jié)旨在通過給定的工程實(shí)例——“蜂鳴器播放梁祝音樂”來熟悉Altera Quartus II軟件的基本操作、設(shè)計(jì)、編譯及仿真流程。同時使用基于Altera FPGA開發(fā)板將該實(shí)例進(jìn)行下載驗(yàn)證,完成工程設(shè)計(jì)的硬件實(shí)現(xiàn),熟悉Altera FPGA開發(fā)板的使用及配置方式。

在本節(jié)中,將主要講解下面一些知識點(diǎn)。

  • Quartus II工程創(chuàng)建及屬性設(shè)置。
  • Quartus II源文件設(shè)計(jì)輸入方式。
  • Quartus II約束設(shè)計(jì)。
  • Quartus II工程編譯。
  • Quartus II功能仿真。
  • Quartus II時序仿真。
  • Quartus II硬件下載。

通過這些知識點(diǎn),按照下面提供的訓(xùn)練流程,讀者可以迅速地掌握使用Quartus II軟件進(jìn)行FPGA開發(fā)的方法。

2.實(shí)例目標(biāo)

通過詳細(xì)的流程講解,讀者應(yīng)達(dá)到下面的目標(biāo)。

  • 熟悉Quartus II軟件的操作環(huán)境。
  • 熟悉Quartus II軟件開發(fā)FPGA的基本流程。
  • 可獨(dú)立使用Quartus II軟件開發(fā)新工程。

2.5.2? 平臺簡介

本實(shí)例基于紅色颶風(fēng)II代Altera板,在此開發(fā)板上集成了Altera的Cyclone一代FPGA及相關(guān)的豐富外設(shè)資源。

此開發(fā)板更加詳細(xì)的信息、擴(kuò)展附件及使用方法,可以到紅色颶風(fēng)的官方網(wǎng)站:https://www.fpgadev.com獲取更多的信息。

本實(shí)例將在這個開發(fā)板上對Altera的FPGA設(shè)計(jì)流程做一個全面的介紹,依照此例程的流程便可在該開發(fā)板上運(yùn)行一個FPGA程序。如圖2.29所示為此開發(fā)板的外觀圖。

?

圖2.29? 紅色颶風(fēng)II代Altera板外觀圖

?

2.5.3? 實(shí)例詳解

本節(jié)將使用圖解的方式將整個流程一步一步展現(xiàn)給讀者,使讀者能夠輕松掌握Quartus II的開發(fā)流程。

1.工程創(chuàng)建及屬性設(shè)置

(1)啟動Quartus II軟件。

安裝Quartus II軟件后,在桌面或者程序組中啟動Quartus II軟件。

(2)打開新工程向?qū)А?/p>

啟動軟件后,選擇“File”菜單的“New Project Wizard”選項(xiàng),打開新建工程向?qū)В鐖D2.30所示。在新建工程向?qū)У?“介紹”頁面中,單擊“Next”按鈕進(jìn)入下一頁。

(3)設(shè)置工程屬性。

如圖2.31所示,在新建工程向?qū)У牡谝豁搶こ坦ぷ髂夸?、工程名稱以及頂層模塊名稱進(jìn)行設(shè)置。

圖2.30? 新建工程

?

??? 圖2.31? 設(shè)置工程屬性

?

(4)添加設(shè)計(jì)文件。

在新建工程向?qū)У牡诙撨x擇為工程添加設(shè)計(jì)文件,如圖2.32所示。

?

圖2.32? 添加設(shè)計(jì)文件

?

(5)選擇FPGA器件。

在新建工程向?qū)У牡谌?,為工程配置相?yīng)的器件型號和參數(shù),如圖2.33所示。選取的器件型號將在完全編譯時將工程設(shè)計(jì)映射到對應(yīng)的器件邏輯資源上。

?

圖2.33? 選擇器件型號

?

(6)完成工程創(chuàng)建。

配置完器件屬性后,選擇Quartus II默認(rèn)的綜合工具、仿真工具及時序分析工具,完成工程的創(chuàng)建。

選擇軟件左側(cè)的工程瀏覽器的按鈕來管理已添加的文件。如圖2.34所示,左邊為工程層次窗口,右邊為設(shè)計(jì)文件窗口。

?

圖2.34? 工程結(jié)構(gòu)窗口

?

2.設(shè)計(jì)輸入

(1)添加設(shè)計(jì)文件。

如果在創(chuàng)建工程時沒有為工程添加設(shè)計(jì)文件,可以選擇“Project”菜單的“Add/Remove Files in Project”選項(xiàng),為工程添加設(shè)計(jì)文件。在本實(shí)例中,讀者可向工程添加實(shí)例代碼中的liangzhu.v文件。

添加后,在工程瀏覽器中雙擊liangzhu.v圖標(biāo),即可查看該Verilog設(shè)計(jì)文件,如圖2.35所示。

?

圖2.35? Verilog設(shè)計(jì)文件

?

(2)配置器件屬性。

同樣的,如果在創(chuàng)建工程時沒有為工程配置器件型號及屬性,可以在工程瀏覽器的工程實(shí)體圖標(biāo)上單擊右鍵,選擇“Device”選項(xiàng),為工程配置器件屬性,如圖2.36所示。

若在建立工程時已經(jīng)配置好,則可單擊“Device & Pin Options…”按鈕,進(jìn)一步設(shè)置器件的相關(guān)屬性,如圖2.37所示。

? ????

圖2.36? 器件選擇?? ????????????????????????圖2.37? 器件屬性配置

?

在如圖2.38所示的對話框中,可對FPGA所使用的配置芯片及未用管腳等進(jìn)行配置。

?

圖2.38? 指定配置模式

?

選擇“Unused Pins”選項(xiàng)卡,將不使用的管腳配置為三態(tài),如圖2.39所示。

?

圖2.39? 未用管腳置三態(tài)

?

(3)分析工程。

編寫設(shè)計(jì)輸入文件后,首先要進(jìn)行工程分析,目的是為了檢查設(shè)計(jì)輸入的語法。單擊“Start Analysis & Synthesis”按鈕分析工程,如圖2.40所示。

圖2.40? 分析工程選項(xiàng)

?

查看信息欄,修改所有出現(xiàn)的錯誤,直到分析通過,如圖2.41所示。

?

圖2.41? 分析工程結(jié)果,沒有報錯

?

3.約束設(shè)計(jì)

(1)管腳分配。

管腳分配的作用在于將設(shè)計(jì)輸入文件的端口與實(shí)際的器件進(jìn)行映射,實(shí)現(xiàn)設(shè)計(jì)輸入模塊端口在實(shí)際器件管腳上的實(shí)例化。在Quartus II軟件中可以在管腳分配主窗口中對管腳的分配進(jìn)行設(shè)置,如圖2.42所示。

圖2.42? 管腳分配

?

通過工具欄中的快捷按鈕可以幫助用戶快速的進(jìn)行管腳分配,如圖2.43所示。

通過管腳分配主窗口中的管腳信息可以看到管腳的I/O種類、管腳的序號、Bank所在的位置、I/O使用的電壓標(biāo)準(zhǔn)等,如圖2.44所示。

????

圖2.43? 指定管腳快捷按鈕??????????????????? ?????圖2.44? 管腳信息

?

(2)其他約束。

除了對工程的管腳進(jìn)行約束外,Quartus II軟件還允許用戶對其他的一些約束進(jìn)行設(shè)置,例如面積約束、速度約束、時鐘約束、資源約束等。這些約束都屬于較為嚴(yán)格的工程設(shè)置,在本實(shí)戰(zhàn)訓(xùn)練中無需考慮。

4.編譯工程

(1)完全編譯。

有了完整的設(shè)計(jì)輸入、完整的約束條件后,就可以對工程進(jìn)行完全編譯了,如圖2.45所示是完全編譯的選項(xiàng)。

根據(jù)工程復(fù)雜度的不同,Quartus II在進(jìn)行完全編譯時所消耗的時間差異也很大。在工程瀏覽器中顯示了編譯的類別及進(jìn)度,幫助用戶了解編譯的進(jìn)程。

???????????

圖2.45? 完全編譯選項(xiàng)????????????????????????? 圖2.46? 編譯狀態(tài)

?

若在編譯過程中出現(xiàn)錯誤提示,用戶可在信息欄中查看錯誤的信息,修改所有存在的錯誤后重新進(jìn)行編譯,直到能夠無錯誤地完成編譯,如圖2.47所示。

圖2.47? 編譯結(jié)果信息欄

?

(2)編譯報告。

Quartus II編譯結(jié)束后,為用戶提供了一個完整而詳細(xì)的編譯報告。通過該報告,用戶可以查看工程使用資源的情況及系統(tǒng)可以達(dá)到的性能,如圖2.48所示。

5.功能仿真

(1)建立仿真文件。

選擇Quartus II軟件“File”菜單的“New”選項(xiàng),打開新建其他文件對話框,選擇新建波形圖文件,如圖2.49所示。

?? ????????????

圖2.48? 編譯結(jié)果報告??????????????????????????? 圖2.49? 新建波形圖

?

(2)添加觀察信號。

用戶可以通過雙擊波形窗口中的空白區(qū)域?yàn)楣こ烫砑有枰^察的信號,如圖2.50所示。

?

圖2.50? 仿真波形窗口

?

在打開的插入節(jié)點(diǎn)或總線對話框中,打開“Node Finder…”(節(jié)點(diǎn)查找器),如圖2.51所示。通過節(jié)點(diǎn)查找器,用戶可以方便地選擇需要觀察的信號。

圖2.51? 插入節(jié)點(diǎn)或總線對話框

?

選擇Filter:“Pins:all”,然后點(diǎn)擊list列出所用輸入/輸出端口,如圖2.52所示。

圖2.52? 節(jié)點(diǎn)查找器

?

選中所有信號,單擊按鈕,即可將選中信號加入觀察目標(biāo)窗口中,如圖2.53所示。

?

圖2.53? 已添加好的信號

?

(3)設(shè)置仿真時間最小間隔。

考慮到硬件環(huán)境提供的是50MHz的時鐘,即時鐘周期為20ns,設(shè)置“Grid Size”為20ns。選擇“Edit”菜單的“Grid Size”選項(xiàng)進(jìn)行設(shè)置,如圖2.54所示。

?

(4)設(shè)置仿真時間長度。

選擇“Edit”菜單的“End Time”選項(xiàng),設(shè)置仿真時間長度為10ms,如圖2.55所示。

(5)添加激勵信號。

選中sys_clk信號,單擊時鐘按鈕,將該信號設(shè)置為時鐘波形,周期為20ns,如圖2.56所示。此信號代表了系統(tǒng)時鐘。

??? ? ? ?? ??

圖2.55? 設(shè)置仿真結(jié)束時間???????????????? 圖2.56? 設(shè)置時鐘

?

選中rst_n信號,單擊高電平按鈕,將該信號設(shè)置為1。此信號代表了復(fù)位信號。

添加激勵信號后,選擇保存文件,此時的波形如圖2.57所示。

圖2.57? 以設(shè)置好的輸入波形

?

(6)生成功能仿真網(wǎng)表。

選擇“Tools”菜單的“Simulator Tool”選項(xiàng),打開仿真器,如圖2.58所示。

將仿真器的仿真模式設(shè)置為“Functional”(功能仿真),如圖2.59所示。

? ? ? ? ? ?

圖2.58? 仿真器選項(xiàng)???????????????????????????? 圖2.59? 仿真對話框

?

單擊“Generate Functional Simulation Netlist”按鈕產(chǎn)生仿真網(wǎng)表。仿真網(wǎng)表是將工程設(shè)計(jì)文件進(jìn)行編譯及映射后生成的用于進(jìn)行仿真的文件,仿真器根據(jù)仿真網(wǎng)表進(jìn)行仿真,直接反應(yīng)了工程設(shè)計(jì)文件的真實(shí)情況。

(7)開始功能仿真。

單擊“Start”按鈕開始進(jìn)行功能仿真,如圖2.60所示,可以看到仿真的進(jìn)度,根據(jù)工程的復(fù)雜度,仿真過程所消耗的時間也有所不同。

圖2.60? 仿真進(jìn)度

?

仿真完成后單擊“open”按鈕打開仿真結(jié)果,如圖2.61所示。

?

圖2.61? 仿真波形結(jié)果

?

6.時序仿真

功能仿真后,如果波形沒有問題,開始做時序仿真,檢查波形延時對設(shè)計(jì)是否有影響。

選擇“Tools”菜單的“Simulator Tool”選項(xiàng),打開仿真器,選擇仿真模式為“Timing”,即時序仿真模式,如圖2.62所示。

?

圖2.62? 選擇時序仿真

?

單擊“Start”按鈕,開始時序仿真。時序仿真比功能仿真要慢一些。

仿真完成后,查看仿真結(jié)果。通過波形可以看到產(chǎn)生了7.06ns的延時,如圖2.63所示。

?

圖2.63? 查看仿真結(jié)果

?

可以看到,功能仿真并不包含延遲,而時序仿真則會根據(jù)具體的器件參數(shù)配置及資源使用情況將延遲仿真出來。功能仿真主要用于驗(yàn)證工程設(shè)計(jì)文件邏輯的正確性,而時序仿真更能體現(xiàn)真實(shí)的硬件運(yùn)行過程中設(shè)計(jì)文件的執(zhí)行過程。

7.下載程序

仿真驗(yàn)證結(jié)束后,用戶就可以將工程下載到實(shí)際的開發(fā)板上進(jìn)行驗(yàn)證了。

選擇“Tools”菜單的“Programmer”選項(xiàng),打開下載器界面,如圖2.64所示。

?

圖2.64? 下載界面

?

首先單擊“Hardware Setup”按鈕,選擇下載電纜,如ByteBlasterII(LPT1),即打印機(jī)接口下載線,然后選擇下載模式為JTAG(在線調(diào)試)模式或者AS(固化至EPCS配置芯片)模式,并選擇對應(yīng)的下載文件。

連接好下載電纜后,選中“Program/Configure”即可下載。

8.結(jié)果檢驗(yàn)

下載結(jié)束后,用戶應(yīng)該可以在開發(fā)板的蜂鳴器上聽到演奏的梁祝樂曲。如果采用的是JTAG下載模式,那么將開發(fā)板斷電后,重新上電,則樂曲不會再繼續(xù)演奏;若使用的是AS下載模式,則樂曲還會再繼續(xù)演奏。

若下載后沒有聽到樂曲,用戶應(yīng)檢查幾個主要容易出問題的步驟。例如,設(shè)計(jì)輸入是否完整,管腳是否分配,下載電纜是否正確連接等。

2.5.4? 小結(jié)

上述流程就是一個完整的FPGA設(shè)計(jì)流程。雖然此實(shí)例實(shí)現(xiàn)的功能比較簡單,但對于初學(xué)者來說,是一個不錯的入門實(shí)例。其主要目的是讓初學(xué)者對FPGA的設(shè)計(jì)有一個初步的了解。通過該實(shí)例來熟悉Quartus II軟件的使用,為今后的學(xué)習(xí)打下基礎(chǔ)。

在實(shí)際的FPGA設(shè)計(jì)中,在每個階段都會遇到很多問題。為了實(shí)現(xiàn)最終的目標(biāo),需要充分地利用Quartus II設(shè)計(jì)軟件。這需要一個比較長時間的學(xué)習(xí)和積累,希望通過這個實(shí)例能讓初學(xué)者更快地入門。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

華清遠(yuǎn)見(www.farsight.com.cn)是國內(nèi)領(lǐng)先嵌入師培訓(xùn)機(jī)構(gòu),2004年注冊于中國北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營分公司。華清遠(yuǎn)見除提供嵌入式相關(guān)的長期就業(yè)培訓(xùn)、短期高端培訓(xùn)、師資培訓(xùn)及企業(yè)員工內(nèi)訓(xùn)等業(yè)務(wù)外,其下屬研發(fā)中心還負(fù)責(zé)嵌入式、Android及物聯(lián)網(wǎng)方向的教學(xué)實(shí)驗(yàn)平臺的研發(fā)及培訓(xùn)教材的出版,截止目前為止已公開出版70余本嵌入式/移動開發(fā)/物聯(lián)網(wǎng)相關(guān)圖書。企業(yè)理念:專業(yè)始于專注 卓識源于遠(yuǎn)見。企業(yè)價值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。