verilog實(shí)驗(yàn)報(bào)告流水燈數(shù)碼管秒表交通燈_第1頁(yè)
verilog實(shí)驗(yàn)報(bào)告流水燈數(shù)碼管秒表交通燈_第2頁(yè)
verilog實(shí)驗(yàn)報(bào)告流水燈數(shù)碼管秒表交通燈_第3頁(yè)
verilog實(shí)驗(yàn)報(bào)告流水燈數(shù)碼管秒表交通燈_第4頁(yè)
verilog實(shí)驗(yàn)報(bào)告流水燈數(shù)碼管秒表交通燈_第5頁(yè)
已閱讀5頁(yè),還剩4頁(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、流水燈實(shí)驗(yàn)?zāi)康模涸赽asys2開(kāi)發(fā)板上實(shí)現(xiàn)LED燈的花樣流水的顯示,如隔位顯示,依次向左移位顯示,依次向右移位顯示,兩邊同時(shí)靠中間顯示。實(shí)驗(yàn)儀器:FPGA開(kāi)發(fā)板一塊,計(jì)算機(jī)一臺(tái)。實(shí)驗(yàn)原理:當(dāng)一個(gè)正向的電流通過(guò)LED時(shí),LED就會(huì)發(fā)光。當(dāng)陽(yáng)極的電壓高于陰極的電壓時(shí),LED就會(huì)有電流通過(guò)。當(dāng)在LED上增添一個(gè)典型值為1.5V2.0V之間的電壓時(shí),LED就會(huì)有電流通過(guò)并發(fā)光。實(shí)驗(yàn)內(nèi)容:頂層模塊:輸入信號(hào):clk_50MHz(主時(shí)鐘信號(hào)),rst(重置信號(hào)),輸出信號(hào):7:0 led(LED燈控制信號(hào))。module led_top(clkin,rst,led_out);input clkin, rs

2、t;output 7:0 led_out;wire clk_1hz;divider_1hz d0(clkin, rst, clk_1hz);led l0(clk_1hz, rst, led_out);endmodule分頻模塊:module divider_1hz(clkin,rst,clkout);input clkin,rst;output reg clkout;reg 24:0 cnt;always(posedge clkin, posedge rst)beginif(rst) begincnt=0;clkout=0; endelse if(cnt=24999999) begincnt=

3、0;clkout=!clkout; endelse cnt=cnt+1;endendmodule亮燈信號(hào)模塊:module led(clkin,rst,led_out);input clkin,rst;output 7:0 led_out;reg 2:0 state;always(posedge clkin, posedge rst)if(rst)state=0;elsestate=state+1;always(state)case(state)3b000:ledout=8b0000_0001;3b001:ledout=8b0000_0010;3b010:ledout=8b0000_0100;

4、3b011:ledout=8b0000_1000;3b100:ledout=8b0001_0000;3b101:ledout=8b0010_0000;3b110:ledout=8b0100_0000;3b111:ledout=8b1000_0000;endcaseendmodule實(shí)驗(yàn)中存在的問(wèn)題:1 芯片選擇問(wèn)題automotive spartan3EXA3S100E XA3S250E CPG132spartan3E XC3S100E XC3S250E CP1322 時(shí)序邏輯部分,阻塞賦值和非阻塞賦值混用always(posedge clk)begina=b+c;d=e+f;end3 UCF

5、文件格式錯(cuò)誤NET “CLK” LOC = “B8”;NET “a” LOC = “N11”;NET “b” LOC = “G13”;NET “c0” LOC =“K11;數(shù)碼管實(shí)驗(yàn)?zāi)康模涸O(shè)計(jì)一個(gè)數(shù)碼管動(dòng)態(tài)掃描程序,實(shí)現(xiàn)在四位數(shù)碼管上動(dòng)態(tài)循環(huán)顯示“1”、“2”“3”“4”;實(shí)驗(yàn)儀器:FPGA開(kāi)發(fā)板一塊,計(jì)算機(jī)一臺(tái)。實(shí)驗(yàn)原理:實(shí)驗(yàn)內(nèi)容:數(shù)碼管顯示模塊:輸入端口dataone,datatwo,datathree,datafour,clk,rst,輸出端口current_state, digit_select;module display_scan(current_showdata, scan_cu

6、rrent_state, rst, dataone, datatwo, datathree, datafour, clk_scan ); output reg 7:0 current_showdata; output reg 3:0 scan_current_state; input rst, clk_scan; input 3:0 dataone, datatwo, datathree, datafour; wire 7:0 data1,data2,data3,data4; code_change d1(dataone,data1); code_change d2(datatwo,data2

7、); code_change d3(datathree,data3); code_change d4(datafour,data4);parameter stateone = 4b0111, statetwo = 4b1011, statethree = 4b1101, statefour = 4b1110;always(posedge rst or posedge clk_scan) beginif(rst) scan_current_state = stateone;else case(scan_current_state)stateone:begin scan_current_state

