可編程邏輯器件及應(yīng)用實(shí)驗(yàn)指導(dǎo)書(shū)(quartus2)_第1頁(yè)
可編程邏輯器件及應(yīng)用實(shí)驗(yàn)指導(dǎo)書(shū)(quartus2)_第2頁(yè)
可編程邏輯器件及應(yīng)用實(shí)驗(yàn)指導(dǎo)書(shū)(quartus2)_第3頁(yè)
可編程邏輯器件及應(yīng)用實(shí)驗(yàn)指導(dǎo)書(shū)(quartus2)_第4頁(yè)
可編程邏輯器件及應(yīng)用實(shí)驗(yàn)指導(dǎo)書(shū)(quartus2)_第5頁(yè)
已閱讀5頁(yè),還剩109頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、I/O口FPGA對(duì)應(yīng)管腳I/O口FPGA對(duì)應(yīng)管腳I/O口FPGA對(duì)應(yīng)管腳IO143IO2075IO28113IO239IO2177IO31120IO366IO2285IO14135IO752IO2387IO15141IO850IO24101IO16137IO934IO25104IO171IO1071IO27112IO187IO1911CLK22、24CLK塊10可編程邏輯器件應(yīng)用實(shí) 驗(yàn) 指 導(dǎo) 書(shū)電子科學(xué)與技術(shù)專業(yè)組目 錄實(shí)驗(yàn)一用原理圖法設(shè)計(jì)一個(gè)38譯碼器組合電路2實(shí)驗(yàn)二用原理圖設(shè)計(jì)方法設(shè)計(jì)一個(gè)觸發(fā)器22實(shí)驗(yàn)三、用VHDL語(yǔ)言設(shè)計(jì)7段數(shù)碼管控制接口26實(shí)驗(yàn)四、用VHDL語(yǔ)言和原理圖設(shè)計(jì)方法混合

2、設(shè)計(jì)一個(gè)全加器33實(shí)驗(yàn)五、用VHDL語(yǔ)言和原理圖設(shè)計(jì)方法混合設(shè)計(jì)一個(gè)簡(jiǎn)易時(shí)鐘電路39實(shí)驗(yàn)六、用VHDL語(yǔ)言和原理圖設(shè)計(jì)方法混合設(shè)計(jì)一個(gè)計(jì)數(shù)譯碼顯示電路48實(shí)驗(yàn)七用VHDL語(yǔ)言和原理圖設(shè)計(jì)方法混合設(shè)計(jì)一個(gè)點(diǎn)陣控制接口電路59實(shí)驗(yàn)八、利用可編程邏輯器件設(shè)計(jì)一個(gè)ROM64實(shí)驗(yàn)九、利用可編程邏輯器件設(shè)計(jì)一個(gè)FIFO74實(shí)驗(yàn)十、利用可編程邏輯器件設(shè)計(jì)一個(gè)步進(jìn)電機(jī)控制接口電路81實(shí)驗(yàn)十一、利用可編程邏輯器件設(shè)計(jì)一個(gè)D/A控制接口電路86實(shí)驗(yàn)十二、利用可編程邏輯器件設(shè)計(jì)一個(gè)A/D控制接口電路99實(shí)驗(yàn)一用原理圖法設(shè)計(jì)一個(gè)38譯碼器組合電路一、實(shí)驗(yàn)?zāi)康?.通過(guò)一個(gè)簡(jiǎn)單的38譯碼器的設(shè)計(jì),讓學(xué)生掌握組合邏輯電路的

3、設(shè)計(jì)方法。2.掌握組合邏輯電路的靜態(tài)測(cè)試方法。3.初步了解可編程器件設(shè)計(jì)的全過(guò)程。二、實(shí)驗(yàn)器材1.臺(tái)式計(jì)算機(jī) 1臺(tái)。 2.可編程邏輯邏輯器件實(shí)驗(yàn)軟件1套。3.下載電纜一套。 4.示波器一臺(tái)。三、實(shí)驗(yàn)說(shuō)明1臺(tái)式計(jì)算機(jī)用于向可編程邏輯邏輯器件實(shí)驗(yàn)軟件提供編程、仿真、下載的平臺(tái),供用戶使用。2可編程邏輯邏輯器件實(shí)驗(yàn)軟件向原理圖的設(shè)計(jì)提供平臺(tái),并將調(diào)試好的原理圖下載到可編程邏輯邏輯器件中。3下載電纜是可編程邏輯器件軟件和可編程邏輯邏輯器件之間的接口電纜,為了便于區(qū)別,用不同顏色導(dǎo)線區(qū)分下載電纜的電源、地和信號(hào),一般用紅色導(dǎo)線接電源,用黑色導(dǎo)線接地。4示波器用于觀察可編程邏輯器件執(zhí)行程序時(shí)輸出信號(hào)的變化

4、。四、實(shí)驗(yàn)原理說(shuō)明3線-8線譯碼器具有將一組三位二進(jìn)制代碼翻譯為相對(duì)應(yīng)的輸出信號(hào)的電路特點(diǎn)。輸出信號(hào)D7D0的表達(dá)式功能表輸入輸 出CBAD7D6D5D4D3D2D1D0Y000000000001Y100100000010Y201000000100Y301100001000Y410000010000Y510100100000Y611001000000Y711110000000五、實(shí)驗(yàn)內(nèi)容和步驟1、建立工程(1)軟件的啟動(dòng):打開(kāi)Quartus II軟件,如圖1-1所示。圖1-1(2)啟動(dòng)File菜單,點(diǎn)擊New Project Wizard,如下圖1-2所示。圖1-2(3)進(jìn)入向?qū)?,選擇Next

