eda,verilog数字钟设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字钟

一、任务解析

用Verilog硬件描述语言设计数字钟,实现:

1、具有时、分、秒计数显示功能,以二十四小时循环计时。

2、具有调节小时,分钟的功能,调整时对应的数字闪烁。

3、具有整点报时及闹铃时间可调的功能。

4、数字钟具有四种模式:正常显示、时间调整、闹铃时间调整、秒表。

二、方案论证

没有闹铃功能

三、重难点解析

选择模式:module beii(clr,selin_key,beii_out);

input clr,selin_key;

output [1:0]beii_out;

wire [1:0]beii_out;

reg [1:0]selout_key;

always@(negedge clr or posedge selin_key) begin

if(!clr) selout_key=0;

else begin if(selout_key==2) selout_key=0;

else selout_key=selout_key+1;end

end

assign beii_out=selout_key;

endmodule

头文件中:

module clk_top(clr,clk,upkey,downkey,sel,a,b,c,d,e,f,g,p,clr_key,selin_key);

clr:清零clk:50M时钟

upkey:向上调downkey:向下调

clr_key:恢复初始状态selin_key:模式选择

四、硬件资源分配

60进制module mycnt60(clr,clk,upkey,downkey,selout,q,c);

input clk,clr,upkey,downkey;//upkey为加按键

input [1:0] selout;

output[7:0] q;//60进制输出

output c;//进位溢出位

reg c;

reg[7:0] q;

wire new_clk1,ckb,ckc,ckd,cko;

assign new_clk1=clk|((!selout[0]&selout[1])&(upkey|downkey));

LCELL AA(new_clk1,ckb);//信号延迟

LCELL BB(ckb,ckc);

LCELL CC(ckc,ckd);

LCELL DD(ckd,cko);

initial c=0;

always @(posedge cko or negedge clr )begin

if(!clr) q=8'h00;

else begin if(selout==2) begin if(upkey)begin

if(q==8'h59) q=8'h00;

else if(q==8'h?9) q=q+4'h7;

else q=q+1;

end

else if(downkey)begin

if(q==8'h00) q=8'h59;

else if(q==8'h?0) q=q-4'h7;

else q=q-1;

end

end

else begin

if(q==8'h59) begin q=8'h00;c=1;end

else if(q==8'h?9) begin q=q+4'h7;c=0;end

else begin q=q+1;c=0;end

end

end

end

endmodule

五、实验总结

通过对数字钟的设计到成功是耗时最长的,但也是学到知识点最多,收获最多的。每一个模块与代码都必须仔细研读,参照前人的成功经验,再加上自己的学习心得,将头文件,24进制,浏览扫描模块自己写出,并最终调试成功,非常开心!觉得学到有用的东西,很实用。当然离不开老师与同学的帮助与支持,历练了自己。对数字系统设计有了更深层次的了解,对数字电路也有了知识的补充与扩充!

相关文档
最新文档