8、 = statetwo;current_showdata = data2; endstatetwo:begin scan_current_state = statethree;current_showdata = data3; endstatethree:begin scan_current_state = statefour;current_showdata = data4; endstatefour:begin scan_current_state = stateone;current_showdata = data1; enddefault:begin scan_current_stat

9、e = stateone; current_showdata = data1; endendcaseend endendmodule2、譯碼模塊module code_change(datain, dataout); output 7:0 dataout; input 3:0 datain; reg 7:0 dataout; always(datain) case(datain)1: dataout = 8b10011111;2: dataout = 8b00100101;3: dataout = 8b00001101;4: dataout = 8b10011001;5: dataout =

10、8b01001001;6: dataout = 8b01000001;7: dataout = 8b00011111;8: dataout = 8b00000001;9: dataout = 8b00001001;0: dataout = 8b00000011; endcaseendmoduleVerilog HDL常見(jiàn)錯(cuò)誤:1、進(jìn)程賦值語(yǔ)句的左側(cè)變量沒(méi)有聲明為寄存器變量;2 、begin-end沒(méi)有匹配3 、寫(xiě)二進(jìn)制數(shù)時(shí)忘了標(biāo)記數(shù)基(即b)。這樣,編譯器會(huì)認(rèn)作十進(jìn)制數(shù)4、 inlclude和表示數(shù)基的語(yǔ)句使用了錯(cuò)誤的撇號(hào);5 、聲明語(yǔ)句的末尾忘了寫(xiě)分號(hào)秒表實(shí)驗(yàn)?zāi)康模涸O(shè)計(jì)一個(gè)秒表,0.001s

11、作為掃描時(shí)鐘,0.01秒作為百分秒時(shí)鐘。實(shí)驗(yàn)儀器:FPGA開(kāi)發(fā)板一塊,計(jì)算機(jī)一臺(tái)。實(shí)驗(yàn)原理:把0-99的BCD碼計(jì)數(shù)過(guò)程轉(zhuǎn)化成BCD碼計(jì)數(shù)的百分秒、分等過(guò)程。實(shí)驗(yàn)內(nèi)容:分頻模塊 divider (0.001s作為掃描時(shí)鐘,0.01秒作為百分秒時(shí)鐘);module miaobiao(mh,ml,sh,sl,msh,msl,clk,clr,pause); output 3:0 mh,ml,sh,sl,msh,msl; input clk,clr,pause; reg 3:0 mh,ml,sh,sl,msh,msl; reg cn1,cn2;秒表計(jì)時(shí)模塊 (百分秒模塊 秒模塊 分模塊);百分秒模塊:

12、always(posedge clk,posedge clr) begin if(clr) begin msh=0;msl=0;cn1=0;end else if(!pause) begin if(msl=9) begin msl=0; if(msh=9) begin msh=0;cn1=1;end else msh=msh+1; end else begin msl=msl+1;cn1=0;end end end秒模塊always(posedge cn1,posedge clr) begin if(clr) begin sh=0;sl=0;cn2=0;end else begin if(sl

13、=9) begin sl=0; if(sh=5) begin sh=0;cn2=1;end else sh=sh+1; end else begin sl=sl+1;cn2=0;end end end 分模塊always(posedge cn2,posedge clr) begin if(clr) begin mh=0;ml=0;end else begin if(ml=9) begin ml=0; if(mh=5) begin mh=0;end else mh=mh+1; end else begin sl=sl+1;end end endendmoduleVerilog HDL常見(jiàn)錯(cuò)誤:1