5、,如圖1-3所示。圖1-3(4)設(shè)置保存路徑,以及項(xiàng)目名稱,項(xiàng)目名稱為decode3_8,如圖1-4所示。圖1-4(5)點(diǎn)擊Next,選擇器件類型及型號(hào)(實(shí)驗(yàn)箱使用的CPLD的是Altera 公司CycloneIII系列EP3C10E144C8型),如圖1-5所示。圖1-5(6)點(diǎn)擊Next,直至Finish。建立好的工程如圖1-6所示圖1-62、建立文件(1)啟動(dòng)FileNew菜單,彈出設(shè)計(jì)輸入選擇窗口,如下圖1-7所示。或點(diǎn)擊圖1-8主菜單中的空白圖標(biāo),進(jìn)入新建文件狀態(tài)。圖1-7圖1-8(2)選擇Blockdiagram/Schematic File,單擊ok按鈕,打開(kāi)原理圖編輯器,進(jìn)入原

6、理圖設(shè)計(jì)輸入電路編輯狀態(tài),如下圖1-8所示:圖1-93、設(shè)計(jì)的輸入(1)放置一個(gè)器件在原理圖上在原理圖的空白處雙擊鼠標(biāo)左鍵,出現(xiàn)窗口如圖1-11;也可單擊鼠標(biāo)右鍵,出現(xiàn)窗口如圖1-10,選擇“Insert-Symbol as Block”,出現(xiàn)窗口如圖1-10,進(jìn)入器件選擇輸入窗口。圖1-10圖:1-11(2)在“Libraries”提示處(光標(biāo)處)用鼠標(biāo)雙擊庫(kù)文件(在提示窗“primitives”里的各個(gè)文件),在提示窗“l(fā)ogic”中雙擊元件或選中元件按下OK即可將該器件放置到原理圖中。(3)如果安放相同元件,只要按住Ctrl鍵,同時(shí)用鼠標(biāo)拖動(dòng)該元件復(fù)制即可。(4)一個(gè)完整的電路包括:輸入

7、端口INPUT、電路元器件集合、輸出端口OUTPUT。(5)輸入輸出引腳在在提示窗“primitives”里的pin中添加引腳;(6)下圖1-12為3-8譯碼器元件安放結(jié)果。圖1-12(7)添加連線到器件的管腳上:把鼠標(biāo)移到元件引腳附近,則鼠標(biāo)光標(biāo)自動(dòng)由箭頭變?yōu)槭郑醋∈髽?biāo)右鍵拖動(dòng),即可畫(huà)出連線。3-8譯碼器原理圖如圖1-13所示。圖1-134、標(biāo)記輸入/輸出端口屬性分別雙擊輸入端口的“PIN-NAME”,當(dāng)變成黑色時(shí),即可輸入標(biāo)記符并回車確認(rèn);輸出端口標(biāo)記方法類似。本譯碼器的三輸入斷分別標(biāo)記為:A、B、C;其八輸出端分別為:D0、D1、D2、D3、D4、D5、D6、d7。如下圖1-14所示

8、。圖1-145、保存原理圖單擊保存按鈕圖標(biāo),對(duì)于新建文件,出現(xiàn)類似文件管理器的圖框,請(qǐng)選擇保存路徑、文件名稱保存原理圖,原理圖的擴(kuò)展名為.bdf,本實(shí)驗(yàn)中取名為decode3_8.bdf。至此,完成了一個(gè)電路的原理圖設(shè)計(jì)輸入的整個(gè)過(guò)程。6、功能仿真首先我們介紹功能仿真,即前仿真。Quartus II軟件支持電路的功能仿真(或稱前仿真)和時(shí)序分析(或稱后仿真)。眾所周知,開(kāi)發(fā)人員在進(jìn)行電路設(shè)計(jì)時(shí),非常希望有比較先進(jìn)的高效的仿真工具出現(xiàn),這將為你的設(shè)計(jì)過(guò)程節(jié)約很多時(shí)間和成本。由于EDA工具的出現(xiàn),和它所提供的強(qiáng)大的(在線)仿真功能迅速地得到了電子工程設(shè)計(jì)人員的青睞,這也是當(dāng)今EDA(CPLD/FP

9、GA)技術(shù)非?;鸨┑脑蛑弧O旅婢蚎uartus II軟件的仿真功能的基本應(yīng)用在本實(shí)驗(yàn)中作一初步介紹,在以后的實(shí)驗(yàn)例程中將不在一一介紹。(1)編譯與仿真選擇選擇Quartus II Processing菜單,進(jìn)入編譯功能。點(diǎn)擊工具欄,如下圖1-15。圖1-15(2)打開(kāi)波形編輯器。如果編譯無(wú)誤,選擇菜單File中的New項(xiàng),在New窗口中選擇Other Files中的Vector Waveform File,如圖1-16、圖1-17所示。圖1-16圖1-17在Name窗口點(diǎn)擊右鍵添加需要仿真的引腳,如下圖1-18所示。圖1-18點(diǎn)擊 Insert Node or Bus. 彈出如圖1-19窗

