3.4串口通信-明德?lián)P至簡設(shè)計(jì)法原理與應(yīng)用(2)
第4節(jié) 綜合工程和上板
4.1?新建工程
打開軟件Quartus?Ⅱ,點(diǎn)擊“File”下拉列表中的New ProjectWzard...新建工程選項(xiàng),如下圖所示。

圖3.4-28Quartus新建工程
然后會(huì)出現(xiàn)Quartus新建工程介紹,如下圖所示,直接點(diǎn)擊“Next”。

圖3.4-29Quartus新建工程介紹
此時(shí)會(huì)出現(xiàn)的是工程文件夾、工程名、頂層模塊名設(shè)置界面,如圖3.4-30所示。設(shè)置目錄為:D:/mdy_book/uart,工程名和頂層名為uart。這里再次強(qiáng)調(diào),為了避免初學(xué)者使用過程中出現(xiàn)報(bào)錯(cuò)情況,強(qiáng)烈建議按照本書的工程名和文件名進(jìn)行設(shè)置,設(shè)置完成后點(diǎn)擊“Next”。

圖3.4-30QUARTUS新建工程設(shè)置名稱
新建工程類型設(shè)置選擇“Empty project”,如下圖所示,然后點(diǎn)擊“Next”。

圖3.4-31QUARTUS新建工程類型
文件添加界面如圖3.4- 32所示,點(diǎn)擊右側(cè)的“Add”按鈕,選擇之前寫好的“uart.v”文件,可以看到界面下方會(huì)顯示出文件,隨后點(diǎn)擊“Next”。

圖3.4-32QUARTUS添加文件
芯片型號(hào)選擇界面如圖3.4- 33所示,選擇“Cyclone?ⅣE”,在芯片型號(hào)選擇處選擇“EP4CE15F23C8”,之后點(diǎn)擊“Next”。

圖3.4-33QUARTUS選擇芯片型號(hào)

圖3.4- 34為QUARTUS
圖3.4-34QUARTUS設(shè)置工具界面不必做任何修改,直接點(diǎn)擊“Next”即可。
下圖可以看到新建工程的匯總情況,點(diǎn)擊“Finish”,完成新建工程。

圖3.4-35QUARTUS新建工程匯總界面
4.2?綜合
新建工程步驟完成后,就會(huì)出現(xiàn)如下所示的QUARTUS界面。

圖3.4-36QUARTUS新建工程后界面
點(diǎn)擊編譯按鈕,可以對(duì)整個(gè)工程進(jìn)行編譯。編譯成功的界面,如圖3.4- 37所示。

圖3.4-37QUARTUS編譯后界面
4.3?配置管腳
下面需要對(duì)相應(yīng)管腳進(jìn)行配置。如下圖所示,在菜單欄中選中“Assignments”,然后選擇“Pin Planner”,就會(huì)彈出配置管腳的窗口。

圖3.4-38QUARTUS配置管腳選項(xiàng)
在配置窗口最下方中的“l(fā)ocation”一列,參考信號(hào)和管腳關(guān)系,按照表3.4- 1中最右兩列配置好FPGA管腳。配置管理來源參見管腳配置環(huán)節(jié),配置結(jié)果如圖3.4- 39所示。配置完成后,關(guān)閉“PinPlanner”,軟件自動(dòng)會(huì)保存管腳配置信息。
表3.4 - 1信號(hào)和管腳關(guān)系


圖3.4-39 QUARTUS配置管腳
4.4?再次綜合
再次打開“QUARTUS”軟件,在菜單欄中選中“Processing”,然后選擇“StartCompilation”,再次對(duì)整個(gè)工程進(jìn)行編譯和綜合,如下圖所示。

圖3.4-40QUARTUS編譯選項(xiàng)
當(dāng)出現(xiàn)如下所示的編譯成功標(biāo)志時(shí),說明編譯綜合成功。

圖3.4-41QUARTUS編譯成功標(biāo)志
4.5?連接開發(fā)板
完成編譯后開始進(jìn)行上板調(diào)試操作,按照下圖的方式,將下載器接入電腦USB接口,接上開發(fā)板電源后按下開發(fā)板下方藍(lán)色開關(guān),硬件連接完畢。

圖3.4-42開發(fā)板連接圖
4.6?上板
打開QUARTUS界面,單擊界面中的?,彈出配置界面。點(diǎn)擊“add file”添加“.sof”文件,點(diǎn)擊“Start”,會(huì)在“Progress”出現(xiàn)顯示進(jìn)度。

圖3.4-43QUARTUS界面
當(dāng)進(jìn)度條到100%時(shí)提示成功,即表示上板結(jié)束。

