南理工EDAII优秀实验报告课件文档格式.docx
《南理工EDAII优秀实验报告课件文档格式.docx》由会员分享,可在线阅读,更多相关《南理工EDAII优秀实验报告课件文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
本实验设计采用Top-down及模块化设计思想,独立设计出各功能电路,并进行整合,最终得到性能完善的数字钟系统。
关键词:
verilog,多功能数字钟,多模式切换,Top-down
Abstract
ThisprojectistousethesoftwareQuartusIItodesignamulti-functiondigitalclockanduseSmartSOPCexperimentsystemtoverifyit.Thedigitalclockcompletewithveriloglanguagedescription.Itincludestimekeeping,hour-devision,minute-division,reset,maintainandhourlychimeandotherbasicfunctions.Moreover,onthebasisoftheabovefunctions,additionalfeaturessuchasthemodeswitching,stopwatch,alarm,bellandsoonareadded.Finally,thewholeprojectisdownloadedtoSmartSOPCexperimentsystemtodebugandtesttoensurethecorrectnessoftheengineeringdesign.TheexperimentaldesignusingTop-downandmodulardesign,theindependentdesignofeachfunctionalcircuit,andintegration,andultimatelyimprovetheperformanceoftheobtaineddigitalclocksystem.
Keywords:
verilog,Multi-functiondigitalclock,mode-switch,Top-down
目录
一、设计要求1
1.题目简介1
2.设计基本要求1
3.设计提高部分1
二、整体方案2
三、基础模块设计2
1.分频模块2
2.基本计时模块4
a.秒模块4
b.分模块6
c.时模块7
d.保持模块8
e.校时校分模块9
3.整点报时模块9
4.闹钟及彩铃模块10
a.闹钟设置模块10
b.比较模块11
c.彩铃模块11
5.秒表模块12
6.动态显示13
a.64选4模块13
b.BCD译码器16
7.消颤模块16
8.顶层模块17
四、下载与调试19
1.编译19
2.管脚分配19
3.下载验证19
五、实验中遇到的问题及解决方法19
六、设计收获与感受20
七、参考文献21
多功能数字时钟设计
1、设计要求
1.题目简介
设计一个数字钟,可以完成00:
00:
00到23:
59:
59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能。
2.设计基本要求
1)能进行正常的时、分、秒计时功能;
2)分别由六个数码管显示时分秒的计时,从左到右分别为时十位、时个位、分十位、分个位、秒十位、秒个位;
3)K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变);
4)K2是系统的清零开关(K2=0正常工作,K2=1时钟清零);
5)K3是系统的校分开关(K3=0正常工作,K3=1可以快速校分);
6)K4是系统的校时开关(K4=0正常工作,K4=1可以快速校时);
3.设计提高部分
7)使系统具有整点报时功能(当时钟计到59’53”时开始报时,在59’53”,59’55”,59’57”时报时频率为512Hz,59’59”时报时频率为1kHz);
8)闹表设定功能;
9)彩铃功能:
当闹钟打开时,时钟走到闹钟的电路时,响起《友谊天长地久》的音乐。
10)秒表功能;
11)静音功能;
12)开关的分配(实验板只有8个开关),实验中对其他开关的分配如下:
K5
闹钟分调整/秒表启动停止
K6
闹钟时调整/秒表清零
K7K8
00
时钟模式
01
静音模式
10
闹钟模式
11
秒表模式
表1.1
2、整体方案
整个系统采用Top-down及模块化设计思想,独立设计出各功能电路,并进行整合,最终得到性能完善的数字钟系统。
具体示意图如下:
图2.1
3、基础模块设计
4.分频模块
数字计时器基本功能是计时,因此首先需要获得具有精确振荡时间的脉振信号,以此作为计时电路的时序基础,实验中可以使用的振荡频率源为48MHz,通过分频获得所需脉冲频率(1Hz,2Hz,10Hz,100Hz,512Hz,1kHz)。
其中,1Hz用于驱动时钟,2Hz用于快速校时校分,10Hz用于消颤电路,100Hz用于驱动秒表,512Hz用于低频闹铃,1kHz用于高频闹铃和动态扫描显示。
Verilog程序如下:
moduledivider(out_1hz,out_2hz,out_10hz,out_100hz,out_512hz,out_1khz,clk_48mhz,clr);
outputout_1hz,out_2hz,out_10hz,out_100hz,out_512hz,out_1khz;
inputclk_48mhz,clr;
regout_1hz,out_2hz,out_10hz,out_100hz,out_512hz,out_1khz;
reg[31:
0]count_1hz,count_2hz,count_10hz,count_100hz,count_512hz,count_1khz;
parameterN_1hz=48000000,N_2hz=24000000,N_10hz=4800000,
N_100hz=480000,N_512hz=93750,N_1khz=48000;
always@(posedgeclk_48mhz)
begin
if(clr)
begin
count_1hz<
=32'
b0;
out_1hz=0;
end
elseif(count_1hz<
N_1hz/2-1)
=count_1hz+1'
b1;
else
out_1hz=~out_1hz;
end
·
endmodule
其各引脚定义如下:
引脚名
引脚类型
功能
clk_48mhz
input
系统时钟输入
clr
系统清零
out_1hz
output
1Hz输出
out_2hz
2Hz输出
out_10hz
10Hz输出
out_100hz
100Hz输出
out_512hz
512Hz输出
out_1khz
1kHz输出
表3.1
5.基本计时模块
24小时计时电路分为秒、分、时三个模块,依次进位。
其中,秒、分模块均采用模60计数器,时模块采用模24计数器。
时分秒的高低位分别采用BCD码。
设计思路框架图如下:
a.秒模块
moduleseccount(clkin,clr,sec_out,sec_flag1,sec_flag2,sec_carry);
inputclkin,clr;
output[7:
0]sec_out;
outputsec_flag1,sec_flag2,sec_carry;
reg[7:
0]sec_out;
regsec_flag1,sec_flag2,sec_carry;
always@(posedgeclkin,posedgeclr)//clk上升沿时刻计数
if(clr)
sec_out<
=0;
else
case(sec_out)
8'
h09:
sec_out<
=8'
h10;
h19:
h20;
h29:
h30;
h39:
h40;
h49:
h50;
h59:
h00;
default:
=sec_out+8'
endcase
End
case(sec_out)
h53:
sec_flag1<
=1'
h55:
h57:
endcase
sec_flag2<
Endcase
casez(sec_out)
h5z:
sec_carry<
endcase
clk_in
1Hz频率输入
sec_out
秒输出
sec_flag1
用于整点报时,在53,55,57秒时为高电平
sec_flag2
用于整点报时,在59秒时为高电平
sec_carry
进位标志,在5x秒时为低电平
表3.2
其仿真波形如下:
图3.1
b.分模块
modulemincount(clkin,clr,min_out,min_flag,min_carry);
0]min_out;
outputmin_flag,min_carry;
0]