1 / 13
文档名称:

实现多功能数字钟.doc

格式:doc   页数:13
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实现多功能数字钟.doc

上传人:小猪猪 2011/12/6 文件大小:0 KB

下载得到文件列表

实现多功能数字钟.doc

文档介绍

文档介绍:F P G A课程设计报告
(实现多功能数字钟)
专业班级: 07通信2班
姓名:朱绍兴
学号:070103021136
时间:

标题:设计多功能数字钟控制电路
任务书:用MAX+PLUSⅡ软件及Verilog HDL语言设计
一个多功能的数字钟,包括有时、分、秒的计
时,以及校时(对小时、分钟和秒能手动调整以校准时间)、正点报时(每逢整点,产生“嘀嘀嘀嘀-嘟”,4短一长的报时音)等附加功能。
关键词:24进制、60进制、正点报时、校时、数字钟
四、总体方案:多功能数字钟控制电路框图是由三部分组成的,即秒分时控制电路、整点报时控制电路、时段控制电路。用Verilog HDL硬件描述语言完成编译和仿真。
五、原理框图如下:
建立设计工程项目名和顶层图形文件。
↓设计底层各模块*.v 文件,仿真底层各模块*.v 文件,仿真波形正确并打包

用Max+plusⅡ对打包好的文件进行管脚分配。

在FPGA实验板上下载并观察功能
六、Verilog HDL硬件描述语言编写的功能模块:
/*秒计数器 m60*/
module m60(M,CP60M,CPM,RD);
output [7:0]M;
output CP60M;
input CPM;
input RD;
reg [7:0]M;
wire CP60M;
always@(negedge RD or posedge CPM)
begin
if(!RD)
begin M[7:0]<=0;
end
else
begin
if((M[7:4]==5)&&(M[3:0]==9))
begin
M[7:0]<=0;
end
else
begin
if(M[3:0]==9)
begin
M[3:0]<=0;
if(M[7:4]==5)
begin M[7:4]<=0;end
else M[7:4]<=M[7:4]+1;
end
else M[3:0]<=M[3:0]+1;
end
end
end
assign CP60M=~(M[6]&M[4]&M[3]&M[0]);
endmodule
/*分计数器 m60*/
module m60(M,CP60M,CPM,RD);
output [7:0]M;
output CP60M;
input CPM;
input RD;
reg [7:0]M;
wire CP60M;
always@(negedge RD or posedge CPM)
begin
if(!RD)
begin M[7:0]<=0;
end
else
begin
if((M[7:4]==5)&&(M[3:0]==9))
begin
M[7:0]<=0;
end
else
begin
if(M[3:0]==9)
begin
M[3:0]<=0;
if(M[7:4]==5)
begin M[7:4]<=0;end
else M[7:4]<=M[7:4]+1;
end
else M[3:0]<=M[3:0]+1;
end
end
end
assign CP60M=~(M[6]&M[4]&M[3]&M[0]);
endmodule
/*小时计数器 m24*/
module m24(H,CPH,RD);
output [7:0]H;
input CPH,RD;
reg [7:0]H;
always@(negedge RD or posedge CPH)
begin
if(!RD) H[7:0]<=0;
else
begin
if((H[7:4]==2)&&(H[3:0]==3))
begin
H[7:0]<=0;
end
else
begin
if(H[3:0]==9)
begin H[3:0]<=0;
H[7:4]<=H[7:4]+1;
end
else H[3:0]<=H[3:0]+1;
end
end
end
endmodule
/*秒分时控制计数器 xiaoshi2*/
module xiaoshi2(CPM,CPH,CPS,CP60M,CP60S,SWM,SWH);
output CPM,CPH;
input SWM,SWH;
input CPS,CP60S,CP60M;
reg CPM,CPH;
always@(SWM or SWH or CPS or CP60S or