基于VerilogHDL的彩燈參考模板_第1頁
基于VerilogHDL的彩燈參考模板_第2頁
基于VerilogHDL的彩燈參考模板_第3頁
基于VerilogHDL的彩燈參考模板_第4頁
基于VerilogHDL的彩燈參考模板_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于Verilog的課程設(shè)計多路彩燈控制器指導(dǎo)老師:甕嘉民 李小魁班 級:0941電子科學(xué)與技術(shù)成 員:周俊冉 200910711103 李 靜 200910711108 馬慶蒙 2009107111101 / 17 目錄1 EDA簡介2 彩燈控制器的設(shè)計方案3 程序設(shè)計和源程序4 波形仿真分析5 硬件測試引腳鎖定圖6 電路模塊圖7 實物圖8 心得體會9 擴展思路10 參考文獻1.EDA簡介 EDA技術(shù)(即Electronic Design Automation技術(shù))就是依賴強大的計算機,在EDA工具軟件平臺上,對以硬件描述語言HDL(Hardware Description Language

2、)為系統(tǒng)邏輯描述手段完成的設(shè)計文件,自動的完成邏輯編譯、化簡、分割、綜合、布局布線以及邏輯優(yōu)化和仿真測試,直至實現(xiàn)既定的電子線路系統(tǒng)功能。他在硬件實現(xiàn)方面融合了大規(guī)模集成電路制造技術(shù)、IC版圖設(shè)計、ASIC測試和封裝、FPGA(Field Programme Gate Array)CPLD(Complex Programme Logic Device)編程下載和自動測試等技術(shù):在計算機輔助工程方面融合了計算機輔助設(shè)計(CAD),計算機輔助制造(CAM),計算機輔助測試(CAT),計算機輔助工程(CAE)技術(shù)以及多種計算機語言的設(shè)計概念;而在現(xiàn)代電子學(xué)方面則容納了更多的內(nèi)容,如電子線路設(shè)計理論、

3、數(shù)字信號處理技術(shù)、數(shù)字系統(tǒng)建模和優(yōu)化技術(shù)及長線技術(shù)理論等。 硬件描述語言HDL是EDA技術(shù)的重要組成部分,常見的HDL主要有VHDL、Verilog HDL、ABEL、AHDL、System Verilog和System C。其中VHDL、Verilog HDL和現(xiàn)在的EDA設(shè)計中使用最多,并且我們學(xué)習(xí)的是Verilog的編程方法及實用技術(shù)。 2.彩燈控制器的設(shè)計方案彩燈控制器的核心設(shè)計部分是分頻器的使用,顯示部分相對比較容易。分頻器的設(shè)計方法多種多樣,我們設(shè)計的是比較常見的一種。外接clk為始終輸入基準信號,彩燈節(jié)奏的快慢用選擇開關(guān)select1.0,共有q13:0十四個輸出信號控制彩燈的輸

4、出以及display15:0輸出信號控制數(shù)碼管的顯示。彩燈由流水燈和交通燈兩部分顯示彩燈的各種狀態(tài),數(shù)碼管顯示選擇開關(guān)的四種狀態(tài)。 彩燈共有32個狀態(tài),流水燈顯示部分可以做成7種花樣,一種花樣完成后,自動進入下一種狀態(tài)。交通燈作為輔助部分顯示。第一種花樣為彩燈從右到左,依次點亮,從左往右依次點亮,然后全亮。11111110011111 到00000000101010;第二種花樣兩邊同時亮一個,逐次向中間移動,再散開,全滅。01111110111111到11111111111110;第三種左邊四個燈亮,然后右邊四個燈亮,再反過來。00001111111100和11110000111000第四種奇

5、數(shù)燈亮,再偶數(shù)燈亮,然后反過來。01010101110000和01010101110000第五種右邊七個亮,然后左邊七個亮。10000000和00000001第六種全亮00000000101101第七種全滅11111111110110 3.程序設(shè)計和源程序整個控制器的實現(xiàn)流程如下:經(jīng)分析,彩燈控制器設(shè)計可以分為四部分:時鐘分頻,數(shù)碼管顯示,彩燈顯示電路。其中時鐘分頻又包括四選一數(shù)據(jù)選擇和分頻和狀態(tài)選擇兩部分系統(tǒng)程序框圖如下: 彩燈控制器系統(tǒng)框圖各部分電路模塊框圖功能:分頻值選擇框圖 此部四選一數(shù)據(jù)選擇器:試驗箱上的時鐘進行四種分頻,該模塊對四個時鐘進行選擇,配合按鍵的控制選擇亮燈之間的時間間隔