14、、進(jìn)程賦值語(yǔ)句的左側(cè)變量沒(méi)有聲明為寄存器變量;2 、begin-end沒(méi)有匹配3 、寫(xiě)二進(jìn)制數(shù)時(shí)忘了標(biāo)記數(shù)基(即b)。這樣,編譯器會(huì)認(rèn)作十進(jìn)制數(shù)4、 inlclude和表示數(shù)基的語(yǔ)句使用了錯(cuò)誤的撇號(hào);5 、聲明語(yǔ)句的末尾忘了寫(xiě)分號(hào)交通燈實(shí)驗(yàn)?zāi)康模涸O(shè)計(jì)十字路口交通燈控制器,A方向和B方向各設(shè)紅(R)、黃(Y)、綠(G)三個(gè)燈,3個(gè)燈按合理的順序亮滅,并將亮燈的時(shí)間以到計(jì)時(shí)的形式顯示出來(lái)。實(shí)驗(yàn)儀器:FPGA開(kāi)發(fā)板一塊,計(jì)算機(jī)一臺(tái)。實(shí)驗(yàn)原理實(shí)驗(yàn)內(nèi)容:兩個(gè)方向各種燈亮的時(shí)間能夠進(jìn)行設(shè)置和修改,此外,假設(shè)B方向是主干道,車流量大,因此B方向通行的時(shí)間應(yīng)該比A方向長(zhǎng)。交通燈控制器的狀態(tài)轉(zhuǎn)換表見(jiàn)表5.1-1

15、。表中,1表示燈亮,0表示燈不亮。A方向和B方向的紅黃綠分別用R1、Y1、G1、R2、Y2、G2來(lái)表示。表5.1-1 交通燈控制器狀態(tài)轉(zhuǎn)換表從狀態(tài)表中可以看出,每個(gè)方向3盞燈依次按如下順序點(diǎn)亮,并不斷循環(huán):綠燈-黃燈-紅燈并且每個(gè)方向紅燈亮的時(shí)間應(yīng)該與另一個(gè)方向綠燈、黃燈亮的時(shí)間相等。黃燈所起的作用是用來(lái)在綠燈后進(jìn)行緩沖,以提醒行人該方向馬上要禁行了。在使能控制信號(hào)(EN)控制時(shí)系統(tǒng)工作,并且要求有兩個(gè)控制輸入信號(hào):即復(fù)位信號(hào)(Reset)和備用模式設(shè)置信號(hào)(Standby),在復(fù)位信號(hào)控制時(shí),兩個(gè)方向均為紅燈,在備用模式設(shè)置信號(hào)控制時(shí),兩個(gè)方向均為黃燈。module traffic(CLK,

16、EN,LAMPA,LAMPB,ACOUNT,BCOUNT,Reset,Standby);output7:0 ACOUNT,BCOUNT;output2:0 LAMPA,LAMPB;input CLK,EN,Reset,Standby;reg7:0 numa,numb;reg tempa,tempb;reg1:0 counta,countb;reg7:0 ared,ayellow,agreen,bred,byellow,bgreen;reg2:0 LAMPA,LAMPB;always (EN)if(!EN)beginared=8d40;ayellow=8d5;agreen=8d25;bred=8

17、d30;byellow=8d5;bgreen=8d35;endassign ACOUNT=numaassign BCOUNT=numb;always (posedge CLK)beginif(EN)beginif(!tempa)beginif(Reset) begin LAMPA=4;numa=8b11111111;endelse if(Standby) begin LAMPA=2;numa=8b11111111;endelse begintempa=1;case(counta)0: begin numa=agreen; LAMPA=1;counta=1;end1: begin numa=ar

18、ed; LAMPA=4;counta=2;end2: begin numa=ayellow; LAMPA=2;counta=0;enddefault: LAMPA=4;endcaseendendelse if(Reset) begin tempa=0;LAMPA=4;numa=8b11111111;endelse if(Standby) begin tempa=0;LAMPA=2;numa1) beginif(numa3:0=0) beginnuma3:0=4b1001;numa7:4=numa7:4-4b0001;endelse numa3:0=numa3:0-4b0001;if(numa=

19、2) tempa=0;endendelse beginLAMPA=3b100;counta=0;tempa=0;endendalways (posedge CLK)beginif(EN)beginif(!tempb)beginif(Reset) begin LAMPB=4;numb=8b11111111;endelse if(Standby) begin LAMPB=2;numb=8b11111111;endelse begintempb=1;case(countb)0: begin numb=agreen; LAMPB=1;countb=1;end1: begin numb=ared; LAMPB=4;countb=2;end2: begin numb=ayellow; LAMPB=2;countb=0;enddefault: LAM

溫馨提示

  • 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)論