10、口。圖1-19點(diǎn)擊Node Finder如下圖1-20,點(diǎn)擊List,點(diǎn)擊添加全部,如下圖1-21所示,點(diǎn)擊OK,完成添加。圖1-20圖1-21準(zhǔn)備為電路輸入端口添加激勵(lì)波形,如下圖1-22所示。選中欲添加信號(hào)的管腳,窗口左邊的信號(hào)源即刻變成可操作狀態(tài)。根據(jù)實(shí)際電路要求選擇信號(hào)源種類,在本電路中我們選擇時(shí)鐘信號(hào)就可以滿足仿真要求。圖1-22設(shè)置時(shí)鐘信號(hào)起止時(shí)間,時(shí)鐘周期,點(diǎn)擊OK,圖1-23圖1-23保存波形文件,保存路徑必須和工程文件一致。(3)仿真器參數(shù)設(shè)置。在菜單中選擇Assignment中的settings,在Setting窗口下選擇Simulator Settings,在右側(cè)窗口Si

11、mulation mode選擇functional,如圖1-24所示圖1-24(4)設(shè)置完成后,需要點(diǎn)擊ProcessingGenerate Functional Simulation Netlist(目的是生成網(wǎng)絡(luò)表為仿真做準(zhǔn)備),如下圖1-25所示圖1-25(5)點(diǎn)擊啟動(dòng)仿真,得到仿真波形。仿真波形如圖1-26圖1-267、時(shí)序仿真在實(shí)際器件中信號(hào)往往會(huì)產(chǎn)生延時(shí),為了避免這些延時(shí)對(duì)功能造成不必要的影響,在Quartus II中提供了時(shí)序仿真,雖然不一定能完全仿真實(shí)際情況,但是能夠?qū)σ恍┛梢灶A(yù)見(jiàn)的問(wèn)題進(jìn)行仿真,所以進(jìn)行時(shí)序仿真在EDA設(shè)計(jì)中時(shí)序仿真比不可少。(1)編譯與仿真選擇選擇Quart

12、us II Processing菜單,進(jìn)入編譯功能。點(diǎn)擊主菜單“Processing”,“Start Compilation”,如下圖1-27。圖1-27如果編譯通過(guò)沒(méi)有報(bào)錯(cuò)。這時(shí)下一步做的仿真是時(shí)序仿真,此時(shí)需要在設(shè)置中設(shè)置時(shí)序仿真如下圖1-28 1-29所示。圖1-28圖1-29添加仿真激勵(lì)信號(hào)波形在時(shí)序仿真中,添加仿真激勵(lì)信號(hào)波形和功能仿真方法一樣,可以參照功能仿真設(shè)置方法設(shè)置。注意如果已進(jìn)行過(guò)功能仿真切記不可再次新建波形文件,因?yàn)镼uartus II在一個(gè)項(xiàng)目文件下只支持一個(gè)波形文件仿真,只需打開(kāi)功能仿真時(shí)設(shè)置好的波形文件選擇時(shí)序仿真即可。點(diǎn)擊啟動(dòng)仿真,得到仿真波形,波形如圖1-30。

13、圖1-308、引腳分配 在完成編譯和仿真后,需要對(duì)引腳進(jìn)行配置,這是對(duì)下一步下載程序所做的最后準(zhǔn)備。 (1)點(diǎn)擊Assignments 選擇Pins 進(jìn)行引腳分配,(Quartus II中快捷按鈕為)如圖1-31所示圖1-31(2)彈出引腳分配窗口,如圖1-32所示,具體分配可根據(jù)實(shí)驗(yàn)箱提供的管腳分配說(shuō)明來(lái)分配 (說(shuō)明:實(shí)驗(yàn)中發(fā)現(xiàn)每個(gè)實(shí)驗(yàn)箱I/O口會(huì)出現(xiàn)一些問(wèn)題,因此必須根據(jù)實(shí)際情況來(lái)分配引腳)。分配完成后圖1-33所示,I/O口FPGA對(duì)應(yīng)管腳I/O口FPGA對(duì)應(yīng)管腳I/O口FPGA對(duì)應(yīng)管腳IO143IO2075IO28113IO239IO2177IO31120IO366IO2285IO14

14、135IO752IO2387IO15141IO850IO24101IO16137IO934IO25104IO171IO1071IO27112IO187IO1911CLK22、24CLK塊10圖1-32圖1-33(3)在完成引腳分配以后需要進(jìn)行一次全編譯。9、下載全編譯無(wú)誤后點(diǎn),彈出下載窗口如圖1-34,點(diǎn)擊START,下載到實(shí)驗(yàn)箱。圖1-3410、連線測(cè)試按照引腳分配連接實(shí)驗(yàn)箱,3線-8線譯碼器輸入使用三個(gè)撥碼開(kāi)關(guān)分別代表A、B、C,輸出使用八個(gè)發(fā)光二極管D0-D7。六、實(shí)驗(yàn)報(bào)告要求1 整理實(shí)驗(yàn)結(jié)果,填寫(xiě)實(shí)驗(yàn)報(bào)告。 2 小結(jié)實(shí)驗(yàn)心得體會(huì)。 3 回答思考題3-8譯碼器作用是什么?原理圖實(shí)現(xiàn)方式的

