?? paobiao.v.txt
字號:
/*信號定義:
CLK: CLK 為時鐘信號;
CLR: 為異步復位信號;
PAUSE: 為暫停信號;
MSH,MSL: 百分秒的高位和低位;
SH,SL: 秒信號的高位和低位;
MH,ML: 分鐘信號的高位和低位。 */
module paobiao(CLK,CLR,PAUSE,MSH,MSL,SH,SL,MH,ML);
input CLK,CLR;
input PAUSE;
output[3:0] MSH,MSL,SH,SL,MH,ML;
reg[3:0] MSH,MSL,SH,SL,MH,ML;
reg cn1,cn2; //cn1 為百分秒向秒的進位,cn2 為秒向分的進位
//百分秒計數(shù)進程,每計滿100,cn1 產(chǎn)生一個進位
always @(posedge CLK or posedge CLR)
begin
if(CLR) begin //異步復位
{MSH,MSL}<=8'h00;
cn1<=0;
end
else if(!PAUSE) //PAUSE 為0 時正常計數(shù),為1 時暫停計數(shù)
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
//秒計數(shù)進程,每計滿60,cn2 產(chǎn)生一個進位
always @(posedge cn1 or posedge CLR)
begin
if(CLR) begin //異步復位
{SH,SL}<=8'h00;
cn2<=0;
end
else if(SL==9) //低位是否為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
//分鐘計數(shù)進程,每計滿60,系統(tǒng)自動清零
always @(posedge cn2 or posedge CLR)
begin
if(CLR)
begin {MH,ML}<=8'h00; end //異步復位
else if(ML==9) begin
ML<=0;
if(MH==5) MH<=0;
else MH<=MH+1;
end
else ML<=ML+1;
end
endmodule
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -