基于verilog数字钟设计报告Word格式文档下载.docx
- 文档编号:19216248
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:28
- 大小:69.50KB
基于verilog数字钟设计报告Word格式文档下载.docx
《基于verilog数字钟设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于verilog数字钟设计报告Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
elseif(Q1>
d24999999)
_1HZ=~_1HZ;
end
elsebegin
=Q1+1'
d1;
(2)、?
秒?
在1HZ?
下?
行秒?
到59秒后,在下一?
0,并?
出一?
,可供下面分?
入?
在?
下,分?
始?
到59后,在下一?
,供小?
的?
新?
小?
加1,?
到23后在下一?
的作用下清零,?
如果有复位信?
分秒全部清零。
modulesecond(cp,reset,mode_flag,BT2,SH,SL,co);
inputcp,reset,BT2;
input[3:
0]mode_flag;
outputco=1'
b0;
//?
出?
regco;
output[3:
0]SL,SH;
出秒?
的十位、各位
reg[3:
0]SH,SL;
reg[7:
0]cnt;
always@(posedgecpornegedgereset)
begin
if(!
reset)begin//有复位,清零
cnt<
=8'
SH<
=4'
SL<
end
elseif((mode_flag==4'
b0010)&
&
(!
BT2))begin//如果分?
,秒清零
if(cnt==8'
d59)//?
到59,下一?
co<
=1'
b1;
else
begin
co=1'
cnt=cnt+8'
=cnt%10;
//秒十位
=cnt/10;
//秒各位
endmodule
和小?
代?
和上述?
似,不再?
出。
secondu4(_1HZ,reset,mode_flag,Keydone2,SH24,SL24,co1);
minuteu5(co11,reset,MH24,ML24,co2);
houru6(co22,reset,HH24,HL24);
(3)、模式?
同?
一?
模式?
按?
MODE,按一下?
生?
一种模式mode_flag,并且可以循?
在不同的模式下可以?
行不同的操作。
其中mode_flag=4'
0000?
正常?
示?
,mode_flag=4'
0001?
模式,mode_flag=4'
00010?
模,mode_flag=4'
0011?
置模式,mode_flag=4'
0100?
置模式。
生:
modulemode(MODE,mode_flag);
inputMODE;
output[3:
reg[3:
always@(negedgeMODE)begin//如果?
到有按?
按下
mode_flag=mode_flag+4'
//模式值加1
if(mode_flag==4'
b0101)//到最后一?
模式后返回第一的模式
mode_flag=2'
nd
Endmodule
modulemode_choose(mode_flag,BT2,_250ms,co1,co2,set_co2,co11,co22,co111,co222);
input[3:
入模式方式,?
操作
inputBT2,_250ms,co1,co2,set_co2;
,正常?
,正常?
置分?
位信?
outputco11,co22,co111,co222;
//分?
,小?
置小?
;
supply1Vdd;
regco11,co22,co111,co222;
always@(mode_flag)begin
case(mode_flag)
4'
b0001:
if(~BT2)co22<
=_250ms;
//小?
模式,有按?
250ms
elsebeginco22<
=co2;
有按?
co11<
=co1;
b0010:
if(~BT2)beginco11<
co22<
elsebeginco11<
b0011:
beginco22<
if(~BT2)co222<
//?
置信?
elseco222<
=set_co2;
b0100:
if(~BT2)co111<
elseco111<
=Vdd;
default:
endcase
endmodule
(4)、任意?
一、?
置?
于?
置模式mode_flag=4'
0011和4'
b0100?
,有?
置。
moduleset_naozhong(co111,co222,set_HH,set_HL,set_MH,set_ML,co2);
inputco111,co222;
0]set_HH,set_HL,set_MH,set_ML;
出相?
outputco2;
minute(co111,Vdd,set_MH,set_ML,co2);
hour(co222,Vdd,set_HH,set_HL);
二、?
到?
置得?
后,通?
比?
二者之?
,相等,?
生一?
允?
,在?
打?
和?
足的情?
下,?
,并送到相?
LED?
如果?
不?
modulenaozhong(Alarm_ctr,_1HZ,set_HH,set_HL,set_MH,set_ML,HH24,HL24,MH24,ML24,nao_signal);
inputAlarm_ctr,_1HZ;
0]set_HH,set_HL,set_MH,set_ML;
0]HH24,HL24,MH24,ML24;
outputnao_signal;
regsignal;
regnao_signal;
reg[16:
0]Q;
度
always@(posedge_1HZ)begin
if((~signal)&
(Alarm_ctr))beginif((set_HH==HH24)&
(set_HL==HL24)&
(set_MH==MH24)&
(set_ML==ML24))signal<
b1//?
elsesignal<
end//未?
到,不?
生
elseif((signal)&
(Alarm_ctr))begin//?
足
nao_signal<
=~nao_signal;
Q=Q+nao_signal;
if(Q>
d720)begin//?
完?
Q<
=16'
signal<
(5)、整?
和秒?
是否都?
到了59,然后再下一?
的作用下?
出整?
,送到LED。
并?
次?
后,?
止?
always@(posedge_500ms)begin
if(((SH*10+SL)==8'
d59)&
((MH*10+ML)==8'
d59))begin
=7'
bao<
end//允?
elseif((Q1<
10*HH+HL)&
(bao))begin
bao_signal<
=~bao_signal;
=Q1+bao_signal;
一次?
加一
elseif(Q1==(10*HH+HL))//?
到整?
止信?
else
End
(6)、12—24小?
切?
24小?
成12小?
,并存入相?
的寄存器。
上切?
示。
相?
modulehour12_24(HH24,HL24,HH12,HL12);
0]HH24,HL24;
0]HH12,HL12;
always@(HH24orHL24)begin
if((HH24*10+HL24)<
=12)
HH12<
=HH24;
HL12<
=HL24;
elseif(((HH24*10+HL24)>
=13)&
((HH24*10+HL24)<
=19))
=HL24-4'
d2;
=19)&
=21))
=HL24+4'
d8;
=HH24-4'
(7)、?
示模?
一、?
管?
示:
的4位十?
制?
用case?
句?
的8位二?
,送入?
代?
moduleSEG7_LUT(oSEG1,iDIG);
input[3:
0]iDIG;
入要?
示的?
output[7:
0]oSEG1;
reg[7:
0]oSEG;
wire[7:
always@(iDIG)
case(iDIG)
4'
h0:
oSEG=8'
b00111111;
h1:
b00000110;
h2:
b01011011;
h3:
b01001111;
h4:
b01100110;
h5:
b01101101;
h6:
b01111101;
h7:
b00000111;
h8:
b01111111;
h9:
b01101111;
endcase
assignoSEG1=~oSEG;
//由于是共?
极?
管,低?
平?
示,所以取反
二、LED?
示:
moduledisplay_LED(s_out,s_int);
0]s_int;
output[3:
0]s_out;
wire[3:
0]s_out1;
always@(s_int)
case(s_int)
s_out=4'
b0000;
b0001;
b0010;
b0011;
b0100;
b0101;
b0110;
b0111;
b1000;
b1001;
assigns_out1=~s_out;
程常?
(1)要注意?
程序的?
程中begin和end配?
似于C?
言中的括?
匹配?
不通?
,最后?
查出是缺少一?
end?
束符?
修改后?
(2)VerilogHDL?
言?
法?
在最初的?
的程序?
中,?
、分?
放在了另外的一?
always?
法通?
查?
料,在VerilogHDL?
言的?
中?
注意不同的always?
不可以?
同一?
量?
行操作,即一?
量不可以?
操作。
和分?
的操作与?
放在同一?
(3)?
示于?
不一?
,主要是由?
造成的原因。
管一?
始不?
化,?
明?
有?
行,是由于分?
引起。
心得体?
次的?
程?
束了,在?
中我?
了很多?
西。
首先是?
VerilogHDL?
思想有了深入理解,?
种自?
向下的?
理念?
用于?
多功能?
字?
,突出了VerilogHDL作?
硬件描述?
言的良好可?
性和可移植性,?
上?
期所?
的而理?
知?
有了深刻的理解。
其次是?
法熟悉,在?
中,我?
到很多VerilogHDL?
法知?
,比如在?
不同的?
中不能?
行操作,比如在用VerilogHDL?
言中?
程序?
要注意begin和end?
句的匹配?
,在使用VerilogHDL?
不可以使用中文注?
等等。
种?
也有了很大的?
助。
最后是?
作品?
思想,在?
不同的系?
方案?
合考?
最优方案。
各?
也要考?
合情?
而制定出最符合?
情?
方案,方案?
行?
比、?
,最?
确定。
中我不?
到有?
以及?
方面的?
思?
系?
功能的?
也有了?
深入的了解,?
各模?
等也?
到不少?
西,?
之,?
到很多?
西,也?
固了我的理?
附代?
moduleclock(clk,reset,MODE,Alarm_ctr,BT2,H12_24,DSH,DSL,DMH,DML,DHH,DHL,dian,bao_signal,nao_signal);
inputclk;
//50MHz
inputreset,MODE,Alarm_ctr,BT2,H12_24;
//复位?
,模式?
按?
,12—24小?
output[7:
0]DMH,DML,DHH,DHL;
//4?
outputdian,bao_signal,nao_signal;
隔?
?
0]DSH,DSL;
//秒?
出信?
wire[3:
0]SH,SL,MH,ML,HH,HL;
0]LED_mode;
0]HH12,HL12,HH24,HL24,MH24,ML24,SH24,SL24;
wire_1HZ,_10ms,_250ms,_500ms;
wireKeydone1;
wireKeydone2;
wireco1,co11,co111,co2,co22,co222,set_co2;
assigndian=1'
devide_fu1(_1HZ,_10ms,_250ms,_500ms,reset,clk);
//分?
,得到4种不同?
key_pressu2(_10ms,MODE,Keydone1);
//模式?
去抖?
key_pressu20(_10ms,BT2,Keydone2);
去除抖?
modeu3(Keydone1,mode_flag);
//通?
模式按?
生不同模式
SEG7_LUTu7(DML,ML);
示
SEG7_LUTu8(DMH,MH);
SEG7_LUTu9(DHL,HL);
SEG7_LUTu10(DHH,HH);
display_LEDu11(DSL,SL);
//LED?
示秒或模式?
display_LEDu12(DSH,SH);
mode_chooseu13(mode_flag,Keydone2,_250ms,co1,co2,set_co2,co11,co22,co111,co222);
行不同操作
hour12_24u14(HH24,HL24,HH12,HL12);
//12--24小?
boshiu15(HH,HL,MH,ML,SH,SL,_1HZ,bao_signal);
//整?
set_naozhongu16(co111,co222,set_HH,set_HL,set_MH,set_ML,set_co2);
Naozhongu17(Alarm_ctr,_500ms,set_HH,set_HL,set_MH,set_ML,HH24,HL24,MH24,ML24,nao_signal);
//任意?
LUT_modeu18(mode_flag,H12_24,HH12,HL12,HH24,HL24,MH24,ML24,set_HH,set_HL,set_MH,set_ML,MH,ML,HH,HL);
//通?
LED_modeu19(mode_flag,SH24,SL24,SH,SL);
模式?
moduledevide_f(_1HZ,_10ms,_250ms,_500ms,nCR,_50MHZ);
input_50MHZ,nCR;
output_1HZ,_10ms,_250ms,_500ms;
reg_1HZ,_10ms,_250ms,_500ms;
reg[31:
0]Q1,Q2,Q3,Q4;
Q2<
Q3<
Q4<
elseif(Q2>
d249999)
_10ms=~_10ms;
elseif(Q4>
d6299999)
_250ms=~_250ms;
elseif(Q3>
d12499999)
_500ms=~_500ms;
=Q2+1'
=Q3+1'
=Q4+1'
endmodule
modulesecond(cp,reset,mode_flag,BT2,SH,SL,co);
reset)
begin
SL=4'
SH=4'
cnt<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 verilog 数字 设计 报告