版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)數(shù)學(xué)二年級第二學(xué)期口算計(jì)算共3036道題
- 創(chuàng)業(yè)過程中的市場調(diào)研與定位策略
- 創(chuàng)新教育模式學(xué)校生態(tài)旅游的開發(fā)策略
- 傳統(tǒng)與現(xiàn)代融合小鎮(zhèn)食品產(chǎn)業(yè)的創(chuàng)新之路
- 2025年衡水貨運(yùn)從業(yè)資格證模擬考試題庫
- 創(chuàng)新科技引領(lǐng)下的社區(qū)電子產(chǎn)品市場發(fā)展新趨勢
- 2025年景德鎮(zhèn)c1貨運(yùn)從業(yè)資格證考試題下載
- 辦公室中的教育智慧引導(dǎo)員工面對工作挑戰(zhàn)
- 個(gè)性化服務(wù)在商業(yè)中的重要性
- 農(nóng)民合作社的商業(yè)模式創(chuàng)新研究
- GB/T 18742.2-2017冷熱水用聚丙烯管道系統(tǒng)第2部分:管材
- GB 22128-2019報(bào)廢機(jī)動(dòng)車回收拆解企業(yè)技術(shù)規(guī)范
- DB32-T 4416-2022《高延性纖維增強(qiáng)水泥基復(fù)合材料加固砌體結(jié)構(gòu)應(yīng)用技術(shù)規(guī)程》
- 復(fù)讀生勵(lì)志主題班會(huì)
- 2023年復(fù)旦大學(xué)博士研究生科研計(jì)劃書-模板
- 膠囊內(nèi)鏡的臨床與應(yīng)用
- 《不刷牙的小巨人》演講比賽PPT
- 2020版《辦公建筑設(shè)計(jì)標(biāo)準(zhǔn)》
- 新修訂蘇教版小學(xué)語文新課程標(biāo)準(zhǔn)
- 兒科醫(yī)生二次分配(兒科醫(yī)生二次分配方案)
- 電動(dòng)車充電應(yīng)急預(yù)案
評論
0/150
提交評論