Verilog 綜合練習 電子鐘的實現

2021-09-10 06:27:54 字數 3059 閱讀 7259

此次試驗為我們的一次課程練習,僅供參考。

所用硬體為老師基於maxll系列emp240t100c5晶元設計的電路板,包含振盪器、64個發光二極體、按鈕,4個七段解碼顯示器等相關器件。要求編寫程式完成電子鐘功能。

程式介面:

pin_50, pin_51,未用。

cp,振盪器脈衝輸入。rst,ch,cm,三個按鈕 這裡設計為 復位 校時 校分。hc,未用。

wire [7:0] sh,sl,用於控制60個發光二極體顯示秒針(硬體上為8×8的行列矩陣)。

wire [3:0] w,用於選擇顯示4個七段解碼顯示器(每次只亮乙個顯示器)。

wire [7:0] ddo,控制七段解碼顯示器顯示的數字。

引腳連線:

主模組程式:

module clk

( input pin_50, pin_51,

input cp,rst,ch,cm,hc,

output wire [7:0] sh,sl,

output wire [3:0] w,

output wire [7:0] ddo

);wire sp,mp,hp,dp; //秒脈衝,分脈衝,時脈衝,天脈衝。

wire [14:0]q; //振盪器計數,所用振盪器為32768hz。

wire [5:0]s; //秒計數。

wire [5:0]m; //分計數。

wire [3:0]h; //時計數。

wire [6:0] hhdo,hldo,mhdo,mldo; //4個七段解碼顯示器訊號。

//從振盪器脈衝開始依此分頻得到秒、分、時。

pulse#(15,32768) secp(cp,rst,1,0,sp,q);

pulse#(6,60) minp(sp,rst,1,0,mp,s);

pulse#(6,60) hourp(mp,rst,cm,q[13],hp,m);

pulse#(4,12) dayp(hp,rst,ch,q[13],dp,h);

//將分與時轉換為4片七段解碼器訊號。

led_7seg#(1) hh(w[3],cp,h/10,hhdo);

led_7seg#(4) hl(w[2],cp,h%10,hldo);

led_7seg#(3) mh(w[1],cp,m/10,mhdo);

led_7seg#(4) ml(w[0],cp,m%10,mldo);

//根據秒數s置sh、sl接通相應的發光二極體。

assign sh=8'b00000001<

assign sl=~(8'b00000001<

//按合適頻率依此顯示各個七段解碼顯示器。

assign w=4'b0001<

assign ddo=;

endmodule

分頻模組:

實現高頻脈衝分頻,用於得到秒分時。

module pulse 

#( parameter w, //暫存器位數

parameter n //進製數)(

input op, //源脈衝

input rs, //復位脈衝

input rv, //校時脈衝

input sp, //秒脈衝

output reg gp, //目的脈衝

output reg[w-1:0]r //源脈衝計數

);wire tp;

assign tp=op|(~rv&sp);

always @(posedge tp or negedge rs)

begin

if(~rs)

begin

r<=0;

endelse

begin

if(r七段解碼器訊號轉換模組:

實現個位數七段解碼器訊號的輸出。

module led_7seg

#( parameter n //所表示的個位數最大所需位數)(

input w, //片選訊號

input op, //振盪器脈衝

input [n-1:0]num, //目標個位數

output [6:0]line //該數的七段解碼器訊號

);reg [6:0]sig;

always @(posedge op)

case (num)

4'd0:sig<=7'b0111111;// 1111110;

4'd1:sig<=7'b0000110;// 0110000;

4'd2:sig<=7'b1011011;// 1101101;

4'd3:sig<=7'b1001111;// 1111001;

4'd4:sig<=7'b1100110;// 0110011;

4'd5:sig<=7'b1101101;// 1011011;

4'd6:sig<=7'b1111101;// 1011111;

4'd7:sig<=7'b0000111;// 1110000;

4'd8:sig<=7'b1111111;// 1111111;

4'd9:sig<=7'b1101111;// 1111011;

default:sig<=7'b0;

endcase

assign line=&};

endmodule

編譯邏輯**:

主要部分電路圖(老師設計繪製):

最終實現12小時制電子鐘,包含復位校時功能。

FPGA數字電子鐘

1.實驗內容 1 整體功能 數字電子鐘應能以秒為最小單位計時,同時用數字直觀的顯示當前時 分 秒。2 系統結構 數字電子鐘的系統結構框圖如圖7 1 1所示。圖中秒訊號產生電路產生1hz的標準計時訊號,計時電路記錄當前的時 分 秒,數字顯示以數字的方式顯示當前時間,報時電路用於整點報時,時分調整電路用...

電子鐘延時的實現

可以發現這個 相當簡潔,1 show函式,把當前時間值,比如08 10 15把上面這些數字和 分別送到緩衝區。2 display,就是把緩衝區中的值,動態顯示到各自的數碼管中。3 reflashtime,這個函式可以通過second的增加來重新整理當前時間值。在2與3之間就是1秒的延時。如何實現對電...

用C C 寫的簡易電子鐘

先來看看簡易電子鐘的效果圖 程式所包含的函式如下表所示 函式名輸入 輸出main無無 numdisplay num,x,y 無setposition x,y無 separatenum numnumgroup dotdisplay x,y無 整個程式都不是特別難,下面就直接上流程圖和 了 的dev c...