6、。確定頻率和狀態(tài)部分:該部分實現(xiàn)了兩個功能:一個是分頻計數(shù),對四種分頻(12,25,50,100)計數(shù),達到分頻數(shù)時清零;另一個是實現(xiàn)狀態(tài)的改變,在每次計數(shù)滿時(達到分頻的數(shù)時)狀態(tài)改變一次,同時清零重新計數(shù);未滿時,狀態(tài)保持。顯示部分: 該部分由流水燈和交通燈兩部分組成。顯示當前彩燈的狀態(tài)。共32個狀態(tài),進行自動循環(huán)轉(zhuǎn)換。該部分控制的是彩燈當前的分頻狀態(tài),共有四種分頻12,25,50,100對應(yīng)的顯示1,2,3,4 。由輸入信號和按鍵決定。主要源程序:module led(select,clk,q,display);input 1:0 select;input clk;output reg

7、13:0 q;reg 2:0 seg;output 15:0display;reg 15:0display;wire 6:0 num;assign num=(select=0)?12:(select=1)?25:(select=2)?50:100;/計數(shù)分類reg 5:0 state;reg 6:0 count;initial begin state=0; count=0; end /always (posedge clk) begin display <= 8'b1111_1110,1'b1,led7(seg); case(select)2'b00:seg<

8、;=1;2'b01:seg<=3;2'b10:seg<=2;2'b11:seg<=4;default :seg<=0;endcase end / always(posedge clk) begin if(count=(num-1) begincount<=0;if(state<32)state<=state+1;elsestate<=0; endelse begincount<=count+1;state<=state;endend/always(posedge clk) begincase(state)0:q

9、<=14'b11111110011111;1:q<=14'b11111101101111;2:q<=14'b11111011110111;3:q<=14'b11110111111011;4:q<=14'b11101111111101;5:q<=14'b11011111111110;6:q<=14'b10111111111101;7:q<=14'b01111111111011;8:q<=14'b10111111110111;9:q<=14'b11011111

10、101111;10:q<=14'b11011111011111;11:q<=14'b11101111000111;12:q<=14'b11110111111000;13:q<=14'b11111011000000;14:q<=14'b11111101011101;15:q<=14'b11111110010101;16:q<=14'b00000000101010;17:q<=14'b01111110111111;18:q<=14'b10111101110101;19:q&

11、lt;=14'b11011011001001;20:q<=14'b11100111000000;21:q<=14'b11011011000111;22:q<=14'b10111101111000;23:q<=14'b01111110111111;24:q<=14'b11111111111110;25:q<=14'b00001111111100;26:q<=14'b11110000111000;27:q<=14'b01010101110000;28:q<=14'b

12、10101010100000;29:q<=14'b10000000000000;30:q<=14'b01111111011011;31:q<=14'b00000000101101;32:q<=14'b11111111110110;default :q<=14'b00000000000000;endcase end /function 6:0 led7; /*數(shù)碼管段碼表,供陽數(shù)碼管6:0=gfedcba*/input 3:0 dis_input;begincase (dis_input)0 : led7 = 7'b1

13、00_0000;1 : led7 = 7'b111_1001;2 : led7 = 7'b010_0100;3 : led7 = 7'b011_0000;4 : led7 = 7'b001_1001;5 : led7 = 7'b001_0010;6 : led7 = 7'b000_0010;7 : led7 = 7'b111_1000;8 : led7 = 7'b000_0000;9 : led7 = 7'b001_1000;default : led7 = 7'b111_1111;endcaseendendfun

14、ctionendmodule 4.波形仿真分析 輸入一個時鐘,select1:0選擇的事是00,即12分頻時候的波形。輸出引腳q顯示每個燈的高低電平,低電平燈亮。 5 引腳鎖定圖 波形仿真完之后即可進行引腳的分配,并進行編譯下載至硬件進行測試。在生成的.qsf文件中給引腳配對。在quarter中生成的引腳分配圖如下所示: 6電路原理圖7 實物圖 8 實訓(xùn)心得李 靜: 實訓(xùn)雖然進行了兩周,但由于請了三天假就像只參加了一周一樣,沒有參與所有的編程,有點遺憾。不過后來我還是認真琢磨了我們的程序。我們組做到是多路彩燈控制器,實際上很簡單,生活上很常見,和花樣流水燈可以說是異曲同工。不過在期間做好讓老師

