数字钟实验报告Word格式.docx

上传人:b****4 文档编号:16357606 上传时间:2022-11-23 格式:DOCX 页数:19 大小:225.01KB
下载 相关 举报
数字钟实验报告Word格式.docx_第1页
第1页 / 共19页
数字钟实验报告Word格式.docx_第2页
第2页 / 共19页
数字钟实验报告Word格式.docx_第3页
第3页 / 共19页
数字钟实验报告Word格式.docx_第4页
第4页 / 共19页
数字钟实验报告Word格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数字钟实验报告Word格式.docx

《数字钟实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《数字钟实验报告Word格式.docx(19页珍藏版)》请在冰豆网上搜索。

数字钟实验报告Word格式.docx

input_50mhzin;

inputadjminkey,adjhrkey;

inputh12;

inputncr;

output[6:

0]led0,led1,led2,led3;

wire[7:

0]led_a,led_b;

wire_1hz,_1khz,_5hz;

0]hour,minute,second,set_hr,set_min;

outputhour12;

wireh12;

output[7:

0]led_sec;

assignhour12=h12;

divided_frequencyu0(_1hz,ncr,_50mhzin);

top_clocku1(hour,minute,second,_1hz,ncr,adjminkey,adjhrkey,_50mhzin);

displayu2(_50mhzin,_5hz,ncr,led_a,led_b,led_sec,hour,minute,second,h12);

SEG7_LUTu3(led_a[7:

4],led3);

SEG7_LUTu4(led_a[3:

0],led2);

SEG7_LUTu5(led_b[7:

4],led1);

SEG7_LUTu6(led_b[3:

0],led0);

endmodule

2.分频模块:

moduledivided_frequency(_1hzout,ncr,_50mhzin);

input_50mhzin,ncr;

output_1hzout;

supply1vdd;

wire[11:

0]q;

wire_1khzin;

wireen1,en2;

divfreq50M_1Khzdu00(_1khzin,ncr,_50mhzin);

//先调用1khz分频

counter10du0(q[3:

0],ncr,vdd,_1khzin);

counter10du1(q[7:

4],ncr,en1,_1khzin);

counter10du2(q[11:

8],ncr,en2,_1khzin);

//再调用三个10计数器,将1khz分为1hz

assignen1=(q[3:

0]==4'

h9);

assignen2=(q[7:

4]==4'

h9)&

&

(q[3:

assign_1hzout=q[11];

assign_500hzout=q[0];

endmodule

3.时钟运行模块

moduletop_clock(hour,minute,second,_1hz,ncr,adjminkey,adjhrkey,_50mhzin);

input_1hz,_50mhzin,ncr,adjminkey,adjhrkey;

0]hour,minute,second;

//时、分、秒每个用八位二进制表示两位BCD码

//高电平,是使能一直打开

wiremincp,hrcp,_5hz;

//_5hz用于快速校时

divfreq50M_5hzut0(_5hz,ncr,_50mhzin);

counter60ut1(second,ncr,vdd,_1hz);

counter60ut2(minute,ncr,vdd,~mincp);

//秒和分使用60进制

counter24ut3(hour[7:

4],hour[3:

0],ncr,vdd,~hrcp);

//时钟为24进制(默认)

assignmincp=adjminkey?

_5hz:

(second==8'

h59);

assignhrcp=adjhrkey?

({minute,second}==16'

h5959);

//进位或校时使能控制

4.显示模块:

moduledisplay(_50mhz,_5hz,cr,led_a,led_b,led_sec,hour,minute,second,h12);

input[7:

0]hour,minute,second;

//时分秒

input_50mhz,cr,_5hz;

0]led_a,led_b,led_sec;

//数码管显示缓存

//12,24小时制切换

