《数字系统设计课程设计报告多功能数字钟》由会员分享,可在线阅读,更多相关《数字系统设计课程设计报告多功能数字钟(20页珍藏版)》请在金锄头文库上搜索。
1、电子信息学院课程设计报告课 程 名 称: 数字系统设计课程设计 题 目: 多功能数字钟设计 年级/专业/班: &n
2、bsp; 学 生 姓名1: 学 号: 学 生 姓名2: &
3、nbsp; 学 号: 年 月 日目 录1课程设计目标和流程分析31.1课程设
4、计目标31.2开发环境说明31.3设计流程说明32系统设计32.1系统架构设计32.2子模块分析32.3调试结果33小结3附录:主要代码3课程设计目标和流程分析1.1 课程设计目标基于Verilog语言描述系统的功能;在quartusII环境中编译通过;仿真通过并得到正确的波形;掌握数字系统的分析和设计方法。能够熟练的、合理的选用集成电路器件。掌握数字钟得设计制作方法。用Verilog硬件描述语言设计数字钟,实现的目标如下:1)具有时、分、秒计数显示功能,以二十四小时循环计时。2)具有调节小时,分钟的功能,可以通过按键选择时和分。3)具有整点报时及闹铃时间可调的功能。4)数字钟具有
5、四种模式:正常显示、时间调整、闹铃时间调整、秒表。1.2 开发环境说明硬件:采用基于EP1C12Q240C8芯片的FPGA开发平台FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输
6、出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(161RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之
7、间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。:硬件:采用quartusIIQuartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。语言:Verilog HDL硬件描述语言简介 Verilog HDL就是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,它是由GDA(Gatew
8、ay Design Automation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广应用。1989年CADENCE公司收购了GDA公司,使得VerilogHDL成为了该公司的独家专利。1990年CADENCE公司公开发表了Verilog HDL,并成立LVI组织以促进Verilog HDL成为IEEE标准,即IEEE Standard 1364-1995. 模块是Veril
9、og 的基本描述单位,用于描述某个设计的功能或结构及其与其他模块通信的外部端口。一个设计的结构可使用开关级原语、门级原语和用户定义的原语方式描述; 设计的数据流行为使用连续赋值语句进行描述; 时序行为使用过程结构描述。一个模块可以在另一个模块中使用。 说明部分用于定义不同的项,例如模块描述中使用的寄存器和参数。语句定义设计的功能和结构。说明部分和语句可以散布在模块中的任何地方;但是变量、寄存器、线网和参数等的说明部分必须在使用前出现。为了使模块描述清晰和具有良好的可读性, 最好将所有的说明部分放在语句前。1.3 设计流程说明开始Input/output定义寄存器NY闹钟
10、校准Layer=2b11?Layer=2b10?时钟校准Layer=2b01?计时整点?秒表计时NYNNYN当前时间=闹钟时间?蜂鸣器整点报时 Y闹铃响 数码管显示结束2 系统设计分频模块2.1 系统架构设计 clk显示模块控制模块计时模块数码管闹钟模块蜂鸣器2.2 关键模块代码分析2.2.1分频模块分频模块用于为系统的实现提供稳定的工作频率和计时信号源,要求产生两路不同频率的信号,分频为1HZ频率的信号作为计时模块的秒信号的产生,100HZ的信号用于秒表计时模块的信号,1000HZ的信号用于数码管动态显示的扫描频率
11、。分频模块的实现:-产生100HZ的秒表信号-always (posedge clk) /定义clock上升沿触发beginc3= c3 + 1'b1;c1=c1 + 1'b1;c2=c2 + 1'b1;if(c3 = 25'd480000)/miaobiaobeginc3 = 25'd0;/计数器清零sec = sec;/置位秒标志end-产生1000HZ的秒信号-if(c1= 25'd24000000)/0.5S到了吗?beginc1 = 25'd0;/计数器清零clk_1s= clk_1s;/置位秒标志endif(c2
12、= 25'd2400000)/tiaoshi?beginc2 = 25'd0;/计数器清零clk_xiaozhun= clk_xiaozhun;/置位秒标志endend-产生1000HZ数码管动态扫描显示部分-always (posedge clk) /count17:15大约1ms改变一次begin if(layer=2'b01) begin dat=hour;endelse if(layer=2'b00) begin dat=hour1;endelse if(layer=2'b10)
13、 begin dat=hour2;end else begin dat=hour3;endcase(c317:15)2.2.2计时模块模块功能为正常计时,即每秒钟读一次数,秒表加1,秒计时满60进1给分计时,分计时满60进1给小时计时,小时计时满24清零。从功能上讲分别为模60计数器和模24计数器。always (negedge sec )/miaobiaobeginif(!key_done1&&layer=2'b01)/是清零键吗?beginhour = 24'h0;/是,则清零endelse if(!keyen)beg
14、inhour3:0 = hour3:0 + 1'b1;/秒加1if(hour3:0 = 4'ha)beginhour3:0 = 4'h0;hour7:4 = hour7:4 + 1'b1;/秒的十位加一if(hour7:4 = 4'ha)beginhour7:4 = 4'h0;hour11:8 = hour11:8 + 1'b1;/分个位加一if(hour11:8 = 4'ha)beginhour11:8 = 4'h0;hour15:12 = hour15:12 + 1'b1;/分十位加一if(hour15:12
15、= 4'h6)beginhour15:12 = 4'h0;hour19:16 = hour19:16 + 1'b1;/时个位加一if(hour19:16 = 4'ha)beginhour19:16 = 4'h0;hour23:20 = hour23:20 + 1'b1;/时十位加一endif(hour23:16 = 8'h24)hour23:16 = 8'h0;endendendendendend2.2.3 校准模块校准模块分为闹钟校准模块和当前时间校准模块,layer为模式,当layer=2b10时,进入当前时间校准模块,当la
16、yer=2b11时,进入闹钟校准模块,当pos为1时,对分的个位或十位进行校时,当pos为0时,对时的个位或十位进行校时。2.2.4 闹钟模块 当当前时间与设置的闹钟时间一致时,闹钟响起,本设计采用的是音乐蜂鸣器,通过写入乐谱对应的频率可实现音乐的输出,歌曲为世上只有妈妈好。2.2.5 整点报时模块(hour115:12=0&&hour111:8=0&&hour17:4=0&&hour13:0=0)当分秒对应00:00时,让蜂鸣器发出响声2.3 调试结果通过四个按键的控制(S1:秒表启动及暂停、加功能;S2秒表清零、减功能;S3:模式选择;S4:分和时的选择)能在数码管上显示时间,并能对时间进行调整,能进行秒表计数功能,当当前时间与设置闹钟时间一致时闹钟