圖3.4-44QUARTUS下載程序界面
4.7 串口調(diào)試
開發(fā)板連接完成后按下電源鍵,隨后打開電腦的設(shè)備管理器,確認(rèn)串口的端口號(hào)。從下圖可以看出,當(dāng)前串口的端口號(hào)為COM3。

圖3.4-45設(shè)備管理器顯示端口號(hào)
前文提供了串口調(diào)試工具下載地址,安裝完成后,打開串口調(diào)試助手,其界面如下圖所示。在操作界面進(jìn)行設(shè)置:在串口選項(xiàng)中選擇端口號(hào),這里要注意端口號(hào)的選擇需要與設(shè)備管理器中端口號(hào)顯示一致,即為“COM3”;波特率選項(xiàng)選擇“9600”;校驗(yàn)位選項(xiàng)選擇“無校驗(yàn)位”;數(shù)據(jù)位選項(xiàng)選擇“8”;停止位選項(xiàng)選擇“2”;注意一定要勾選“十六進(jìn)制顯示”和“十六進(jìn)制發(fā)送”兩個(gè)選項(xiàng):

圖3.4-46串口調(diào)試助手界面
設(shè)置好串口助手后,就可以觀察發(fā)送數(shù)據(jù)的現(xiàn)象。在發(fā)送數(shù)據(jù)欄輸入相應(yīng)的數(shù)據(jù)(將8個(gè)LED燈對(duì)應(yīng)的8位二進(jìn)制數(shù)轉(zhuǎn)化為十六進(jìn)制),然后點(diǎn)擊手動(dòng)發(fā)送,即可在開發(fā)板上觀察到相應(yīng)的現(xiàn)象??梢試L試發(fā)送不同的指令,看是否可以得到相應(yīng)的LED燈變化效果。特別要注意的是,指令的順序應(yīng)與小燈亮的順序相同,如果兩者不同,則需檢查指令順序是否發(fā)生輸入錯(cuò)誤。
第5節(jié)?簡化版步驟分享
同樣這里也會(huì)分享簡化版的步驟,方便復(fù)習(xí)以及反復(fù)實(shí)操。
5.1?設(shè)計(jì)實(shí)現(xiàn)
5.1.1頂層信號(hào)
新建目錄:D:mdy_bookuart。在該目錄中,新建一個(gè)名為uart.v的文件,并用GVIM打開,開始編寫代碼。
確定頂層信號(hào)。本工程共需要4個(gè)信號(hào),一個(gè)8位信號(hào)led,時(shí)鐘clk,復(fù)位rst_n和串口輸入信號(hào)rx_uart,工程信號(hào)和管腳關(guān)系圖如下:
表3.4 - 1信號(hào)和管腳關(guān)系

寫出頂層信號(hào)代碼:

聲明輸入輸出屬性:

5.1.2信號(hào)設(shè)計(jì)
首先進(jìn)行架構(gòu)設(shè)計(jì),串口時(shí)序圖如下所示:

圖3.4-2串口時(shí)序圖
串口通信實(shí)現(xiàn)架構(gòu)圖如下:

圖3.4-15串口通信實(shí)現(xiàn)架構(gòu)圖【去掉ns】
添加一個(gè)“flag_add”信號(hào),從而滿足計(jì)數(shù)器的加1條件。

圖3.4-17補(bǔ)充加1條件flag_add[去掉ns]
設(shè)計(jì)計(jì)數(shù)器架構(gòu),對(duì)表示1比特位寬長度的計(jì)數(shù)器cnt0進(jìn)行設(shè)計(jì),其代碼如下:

計(jì)算比特個(gè)數(shù)的計(jì)數(shù)器cnt1的設(shè)計(jì)代碼如下:

rx_uart的代碼如下:

flag_add的代碼如下:

led代碼如下:

至此,主體程序完成,下面將module補(bǔ)充完整。
5.1.3信號(hào)定義
定義信號(hào)類型,其中cnt0的信號(hào)定義如下:

add_cnt0?和?end_cnt0?的信號(hào)定義如下:

cnt1?的信號(hào)定義如下:

add_cnt1?和?end_cnt1?的信號(hào)定義如下:

flag_add的信號(hào)定義如下:

rx_uart_ff0、rx_uart_ff1和rx_uart_ff2的信號(hào)定義如下:

至此,整個(gè)工程的代碼的設(shè)計(jì)工作已經(jīng)完成,接下來新建工程,對(duì)代碼進(jìn)行編譯綜合后上板查看現(xiàn)象。
5.2?綜合工程和上板
5.2.1新建工程
打開軟件Quartus?Ⅱ,點(diǎn)擊“File”下拉列表中的New ProjectWzard...新建工程選項(xiàng)。

