基于BASYS2的簡易數(shù)字鐘_第1頁
基于BASYS2的簡易數(shù)字鐘_第2頁
基于BASYS2的簡易數(shù)字鐘_第3頁
基于BASYS2的簡易數(shù)字鐘_第4頁
基于BASYS2的簡易數(shù)字鐘_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

../***********************************verilog*************************************/moduleclock_final(clk,clr,switch,ad,adj,o_seg,a); inputclk,clr,switch,ad; input[3:0]adj;// output[2:0]led;//led燈 output[6:0]o_seg;//7段數(shù)碼管 output[3:0]a;//掃描輸出 reg[6:0]segs;//數(shù)碼管存放器 reg[3:0]a; reg[15:0]temp;//顯示過程的中間變量 wire[23:0]t;//走時(shí)模式和校時(shí)模式臨時(shí)變量 wireen0,enp1,enp2,enp3,enp4,enp5,cp1hz,cp,out_500hz;//switch-N3轉(zhuǎn)換信號(hào)分兩個(gè)屏一個(gè)是小時(shí)/分鐘,一個(gè)是分鐘/秒//clr-E2清零信號(hào)//adj[3]控制小時(shí)的十位設(shè)置//adj[2]控制小時(shí)的個(gè)位設(shè)置//adj[1]控制分鐘的十位設(shè)置//adj[0]控制分鐘的個(gè)位設(shè)置 initialbegin a=4'b1110; end//初始化 assign cp=cp1hz,//判斷ad是否等于1,如果等于,cp就輸出cp10hz否那么就輸出cp1hz, en0=(~ad)|(switch&adj[0]), enp1=~ad"(t[3:0]==4'd9):(adj[1]&switch), enp2=~ad"(t[7:4]==4'd5)&(t[3:0]==4'd9):(adj[0]&switch==0), enp3=~ad"(enp2&(t[11:8]==4'd9)):(adj[1]&switch==0), enp4=~ad"(enp3&(t[15:12]==4'd5)):(adj[2]&switch==0), enp5=~ad"(enp4&((t[19:16]==4'd9)|(t[23:20]==4'b0010&t[19:16]==4'd3))):(adj[3]&switch==0), o_seg=segs;in50MHz_out1Hzu0(clk,cp1hz);//輸出頻率1HZ in50MHz_out_8MHzu7(clk,out_500hz);//輸出500HZ counter10u1(en0,clr,cp,t[3:0]);//second個(gè)位計(jì)數(shù) counter6u2(enp1,clr,cp,t[7:4]);//second十位計(jì)數(shù) counter10u3(enp2,clr,cp,t[11:8]);//minutes個(gè)位計(jì)數(shù) counter6u4(enp3,clr,cp,t[15:12]);//minutes十位計(jì)數(shù) counter10_hu5(enp4,clr,cp,t[19:16],t[23:20]);//hours個(gè)位計(jì)數(shù) counter3u6(enp5,clr,cp,t[23:20]);//hours十位計(jì)數(shù)// //// always(ad)begin//顯示模式選擇// if((~ad))begintemp[15:0]<=t1[15:0];temp[31:16]<=t1[23:8];end// elsebegintemp[15:0]<=t;temp[31:16]<=t[23:8];end// end always(posedgeclk) begin if(switch==1'b0) temp<=t[23:8]; elseif(switch==1'b1) temp<=t[15:0]; endalways(posedgeout_500hz) begin if(a==4'b1110) a<=4'b1101;//M13 elseif(a==4'b1101) a<=4'b1011;//J12 elseif(a==4'b1011) a<=4'b0111;//F12 else a<=4'b1110;//K14endalways(posedgeclk) //數(shù)碼管顯示譯碼if(switch==1'b0) begin if(a==4'b1110)//K14begin case(temp[3:0]) 4'd0:segs<=7'b1000000;//0 4'd1:segs<=7'b1111001;//1 4'd2:segs<=7'b0100100; 4'd3:segs<=7'b0110000; 4'd4:segs<=7'b0011001; 4'd5:segs<=7'b0010010; 4'd6:segs<=7'b0000010; 4'd7:segs<=7'b1111000; 4'd8:segs<=7'b0000000; 4'd9:segs<=7'b0010000;//9 defaultsegs<=7'b1111111; endcase end elseif(a==4'b1101)//M13 begin case(temp[7:4]) 4'd0:segs<=7'b1000000; 4'd1:segs<=7'b1111001; 4'd2:segs<=7'b0100100; 4'd3:segs<=7'b0110000; 4'd4:segs<=7'b0011001; 4'd5:segs<=7'b0010010; defaultsegs<=7'b1111111; endcaseend elseif(a==4'b1011) begin case(temp[11:8])//hours個(gè)位 4'h0:segs<=7'b1000000; 4'h1:segs<=7'b1111001; 4'h2:segs<=7'b0100100; 4'h3:segs<=7'b0110000; 4'h4:segs<=7'b0011001; 4'h5:segs<=7'b0010010; 4'h6:segs<=7'b0000010; 4'h7:segs<=7'b1111000; 4'h8:segs<=7'b0000000; 4'h9:segs<=7'b0010000; 4'ha:segs<=7'b0001000; defaultsegs<=7'b1111111; endcase end elseif(a==4'b0111)begin case(temp[15:12])//hours十位 4'h0:segs<=7'b1000000; 4'h1:segs<=7'b1111001; 4'h2:segs<=7'b0100100; defaultsegs<=7'b1111111; endcaseendendelseif(switch==1)begin if(a==4'b1110) begin case(temp[3:0]) 4'd0:segs<=7'b1000000; 4'd1:segs<=7'b1111001; 4'd2:segs<=7'b0100100; 4'd3:segs<=7'b0110000; 4'd4:segs<=7'b0011001; 4'd5:segs<=7'b0010010; 4'd6:segs<=7'b0000010; 4'd7:segs<=7'b1111000; 4'd8:segs<=7'b0000000; 4'd9:segs<=7'b0010000; defaultsegs<=7'b1111111; endcase end elseif(a==4'b1101) begin case(temp[7:4]) 4'd0:segs<=7'b1000000; 4'd1:segs<=7'b1111001; 4'd2:segs<=7'b0100100; 4'd3:segs<=7'b0110000; 4'd4:segs<=7'b0011001; 4'd5:segs<=7'b0010010; // 4'd6:segs<=7'b0000010; // 4'd7:segs<=7'b1111000; // 4'd8:segs<=7'b0000000; // 4'd9:segs<=7'b0010000; defaultsegs<=7'b1111111; endcase endelseif(a==4'b1011) begin case(temp[11:8]) 4'd0:segs<=7'b1000000; 4'd1:segs<=7'b1111001; 4'd2:segs<=7'b0100100; 4'd3:segs<=7'b0110000; 4'd4:segs<=7'b0011001; 4'd5:segs<=7'b0010010; 4'd6:segs<=7'b0000010; 4'd7:segs<=7'b1111000; 4'd8:segs<=7'b0000000; 4'd9:segs<=7'b0010000; defaultsegs<=7'b1111111; endcase end elseif(a==4'b0111) begin case(temp[15:12]) 4'd0:segs<=7'b1000000; 4'd1:segs<=7'b1111001; 4'd2:segs<=7'b0100100; 4'd3:segs<=7'b0110000; 4'd4:segs<=7'b0011001; 4'd5:segs<=7'b0010010; defaultsegs<=7'b1111111;endcase endend endmodule/***************分頻模塊***********************************************///分頻模塊1Hz modulein50MHz_out1Hz(in_50MHz,out_1Hz); inputin_50MHz; outputout_1Hz; regout_1Hz; reg[31:0]t;//usettocount always(posedgein_50MHz) beginif(t<32'd24999999)//計(jì)數(shù)到24999999 begin t<=t+1'B1; end elsebegint<=32'b0; out_1Hz<=~out_1Hz;//頻率為1HZ end end endmodule modulein50MHz_out_8MHz(in_50MHz,out_500hz); inputin_50MHz; outputout_500hz; regout_500hz; reg[31:0]t;//usettocount always(posedgein_50MHz) beginif(t<32'd50000)// begin t<=t+1'B1; end elsebegint<=32'b0; out_500hz<=~out_500hz;//頻率為1HZ end end endmodule//counter10(0~9) modulecounter10(en,clr,clk,q); inputen,clr,clk; output[3:0]q; reg[3:0]q; always(posedgeclk) begin if(clr)q<=4'd0;//clr=0時(shí),清零 elseif(~en)q<=q;//EN=0,暫停計(jì)數(shù) elseif(q==4'b1001)q<=4'b0000; elseq<=q+1;//計(jì)數(shù)器加1 end endmodule//counter10〔時(shí)針個(gè)位〕 modulecounter10_h(en,clr,clk,q,p); inputen,clr,clk; input[3:0]p; output[3:0]q; reg[3:0]q; always(posedgeclk) begin if(clr)q<=4'd0;//clr=0時(shí),清零 elseif(~en)q<=q;//EN=0,暫停計(jì)數(shù) elseif(p==4'b0010&q==4'b0011)q<=4'b0000; elseif((q==4'b1001)&~(p==4'b0010))q<=4'b0000; elseq<=q+1;//計(jì)數(shù)器加1 end endmodule/*****************計(jì)數(shù)模塊********************************************///counter6.v(0~5) modulecounter6(en,clr,clk,q); inputen,clr,clk; output[3:0]q; reg[3:0]q; always(posedgeclk) begin if(clr)q<=4'b0000;//clr=0,清零 elseif(~en)q<=q;//EN=0,暫停計(jì)數(shù) elseif(q==4'b0101)q<=4'b0000; elseq<=q+1'b1;//計(jì)數(shù)器增1 end endmodule//counter3(0~2) modulecounter3(en,ncr,clk,q); inputen,ncr,clk; output[3:0]q; reg[3:0]q; always(posedgeclk) begin if(ncr)q<=4'b0000;//NCR=0,同步清零 elseif(en==0)q<=q;//EN=0,暫停計(jì)數(shù) elseif(q==4'd2) q<=4'b0000; elseq<=q+1'b1;//計(jì)數(shù)器增1 end Endmodule/***********************************ucf***************************************/NET"clk" LOC=B8|IOSTANDARD="LVCMOS33";NET"ad" LOC=G12|IOSTANDARD="LVCMOS33";NET"switch" LOC=N3|IOSTANDARD="LVCMOS33";NET"clr" LOC=E2|IOSTANDARD="LVCMOS

溫馨提示

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

最新文檔

評論

0/150

提交評論