15、檢查時,老師覺得這個課題有些簡單,又建議加上數(shù)碼管或是增加彩燈數(shù)目,以增加點難度。當然,我們對實驗又進行了修整。不過在實驗中還是遇到了以下幾個問題。例如:分頻的時候,可以用一個兩位的輸入變量作為分頻的選擇,使用選擇語句付給中間變量num,簡化程序。在.數(shù)碼管控制分頻的選擇,因為數(shù)碼管碼和斷碼有固定函數(shù),可以調(diào)用此函數(shù)用以顯示對應(yīng)數(shù)據(jù)。還有交通燈閃爍的問題,試驗箱上有12個交通燈,交通等和流水燈不一樣,只有6個引腳紅黃藍分別公用一個引腳。當然期間遇到的問題不止這幾個,在遇到問題解決不了時,也有請教了老師以及其他同學(xué),最終在我們組成員的共同努力下,完成了我們的實驗科目。在這次實驗中,我也學(xué)到了新的

16、知識,對于verilog有了更深的了解。馬慶蒙:經(jīng)過為期兩周的實訓(xùn),多多少少還是學(xué)到點東西的。很慶幸,從開始選材到程序到仿真出來我都參與進來了。我們組做的是多路彩燈控制器。實際上就是花樣的流水燈。我們的課題相對來說不是很難。很多的超市都掛有流水燈,不過他們的花樣比較多,由于試驗箱上的燈顏色比較單一,做不出那種效果,只能根據(jù)自己的能力設(shè)計出像流水燈一樣的花型。由于實驗箱上有交通燈部分,第一次把流水燈的部分設(shè)計完之后,讓老師檢查,又布置下來新的任務(wù),要求用上數(shù)碼管或交通燈部分。初次設(shè)計的過程中無從下手,首先是方案的選擇,花型的變換,節(jié)奏變化的快慢等問題。后來的加上數(shù)碼管和交通燈部分,怎么在數(shù)碼管上

17、顯示四種分頻,交通等花型變換。在設(shè)計過程中遇到的問題及解決方案:1. 怎么分頻 幾個選擇變量可以用一個條件賦值語句付各一個變量,這樣可以簡化程序。于是我們用一個兩位的輸入變量作為分頻的選擇,使用選擇語句付給中間變量num。2. 怎么把用數(shù)碼管控制分頻的選擇 因數(shù)碼管位碼和斷碼有固定的函數(shù),調(diào)用此函數(shù)用以顯示對應(yīng)的數(shù)字。12分頻顯示1,25分頻顯示2,50分頻顯示3,100分頻顯示4。3. 交通燈怎么閃爍 試驗箱上交通燈有12個彩燈,開始時以為交通和流水燈一樣,每一個燈對應(yīng)一個引腳,于是在程序中直接把交通燈的12位付給輸出變量q。,但到了引腳鎖定時發(fā)現(xiàn)交通燈的引腳只有六位。思考一番知道了,在現(xiàn)實

18、生活中交通燈的東西(或)南北方向的燈顯示的事一樣的。于是把12位的引腳改成6位的,紅的黃的綠的每一種顏色共用一個引腳,程序的12位也改為了6位。4. 交通燈沒有閃爍 在把交通燈部分加上以后,交通燈沒有反應(yīng),檢查程序,發(fā)現(xiàn)輸出變量應(yīng)該是14位,所以定義時應(yīng)該把q定義為q13:0。重新往試驗箱里下載程序,還是沒反應(yīng),連流水燈的變化也變得不正常了。這時人都快崩潰了,于是找人呢幫忙檢查,原來是應(yīng)該把狀態(tài)輸出時的賦值語句q<=8'b寫成q<=14'b,該賦值語句中的數(shù)字表示q輸出的位數(shù),當為8時小于輸出的位數(shù),只會取后面的8位。因此只有流水燈在閃爍,交通燈還會保持原來的狀態(tài)。

19、至于流水變化不正常是因為有人把試驗箱上的時鐘改大了,造成流水燈的速度變快,看不出來狀態(tài)的變化。周俊冉: 實訓(xùn)兩周結(jié)束了,這次實訓(xùn)和往常不同的是沒有實體的產(chǎn)品,主要是程序的編寫和實驗箱的演示,通過這次實訓(xùn)我再次學(xué)習(xí)了EDA中的程序編寫和軟件使用并和實踐相結(jié)合。 我們做的是多路彩燈,實驗箱上只有一種顏色就做成了多種顯示方式和頻率的流水燈形式。后來在老師的指導(dǎo)下又加入了交通燈的多種花樣及頻率顯示。 在整個過程中遇到了很多問題和思考:第一周在方案的選擇和程序編寫上我們討論和修改了很多,本來準備使用多個模塊和例化語句,為了使構(gòu)造更清晰簡易就選擇使用一個整體模塊。 編程過程中:我們首先利用一個兩位的變量輸入和一個多重的條件賦值句來簡潔的選擇閃爍快慢,即實現(xiàn)分頻的選擇;然后通過計數(shù)的方式達到分頻的目的,然后是控制顯示部分,因

溫馨提示

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

評論

0/150

提交評論