圖3.4-28Quartus新建工程
直接點(diǎn)擊“Next”:

圖3.4-29Quartus新建工程介紹
此時(shí)出現(xiàn)的是工程文件夾、工程名、頂層模塊名設(shè)置界面,完成設(shè)置后點(diǎn)擊“Next”:

圖?3.4 - 43QUARTUS新建工程設(shè)置名稱
選擇“Empty project”后點(diǎn)擊“Next”。

圖3.4-31QUARTUS新建工程類型
點(diǎn)擊右側(cè)的“Add”按鈕,選擇“huxiled.v”文件完成添加后點(diǎn)擊“Next”。

圖3.4-32QUARTUS添加文件
“Device family”選項(xiàng)中選擇“Cyclone?ⅣE”,“Available devices”選項(xiàng)下選擇“EP4CE15F23C8”,隨后點(diǎn)擊“Next”。

圖3.4-33QUARTUS選擇芯片型號(hào)
直接點(diǎn)擊“Next”。

圖3.4-34QUARTUS設(shè)置工具界面
點(diǎn)擊“Finish”,完成新建工程。

圖3.4-35QUARTUS新建工程匯總界面
5.2.2綜合
新建工程后界面如下圖所示,點(diǎn)擊“編譯”。

圖3.4-36QUARTUS新建工程后界面
編譯成功如下圖所示。

圖3.4-37QUARTUS編譯后界面
5.2.3配置管腳
在菜單欄中點(diǎn)擊“Assignments”后點(diǎn)擊“Pin Planner”,隨后會(huì)彈出配置管腳的窗口。

圖3.4-38QUARTUS配置管腳選項(xiàng)
在配置窗口“l(fā)ocation”根據(jù)信號(hào)和管腳關(guān)系配置管腳,配置完成關(guān)閉“Pin Planner”即可自動(dòng)保存配置信息。

圖3.4-39QUARTUS配置管腳
表3.4–1?信號(hào)和管腳關(guān)系

5.2.4再次綜合
打開“QUARTUS”軟件,在菜單欄中選擇“Processing”,點(diǎn)擊“StartCompilation”再次進(jìn)行綜合。

圖3.4-40QUARTUS編譯選項(xiàng)
出現(xiàn)?QUARTUS?編譯成功標(biāo)志則表示編譯成功。

圖3.4-41QUARTUS編譯成功標(biāo)志
5.2.5連接開發(fā)板
下載器接入電腦?USB?接口,開發(fā)板接上電源后按下藍(lán)色開關(guān)。

圖3.4-42開發(fā)板連接圖
5.2.6上板
打開QUARTUS界面,單擊“?”圖標(biāo)后彈出配置界面。點(diǎn)擊“add file”添加“.sof”文件后點(diǎn)擊“Start”,在“Progress”中會(huì)顯示當(dāng)前進(jìn)度。

圖3.4-43QUARTUS界面
如下圖所示,進(jìn)度條顯示為100%,提示成功,即表示上板結(jié)束。

圖3.4-44QUARTUS下載程序界面
5.2.7串口調(diào)試
開發(fā)板連接完成后,按下開發(fā)板的電源鍵,打開電腦的設(shè)備管理器并確認(rèn)串口的端口號(hào),如下圖所示:

圖3.4-45設(shè)備管理器顯示端口號(hào)
下載本書提供的串口調(diào)試工具后,打開串口調(diào)試助手。對(duì)串口調(diào)試助手進(jìn)行設(shè)置:選擇端口號(hào)、波特率選“9600”、校驗(yàn)位選“無校驗(yàn)位”、數(shù)據(jù)位選“8”、停止位選“2”、一定要勾選“十六進(jìn)制顯示”和“十六進(jìn)制發(fā)送”兩個(gè)選項(xiàng)。

圖3.4-46串口調(diào)試助手界面
在發(fā)送數(shù)據(jù)欄輸入相應(yīng)的數(shù)據(jù)(將8個(gè)LED燈對(duì)應(yīng)的8位二進(jìn)制數(shù)轉(zhuǎn)化為十六進(jìn)制)后點(diǎn)擊手動(dòng)發(fā)送,即可在開發(fā)板上觀察現(xiàn)象。
第6節(jié)?擴(kuò)展練習(xí)
至此整個(gè)串口通信的設(shè)計(jì)就分享完畢了。在學(xué)會(huì)整個(gè)設(shè)計(jì)之后可以展開思考,嘗試發(fā)送不同的指令,看是否可以得到相應(yīng)的LED燈變化效果。在基于原理不變的情況下多做一些嘗試,這樣可以更深刻的掌握案例,也歡迎有更好思路和想法的同學(xué)前往至簡設(shè)計(jì)法論壇進(jìn)行討論。