15、流程是什么?實(shí)驗(yàn)二用原理圖設(shè)計(jì)方法設(shè)計(jì)一個(gè)觸發(fā)器一、實(shí)驗(yàn)?zāi)康?、掌握觸發(fā)器功能的測(cè)試方法。2、掌握主從RS觸發(fā)器的組成及工作原理。3、掌握原理圖設(shè)計(jì)方法流程。二、實(shí)驗(yàn)器材1、臺(tái)式計(jì)算機(jī) 1臺(tái)2、可編程邏輯邏輯器件實(shí)驗(yàn)軟件1套3、下載電纜一套4、示波器一臺(tái)三、實(shí)驗(yàn)說(shuō)明1、計(jì)算機(jī)用于向可編程邏輯邏輯器件實(shí)驗(yàn)軟件提供編程、仿真、下載的平臺(tái),供用戶使用。2、可編程邏輯邏輯器件實(shí)驗(yàn)軟件向原理圖的設(shè)計(jì)提供平臺(tái),并將調(diào)試好的原理圖下載到可編程邏輯邏輯器件中。3、下載電纜是可編程邏輯器件軟件和可編程邏輯邏輯器件之間的接口電纜,為了便于區(qū)別,用不同顏色導(dǎo)線區(qū)分下載電纜的電源、地和信號(hào),一般用紅色導(dǎo)線接電源,用黑

16、色導(dǎo)線接地。4、示波器用于觀察可編程邏輯邏輯器件執(zhí)行程序時(shí)輸出信號(hào)的變化四、實(shí)驗(yàn)原理1、主從RS觸發(fā)器特性表CLKRDSDQQ*××××Q010101111000101000110000110×111×五、實(shí)驗(yàn)內(nèi)容和步驟 1、新建工程建立一個(gè)工程名為RS觸發(fā)器的工程文件,如圖2-1所示;圖2-12、建立文件建立原理圖文件,命名為RS.bdf,并保存文件,如圖2-2所示:圖2-23、添加元件,如圖2-3所示圖2-34、將各元件連接起來(lái),如圖2-4所示圖2-45、設(shè)置仿真(1)主從RS觸發(fā)器的功能仿真波形圖如下圖2-5圖2-5(2)主從R

17、S觸發(fā)器的時(shí)序仿真波形圖如下如所示圖2-6圖2-66、 分配引腳,再次編譯,連接試驗(yàn)箱下載觀察實(shí)驗(yàn)結(jié)果六、實(shí)驗(yàn)報(bào)告要求1 整理實(shí)驗(yàn)結(jié)果,填寫(xiě)實(shí)驗(yàn)報(bào)告。2 小結(jié)實(shí)驗(yàn)心得體會(huì)。實(shí)驗(yàn)三、用VHDL語(yǔ)言設(shè)計(jì)7段數(shù)碼管控制接口一、實(shí)驗(yàn)?zāi)康?通過(guò)實(shí)驗(yàn)復(fù)習(xí)可編程邏輯器件開(kāi)發(fā)軟件的圖形設(shè)計(jì)操作流程;2.掌握BCD-七段顯示譯碼器的功能和設(shè)計(jì)方法;3掌握用硬件描述語(yǔ)言的方法設(shè)計(jì)組合邏輯電路BCD-七段顯示譯碼器,4.了解自底向上的設(shè)計(jì)方法。二、實(shí)驗(yàn)器材1、臺(tái)式計(jì)算機(jī) 1臺(tái)2、可編程邏輯邏輯器件實(shí)驗(yàn)軟件1套3、下載電纜一套4、示波器一臺(tái)三、實(shí)驗(yàn)說(shuō)明1、臺(tái)式計(jì)算機(jī)用于向可編程邏輯邏輯器件實(shí)驗(yàn)軟件提供編程、仿真、下載

18、的平臺(tái),供用戶使用。2、可編程邏輯邏輯器件實(shí)驗(yàn)軟件向原理圖的設(shè)計(jì)和硬件描述語(yǔ)言的編程提供平臺(tái),并將調(diào)試好的程序下載到可編程邏輯邏輯器件中。3、下載電纜是可編程邏輯器件軟件和可編程邏輯邏輯器件之間的接口電纜,為了便于區(qū)別,用不同顏色導(dǎo)線區(qū)分下載電纜的電源、地和信號(hào),一般用紅色導(dǎo)線接電源,用黑色導(dǎo)線接地。4、示波器用于觀察可編程邏輯邏輯器件執(zhí)行程序時(shí)輸出信號(hào)的變化四、實(shí)驗(yàn)原理數(shù)碼管是一種比較普遍的顯示模塊,實(shí)質(zhì)上就是8個(gè)發(fā)光二極管,由于其操作方便靈活在實(shí)際工程中應(yīng)用仍比較廣泛,數(shù)碼管分為共陰和共陽(yáng)兩種,共陽(yáng)數(shù)碼管是低電平有效(也就是低電平點(diǎn)亮),而共陰數(shù)碼管則高電平有效。在數(shù)碼管的操作中主要涉及段

19、選和位選,段選主要是控制數(shù)碼管顯示需要的信息,而位選則主要控制哪一位二極管顯示。在本次實(shí)驗(yàn)中采用的是一種共陰數(shù)碼管也就是高電位有效(如顯示0則對(duì)應(yīng)二進(jìn)制編碼是0111111),位選是低電位有效(如第一位數(shù)碼管選通送1110)。因此本次實(shí)驗(yàn)編程也主要是來(lái)操作段選和位選過(guò)程。五、實(shí)驗(yàn)內(nèi)容和步驟1、在實(shí)驗(yàn)中,8位7段數(shù)碼顯示的段選信號(hào)(LED6.0,位選信號(hào)為(LED_C3.0)所以我們?cè)谠O(shè)計(jì)7段數(shù)碼管控制接口時(shí),其位選信號(hào)輸出必須經(jīng)編碼。顯示控制器的引腳圖如圖3-1所示。圖3-12、本次實(shí)驗(yàn)中選擇FPGA片上時(shí)鐘信號(hào),由于片上時(shí)鐘信號(hào)由50MHz的一個(gè)晶振提供,這對(duì)于本次實(shí)驗(yàn)來(lái)說(shuō)頻率過(guò)高,所以需要