reg[7:

reg[2:

0]mod;

//模式变量

always@(posedge_50mhz)

begin

led_b=minute;

led_sec=second;

//模式0,显示时分秒

if(~h12)

begin

led_a=hour;

led_b=minute;

led_sec=second;

end

else

begin

case(hour)

8'

h13,

h14,

h15,

h16,

h17,

h18,

h19,

h22,

h23,

h24:

led_a=hour-8'

h12;

h20:

led_a=8'

h08;

h21:

h09;

default:

led_a=hour;

endcase

end//12/24小时切换,24到12,相应BCD码减

end

5.数码管操作模块

moduleSEG7_LUT(iDIG,oSEG);

input[3:

0]iDIG;

output[6:

0]oSEG;

reg[6:

always@(iDIG)

begin

case(iDIG)

4'

h1:

oSEG=7'

b1111001;

//---t----

h2:

b0100100;

//||

h3:

b0110000;

//ltrt

h4:

b0011001;

h5:

b0010010;

//---m----

h6:

b0000010;

h7:

b1111000;

//lbrb

h8:

b0000000;

h9:

b0010000;

//---b----

ha:

b0001000;

hb:

b0000011;

hc:

b1000110;

hd:

b0100001;

he:

b0000110;

hf:

b0001110;

h0:

b1000000;

endcase

end

六、功能仿真

1.六进制

2.十进制

3.六十进制(分了几张图截图)

4.24进制

5.异步清零仿真

6.正常计时仿真

●秒计时

●分计时

●小时计时

●23:

59:

59秒返0

7手动校小时和分钟仿真

ADJHrKey与AdjMinKey均为高电平有效,

七、思考题

1.什么是分层次的电路设计方法?

叙述分层次设计电路的基本过程.

答:

在电路设计中,可以将两个或者多个模块组合起来描述电路逻辑功能,通常称为分层次的电路设计.自顶而下和自底而上是两种常用的设计方法.在自顶而下的设计中,先定义顶层模块,然后再定义顶层模块中用到的子模块.而在自底而上的设计中,底层的各个子模块首先被确定下来,然后将这些子模块组合起来构成顶层模块.

2.在用MAX+PLUSII软件设计数字钟电路时,简述对60进制计数器进行仿真分析的大致过程.若仿真时栅格的大小(GRIDSIZE)为0.5ms,设置CP信号时倍率(MultipliedBy)为软件默认值1,那么仿真文件的时间至少需要多长才能完整反映计数过程?

至少要0.5ms*60=30ms

八、试验中遇到的问题与解决办法

这次实验主要是Verilog代码的编写和仿真,在波形的仿真过程中,有许多操作并不清楚,尤其是部分功能的波形仿真输出和如何手动调整时钟的波形仿真,虽然最后有同学帮忙,但是最后还是操作得很不熟练。

九、实验小结

本次实验让我们巩固了Verilog代码编写与波形仿真,掌握了更多了相关波形的仿真操作,但是在部分功能的操作上,以及网格的重新建立等方面显得仍然不够熟练,还需要更多的锻炼。

十、附录(附源代码)

//clock.v

moduleclock(led0,led1,led2,led3,led_sec,_50mhzin,adjminkey,adjhrkey,ncr,h12,hour12);

wire[3:

0]hour_num1,hour_num0,min_num1,min_num0,second_num1,second_num0;

Endmodule

//topclock.v

output[3:

0]hour_num1,hour_num0,min_num1,min_num0,second_num1,second_num0;

//divfreq50M_5hzut0(_5hz,ncr,_50mhzin);

assignhour_num1[3:

0]=hour[7:

4];

assignhour_num0=hour[3:

0];

assignmin_num1=minute[7:

assignmin_num1=minute[3:

assignsecond_num1=second[7:

assignsecond_num0=second[3:

//display.v

//SEG7_LUT.v

//---t----

//divided_frequency.v

moduledivfreq50M_1Khz(_1khzout,ncr,_50mhzin);

output_1khzout;

reg_1khzout;

reg[15:

0]cnt;

always@(posedge_50mhzin)

if(~ncr)

_1khzout<

=1'

b0;

else

if(cnt==16'

d24999)

begin

_1khzout=~_1khzout;

cnt<

=16'

end//50000分频

else

=cnt+1'

b1;

moduledivfreq50M_5hz(_5hzout,ncr,_50mhzin);

input_50mhzin,ncr;

output_5hzout;

reg_5hzout;

reg[24:

if(~ncr)

_5hzout<

if(cnt==25'

d4999999)

_5hzout=~_5hzout;

=25'

end//一千万分频

//counter10.v

modulecounter10(q,ncr,en,cp);

//模十

inputcp,ncr,en;

reg[3:

always@(posedgecpornegedgencr)

if(~ncr)q<

=4'

b0000;

elseif(~en)q<

=q;

elseif(q==4'

b1001)q<

elseq<

=q+1'

modulecounter6(q,ncr,en,cp);

//模6

b0101)q<

modulecounter60(cnt,ncr,en,cp);

//模60

wireenp;

counter10uc0(cnt[3:

0],ncr,en,cp);

counter6uc1(cnt[7:

4],ncr,enp,cp

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1