20、設(shè)計(jì)一個(gè)分頻器??刂埔_如圖3-2所示。圖3-23、本次實(shí)驗(yàn)中設(shè)計(jì)了分頻模塊和數(shù)碼管顯示控制模塊,最后通過(guò)頂層設(shè)計(jì)思想把各個(gè)模塊連接起來(lái)就構(gòu)成了整個(gè)實(shí)驗(yàn)所需的電路,下面將對(duì)這種設(shè)計(jì)思想的實(shí)際操作過(guò)程做詳細(xì)說(shuō)明,首先我們需要將各個(gè)模塊的功能通過(guò)VHDL代碼實(shí)現(xiàn),如下所示模塊一分頻模塊實(shí)現(xiàn)代碼library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div isport(clk,clr:in std_logic;led_clk:out std_logic); end entity div;arch

21、itecture beh of div issignal counter:integer range 0 to 25000000;signal clk_out:std_logic;beginled_clk<=clk_out;process(clk,clr)beginif(clr=0)thenconnter<=0;elsif(clk='1'and clk'event)thenif(counter=24999999)thencounter<=0;clk_out<=not clk_out;elsecounter<=counter+1;end if

22、;end if;end process;end architecture beh;模塊二數(shù)碼管顯示控制模塊實(shí)現(xiàn)代碼library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity led isport(CLK,CLR:in std_logic;LED:out std_logic_vector(6 downto 0);LED_C:out std_logic_vector(3 downto 0);end entity led;architecture beh of led issignal count_d

23、:std_logic_vector(3 downto 0);signal D:std_logic_vector(6 downto 0);signal count_w:std_logic_vector(1 downto 0);signal W:std_logic_vector(3 downto 0);beginLED<=D;LED_C<=W;process(CLK,RST)beginif(CLR='0')thencount_d<="0000"count_w<="00"elsif(CLK='1' and

24、 CLK'event )thencount_d<=count_d+1;if(count_d="1001")thencount_d<=(others=>'0');count_w<=count_w+1;end if;end if;end process;process(count_d)begincase count_d iswhen"0000"=>D<="0111111"when"0001"=>D<="0000110"when&

25、quot;0010"=>D<="1011011"when"0011"=>D<="1001111"when"0100"=>D<="1100110"when"0101"=>D<="1101101"when"0110"=>D<="1111101"when"0111"=>D<="0000111"when&

26、quot;1000"=>D<="1111111"when"1001"=>D<="1101111"when others=>D<="XXXXXXX"end case;end process;process(count_w)beginif(count_w="00")then W<="1110"elsif(count_w="01")then W<="1101"elsif(count_w

27、="10")then W<="1011"elsif(count_w="11")then W<="0111"elseW<="0000"end if;end process;end architecture beh;4、代碼編寫(xiě)完成后需要將代碼生成電路模塊,操作步驟如圖3-3所示。圖3-35、生成電路模塊后,按照實(shí)驗(yàn)一中所述,建立名為L(zhǎng)ED_DISP的原理圖文件,雙擊空白原理圖彈出原件庫(kù),展開(kāi)Project,可以看到生成的電路模塊,選中點(diǎn)擊OK即可,如圖3-4所示圖3-46、添加完

28、成以后,按照實(shí)驗(yàn)一中說(shuō)明連接各個(gè)模塊,添加輸入輸出引腳(詳細(xì)步驟參考實(shí)驗(yàn)一實(shí)驗(yàn)步驟),連接完成以后如圖3-5所示圖3-57、功能仿真,如圖3-6所示圖3-68、時(shí)序仿真,如圖3-7所示圖3-79、連接完成后編譯無(wú)誤后,按照實(shí)驗(yàn)一中引腳分配方法配置引腳,分配完成進(jìn)行編譯,編譯確認(rèn)無(wú)誤后準(zhǔn)備下載。10、按照引腳分配連接實(shí)驗(yàn)箱,將程序下載到實(shí)驗(yàn)箱觀察驗(yàn)證實(shí)驗(yàn)結(jié)果。分配引腳后連接LEDALEDG,LED_C1LEDC4;下載觀察實(shí)驗(yàn)結(jié)果。六、實(shí)驗(yàn)報(bào)告要求1 整理實(shí)驗(yàn)結(jié)果,填寫(xiě)實(shí)驗(yàn)報(bào)告。2 小結(jié)實(shí)驗(yàn)心得體會(huì)。3. 思考 可否實(shí)現(xiàn)四個(gè)數(shù)碼管同時(shí)動(dòng)態(tài)的顯示不同的內(nèi)容?實(shí)驗(yàn)四、用VHDL語(yǔ)言和原理圖設(shè)計(jì)方法混

29、合設(shè)計(jì)一個(gè)全加器一、實(shí)驗(yàn)?zāi)康?、通過(guò)實(shí)驗(yàn)復(fù)習(xí)可編程邏輯器件開(kāi)發(fā)軟件的圖形設(shè)計(jì)操作流程;2、  掌握全加器的功能和設(shè)計(jì)方法;3、掌握用VHDL語(yǔ)言和原理圖設(shè)計(jì)方法混合設(shè)計(jì)一個(gè)全加器。二、實(shí)驗(yàn)器材1、臺(tái)式計(jì)算機(jī) 1臺(tái)  2、可編程邏輯邏輯器件實(shí)驗(yàn)軟件1套3、下載電纜一套 4、示波器一臺(tái) 三、實(shí)驗(yàn)說(shuō)明1、臺(tái)式計(jì)算機(jī)用于向可編程邏輯邏輯器件實(shí)驗(yàn)軟件提供編程、仿真、下載的平臺(tái),供用戶使用。2、可編程邏輯邏輯器件實(shí)驗(yàn)軟件向原理圖的設(shè)計(jì)提供平臺(tái),并將調(diào)試好的程序下載到可編程邏輯邏輯器件中。3、下載電纜是可編程邏輯器件軟件和可編程邏輯邏輯器件之間的接口電纜,為了便于區(qū)別,用不同顏

30、色導(dǎo)線區(qū)分下載電纜的電源、地和信號(hào),一般用紅色導(dǎo)線接電源,用黑色導(dǎo)線接地。4、示波器用于觀察可編程邏輯邏輯器件執(zhí)行程序時(shí)輸出信號(hào)的變化四、實(shí)驗(yàn)原理1、算術(shù)運(yùn)算和邏輯運(yùn)算是計(jì)算中央處理器CPU的基本功能,這個(gè)基本功能由稱為全加器的組合邏輯電路完成。而全加的基礎(chǔ)是半加器。2、半加器是只考慮了兩個(gè)加數(shù)本身,而沒(méi)考慮由低位來(lái)的進(jìn)位的運(yùn)算;而全加器除了最低位外,每一位都應(yīng)考慮來(lái)自低位的進(jìn)位,即將兩個(gè)對(duì)應(yīng)的加數(shù)和來(lái)自地位的進(jìn)位三個(gè)數(shù)相加。3、根據(jù)全加器的功能,列出全加器的真值表,如表4-1所示。其中Ci和Bi分別是加數(shù)和被加數(shù),Ai是來(lái)自相鄰地位的進(jìn)位數(shù),Si為全加器的和,Ci是向相鄰高位的進(jìn)位數(shù)。表4-

31、1:輸入輸出Ci-1BiAiSiCi0000000110010100110110010101011100111111五、實(shí)驗(yàn)內(nèi)容和步驟1、建立工程建立一個(gè)名為f_adder的工程文件,如圖4-2所示圖4-22、建立文件建立三個(gè)VHDL文本文件,分別命名為h_adder.vhd(半加器文件名)和or_2.vhd(或門(mén)文件名,并保存,如圖4-3所示。圖4-33、輸入代碼并打包入庫(kù)在每個(gè)VHDL文件中輸入相應(yīng)的代碼,并保存文件,將底層的半加器和或門(mén)電路打包入庫(kù),如圖4-4所示圖4-4半加器代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.s

32、td_logic_unsigned.all;entity h_adder isport(a,b:in std_logic;co,so:out std_logic);end entity h_adder;architecture beh of h_adder issignal abc:std_logic_vector(1 downto 0);beginabc<=a&b;process(abc)begincase abc iswhen "00"=>so<='0'co<='0'when "01"=

33、>so<='1'co<='0'when "10"=>so<='1'co<='0'when "11"=>so<='0'co<='1'when others=>null;end case;end process;end architecture beh;半加器的打包元件如圖4-5所示,波形仿真如圖4-6所示。圖4-5 圖4-6在or_2中輸入代碼如下:library ieee;use ieee.std_l

34、ogic_1164.all;use ieee.std_logic_unsigned.all;entity or_2 isport(a,b:in std_logic;c:out std_logic);end entity or_2;architecture str of or_2 isbeginc<=a or b;end architecture str;或門(mén)的打包元件如圖4-7所示,波形仿真如圖4-8所示圖4-7 圖4-84、頂層文件編譯與仿真 頂層文件設(shè)計(jì)一般可以用兩種方法來(lái)實(shí)現(xiàn),一種是利用原理圖,另一種是VHDL語(yǔ)言。(1) 原理圖法建立原理圖文件并添加模塊元件。建立名為fg_add

35、er的原理圖文件,雙擊鼠標(biāo)后在彈出對(duì)話框中的Name欄中選擇生成的圖元符號(hào),如圖4-9所示。將三個(gè)模塊元件添加到原理圖編輯器中,并放置引腳。連接各個(gè)模塊。根據(jù)全加器的原理完成電路的連接,并將其保存文件命名為fg_adder,如圖4-10所示。圖4-9圖4-10(2) VHDL 語(yǔ)言實(shí)現(xiàn)全加器。在f_adder.vhd文件中輸入以下VHDL語(yǔ)言頂層代碼:library ieee;use ieee.std_logic_1164.all;entity f_adder isport(ain,bin,cin:in std_logic;cout,sum:out std_logic);end entity

36、f_adder;architecture str of f_adder iscomponent h_adder isport(a,b:in std_logic;co,so:out std_logic);end component;component or_2 isport(a,b:in std_logic;c :out std_logic);end component;signal d,e,f:std_logic;beginu1:h_adder port map(a=>ain,b=>bin,co=>d,so=>e);u2:h_adder port map(a=>e

37、,b=>cin,co=>f,so=>sum);u3:or_2 port map(a=>d,b=>f,c=>cout);end architecture str;5、頂層文件編譯與仿真 (1)編譯頂層VHDL的方法。由于工程文件名是f_adder,所以可以直接單擊編譯按鈕,此時(shí)將對(duì)頂層VHDL文件進(jìn)行編譯。編譯完成后建立波形文件并仿真,與設(shè)計(jì)要求對(duì)比,看是否符合要求。其仿真波形如圖4-11所示,這樣就完成了用VHDL語(yǔ)言實(shí)現(xiàn)自底向上的設(shè)計(jì)。圖4-11(2)編譯頂層原理圖。如果想要編譯頂層原理文件,需要重新建立一個(gè)新的工程文件,并且命名為fg_adder,原因是

38、頂層原理圖文件名為fg_adder.bdf.6、引腳分配、下載驗(yàn)證六、實(shí)驗(yàn)報(bào)告要求1 整理實(shí)驗(yàn)結(jié)果,填寫(xiě)實(shí)驗(yàn)報(bào)告。2 小結(jié)實(shí)驗(yàn)心得體會(huì)。實(shí)驗(yàn)五、用VHDL語(yǔ)言和原理圖設(shè)計(jì)方法混合設(shè)計(jì)一個(gè)簡(jiǎn)易時(shí)鐘電路一、實(shí)驗(yàn)?zāi)康?通過(guò)實(shí)驗(yàn)復(fù)習(xí)可編程邏輯器件開(kāi)發(fā)軟件的圖形設(shè)計(jì)操作流程;2.掌握用硬件描述語(yǔ)言的方法設(shè)計(jì)組合邏輯電路BCD-七段顯示譯碼器;3. 掌握簡(jiǎn)單時(shí)鐘電路的設(shè)計(jì)方法;3. 學(xué)習(xí)掌握自底向上的設(shè)計(jì)方法。二、實(shí)驗(yàn)器材1、臺(tái)式計(jì)算機(jī) 1臺(tái)2、可編程邏輯邏輯器件實(shí)驗(yàn)軟件1套3、下載電纜一套4、示波器一臺(tái)三、實(shí)驗(yàn)說(shuō)明1、臺(tái)式計(jì)算機(jī)用于向可編程邏輯邏輯器件實(shí)驗(yàn)軟件提供編程、仿真、下載的平臺(tái),供用戶使用。2、

39、可編程邏輯邏輯器件實(shí)驗(yàn)軟件向原理圖的設(shè)計(jì)和硬件描述語(yǔ)言的編程提供平臺(tái),并將調(diào)試好的程序下載到可編程邏輯邏輯器件中。3、下載電纜是可編程邏輯器件軟件和可編程邏輯邏輯器件之間的接口電纜,為了便于區(qū)別,用不同顏色導(dǎo)線區(qū)分下載電纜的電源、地和信號(hào),一般用紅色導(dǎo)線接電源,用黑色導(dǎo)線接地。4、示波器用于觀察可編程邏輯邏輯器件執(zhí)行程序時(shí)輸出信號(hào)的變化四、實(shí)驗(yàn)原理時(shí)鐘電路主要包括計(jì)秒,計(jì)分,以及計(jì)時(shí),晶振可以產(chǎn)生一個(gè)一定頻率的時(shí)鐘信號(hào),我們通過(guò)分頻可以很容易的得到一個(gè)1Hz的時(shí)鐘信號(hào),這樣就可以計(jì)秒,在計(jì)夠60秒后計(jì)一分,計(jì)完60分后計(jì)一小時(shí),這就是一個(gè)基本的時(shí)鐘的大致設(shè)計(jì)方法。在本次實(shí)驗(yàn)中,考慮到實(shí)際條件限

40、制,只有計(jì)秒和計(jì)分兩個(gè)部分。在計(jì)秒操作中可以通過(guò)設(shè)計(jì)一個(gè)十進(jìn)制計(jì)數(shù)器和一個(gè)六進(jìn)制計(jì)數(shù)器來(lái)計(jì)秒,計(jì)分也是通過(guò)一個(gè)十進(jìn)制計(jì)數(shù)器和一個(gè)六進(jìn)制計(jì)數(shù)器來(lái)實(shí)現(xiàn)。一個(gè)基本的時(shí)鐘電路是需要每一位同時(shí)都能夠顯示的,但是在數(shù)碼管設(shè)計(jì)中都是采用位選來(lái)給某一位送數(shù),這就需要一個(gè)頻率高于人眼分辨能力的位選方式來(lái)實(shí)現(xiàn)。五、實(shí)驗(yàn)內(nèi)容和步驟1、新建一個(gè)名為clock的工程文件,如圖5-1所示圖5-12、新建一個(gè)VHDL文件命名為div,設(shè)計(jì)一個(gè)分頻器來(lái)實(shí)現(xiàn)1Hz信號(hào)的產(chǎn)生,生成的電路模塊如圖5-1所示圖5-1 50MHz分頻產(chǎn)生1Hz脈沖信號(hào)代碼library ieee;use ieee.std_logic_1164.all

41、;use ieee.std_logic_unsigned.all;entity div isport (clr,clk:in std_logic;q:out std_logic);end div ;architecture a of div is SIGNAL fre_N : integer range 0 to 25000000;SIGNAL clk_tmp: std_logic;BEGINq <= clk_tmp;process(clk,clr)beginif clr = '0' thenfre_N <= 0;elsif falling_edge(clk) th

42、enif fre_N >= 24999999 thenfre_N <= 0;clk_tmp <= not clk_tmp;elsefre_N <= fre_N + 1;end if;end if;end process;end a;3、新建兩個(gè)VHDL文件分別命名為counter10和counter6,分別設(shè)計(jì)一個(gè)十進(jìn)制計(jì)數(shù)器和六進(jìn)制計(jì)數(shù)器,計(jì)秒和計(jì)分通過(guò)十進(jìn)制和六進(jìn)制的模塊產(chǎn)生,生成的電路模塊如圖5-2所示圖5-2十進(jìn)制計(jì)數(shù)器代碼library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.a

43、ll;entity count10 isport (clr,start,clk:in std_logic;cout:out std_logic;daout:out std_logic_vector(3 downto 0) );end count10;architecture a of count10 is signal cnt: std_logic_vector(3 downto 0);begindaout<= cnt;process(clk,clr)beginif(clr='0')thencnt<="0000"cout<= '0&

44、#39;elsif(CLK'event and CLK='1')thenif(start='1') thenif(cnt="1001") thencnt<="0000"cout<= '1'elsecnt<=cnt+1;cout<= '0'end if;elsecnt<=cnt;cout<= '0'end if;end if;end process;end a;六進(jìn)制計(jì)數(shù)器代碼library ieee;use ieee.std_log

45、ic_1164.all;use ieee.std_logic_unsigned.all;entity count6 isport (clr,start,clk:in std_logic;cout:out std_logic;daout:out std_logic_vector(3 downto 0);end count6;architecture a of count6 is signal cnt: std_logic_vector(3 downto 0);begindaout<= cnt;process(clk)beginif(clr=0)thencnt<=”0000”;cout

46、<= 0;elsif(CLKevent and CLK=1)thenif(start=1) thenif(cnt=”0101”) thencnt<=”0000”;cout<= 1;elsecnt<=cnt+1;cout<= 0;end if;elsecnt<=cnt;cout<= 0;end if;end if;end process;end a;4、新建一個(gè)VHDL文件命名為seltime,滿足計(jì)秒和計(jì)分的四位數(shù)的一個(gè)選擇電路,來(lái)將某一位送到對(duì)應(yīng)的數(shù)碼管,這樣這個(gè)模塊就具有了位選和送數(shù)的功能。根據(jù)實(shí)驗(yàn)原理位選的頻率要求超過(guò)人眼分辨能力(這樣人眼會(huì)感覺(jué)

47、到四位數(shù)碼管是同時(shí)顯示數(shù)據(jù))但又不能高過(guò)數(shù)碼管顯示的建立時(shí)間(如果太高數(shù)碼管會(huì)一直顯示8),根據(jù)這個(gè)原則新建一個(gè)VHDL文件命名為div1,設(shè)計(jì)一個(gè)為250Hz的分頻器,如圖5-3所示圖5-3125Hz信號(hào)產(chǎn)生代碼library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div1 isport (clk,clr:in std_logic;q:out std_logic);end div1 ;architecture a of div1 is SIGNAL fre_N : integer ran

48、ge 0 to 200000;SIGNAL clk_tmp: std_logic;BEGINq <= clk_tmp;process(clk,clr)beginif(clr=0)thenfre_N<=0;elsif falling_edge(clk) thenif fre_N >= 199999 thenfre_N <= 0;clk_tmp <= not clk_tmp;elsefre_N <= fre_N + 1;end if;end if;end process;end a;數(shù)據(jù)選擇器代碼library ieee;use ieee.std_logic_1

49、164.all;use ieee.std_logic_unsigned.all;entity seltime isport (clr,clk:in std_logic;dain1,dain2,dain3,dain4:in std_logic_vector(3 downto 0);sel:out std_logic_vector(1 downto 0);daout:out std_logic_vector(3 downto 0);end seltime;architecture a of seltime is SIGNAL count: STD_LOGIC_vector ( 1 downto 0

50、);BEGINsel<= count when clr='1' else "11"process ( clk,clr)beginif (clr ='0') thencount<= "11"elsif (clk 'event and clk='1') thenif ( count >= "11") thencount<= "00"elsecount<= count + 1;end if; end if;end process;pro

51、cess(clk,clr)beginif (clr = '0') thendaout<= (others => '0');elsecase count iswhen "00" =>daout<= dain1;when "01" =>daout<= dain2;when "10" =>daout<= dain3;when "11" =>daout<= dain4;when others =>daout<= (oth

52、ers => '0');end case;end if;end process;end a;5、在上述的數(shù)據(jù)選擇模塊中產(chǎn)生的段選信號(hào)是4位的二進(jìn)制數(shù),位選信號(hào)是兩位的二進(jìn)制數(shù),這樣的數(shù)據(jù)數(shù)碼管并不能讀取,因此需要新建兩個(gè)VHDL文件命名為decode2_4和deld,分別用來(lái)設(shè)計(jì)兩個(gè)譯碼電路來(lái)產(chǎn)生數(shù)碼管可以識(shí)別的二進(jìn)制數(shù)。如圖5-4的2-4譯碼電路主要實(shí)現(xiàn)位選,圖5-5的4-7譯碼電路只要實(shí)現(xiàn)段選。圖5-4 圖5-5二四譯碼器代碼library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all

53、;ENTITY decode2_4 ISPORT(SEL: IN std_logic_vector(1 downto 0); Q: OUT std_logic_vector(3 downto 0);END decode2_4;ARCHITECTURE a OF decode2_4 ISBEGINQ <= "1110" when sel = "00" else"1101" when sel = "01" else"1011" when sel = "10" else&qu

54、ot;0111" when sel = "11" else"1111"END a;數(shù)碼管顯示代碼library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity deled isport(num: instd_logic_vector( 3 downto 0);led: out std_logic_vector(6 downto 0);end deled;architecture fun of deled isbeginled<= "1

55、111110" when num= "0000" else"0110000" when num= "0001" else"1101101" when num= "0010" else"1111001" when num= "0011" else"0110011" when num= "0100" else"1011011" when num= "0101" else&q

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論