verilog数字钟课程设计
verilog数字钟课程设计
课程设计报告课程设计题目:数字钟系统学号:201420130228学生姓名: 刘进辉专业:通信工程班级:1421301指导教师:钟凯老师2017年1 月1 日目录一.摘要 (3)二.概念及原理 (4)三.实验过程及分析 (5)四.实验心得 (7)五.参考文献 (7)六.实验代码 (8)七.评分表 (14)摘要在社会快速发展的今天,时钟在人们的生活中显得越发重要,因此设计数字钟就变得尤为重要。
本文介绍一种利用verilog语言产生多功能数字钟的设计方案,不仅让大家对数字钟更为了解,而且可以为人们的生活带来便利。
数字钟它具有时、分、秒的正常显示功能及调节时和分的特殊功能,此外,以24小时循环计数,具有整点报时功能,并且由按键输入进行对数字钟的校时、清零功能。
本文设计的数字钟方案由控制模块、计时模块、以及报时模块三大模块组成,满足所有的功能要求,并且代码是经modelsim软件编译和仿真所设计。
二.概念及原理数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。
由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路。
如图所示为数字钟的一般构成框图。
主要包括时间基准电路、计数器电路、控制电路。
其中的控制逻辑电路是比较灵活多样的,不断完善它可以增强数字钟的功能。
数字钟应该具有的功能有:显示时—分—秒、整点报时、小时和分钟可调等基本功能。
整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23。
在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,小时他的范围是从0~23,所以可以均用一个4位的二进制码显示十位和个位。
对于整点报时功能,本实验设计的是当进行正点发出一个高音信号和59分50、5254、56、58秒发出一个高音信号。
调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。
VerilogHDL语言数字时钟
VerilogHDL语言数字时钟EDA与数字系统设计报告实验名称:带有设臵时间功能和闹钟功能的数字钟一、设计内容和要求实验要求使用Verilog HDL进行多功能时钟的设计具体要求如下:1.能将基本的小时、分钟、及秒钟显示在数码管上2.能利用拨码开关进行时间的校正3.具有整点报时和闹钟的功能二、设计原理1.工作原理多功能数字钟系统共包括三个模块,即分频器模块、计数器模块和显示译码模块。
多功能数字钟的功能可以从整体上分为三类,分别是正常计时、时钟校对和闹钟设臵,所以考虑在系统中设臵一个模式控制信号mode。
模式控制信号对应一个按键,每按一次按键相当于工作模式进行一次变换,多次按下则数字钟将在正常计时、时间校对和闹钟设臵三个工作模式下依次循环。
在设计中,时钟校对和闹钟设臵工作模式都需要对时间进行设臵,通常是对小时和分钟进行设臵,所以需要在系统中设臵一个时间设臵信号set,对应一个按键,每按一次相当于在小时设臵和分钟设臵之间进行转换。
时间设臵时,分钟和小时计时单位之间互相独立,不存在进位关系。
同时设臵一个时间调整信号accum,每按一次与accum对应的按键,相当于对需要调整的分钟或小时的数字进行加1操作。
数字钟的计时输出信号时必不可少的,用hour,min和sec信号分别表示需要显示的小时、分钟和秒钟的计时结果,上述计时结果将通过译码显示模块进行译码后,连接到外部的七段数码显示器。
在带有闹钟设臵功能的数字钟中,闹钟输出信号也是必不可少的,到达到闹钟设臵的时间后,要向外部扬声器发送一个闹铃信号,设臵alert。
另外,我们还提供了闹钟铃声信号voice,当voice为0的时候,闹钟处于静音状态下,即使时间达到闹钟设定的时间也不会发声,当voice为1的时候,可以正常闹铃,voice信号对应一个拨码开关。
本设计中的小时、分钟和秒钟的计时结果采用BCD码表示方法。
采用这种表示方法便于对数结果的高位和低位分别进行译码。
基于Verilog HDL语言的数字钟(DE2)设计
《EDA技术与Verilog HDL》课程实验报告实验项目名称:基于Verilog HDL语言的数字钟(DE2)设计一、实验项目名称基于Verilog HDL语言的数字钟(DE2)开发板设计。
二、实验目的和要求(1)实验目的1.掌握Verilog HDL语言的基本运用;2.熟悉QuartusⅡ的简单操作;3.掌握一个基本EDA工程设计流程;4.掌握数字钟(DE2开发板)的设计基本原理。
(2)实验要求1.具有普通时钟的计时、调时功能。
2.能够下载到DE2开发板进行运行三、实验内容和原理数字钟共使用一类主要模块来实现其功能。
其总体结构如下图所示。
(1)时分秒计数器。
时计时器是一个24进制计数器,分秒则均为60进制计数器。
当秒计时器接受一个计时脉冲时,秒计数器从一计到六十,秒显像管依次显示00、01、02、03……,每当秒计时到00,就会有一个输出脉冲至分计时器,分计时器在原有基础上加一,显示器同样依次显示,每当分计时器计到00,相应的有一个脉冲使得时计数器在原有基础上加一,显示器一次显示00、01、……当计时器计数到23时59分59秒时,时分秒计数器自动归零。
(2)数码显像管译码模块。
该模块的功能就是将四位的8421码翻译成8位输出,用于显示各个数字,分为两组,高电平点亮,不同的数字对应不同的8位码。
因此程序设计需要考虑时分秒的每个数所对应的8位码。
例如:if(sec1[3:0]==4'b0000)//sec1 0-9beginHEX0[6:0]<=7'b1000000;endif(sec1[3:0]==4'b0001)beginHEX0[6:0]<=7'b1111001;endif(sec1[3:0]==4'b0010)beginHEX0[6:0]<=7'b0100100;(3)分频器模块开发板可用时钟为50MHZ,不可以用来做时钟输入,用作时钟信号前必须分频,该分频是用计数取反来分该总体模块实现功能:key2表示状态,key1表示转换改变分或时,key0表示在相应的状态下调整分或时。
verilog数字时钟课程设计
verilog数字时钟课程设计一、课程目标知识目标:1. 学生能理解Verilog硬件描述语言的基本语法和结构;2. 学生能掌握数字时钟的工作原理,包括分频器、计数器等关键模块的功能与实现;3. 学生能运用Verilog语言设计并实现一个具有时、分、秒显示功能的数字时钟。
技能目标:1. 学生能运用所学知识,进行模块化设计和编程,具备初步的数字系统设计能力;2. 学生能通过仿真工具验证数字时钟设计的正确性,并解决简单的问题;3. 学生能通过课程学习,提高逻辑思维能力和团队协作能力。
情感态度价值观目标:1. 学生对数字电路设计产生兴趣,培养探究精神和创新意识;2. 学生在课程实践中,树立正确的工程观念,注重实际操作和实际应用;3. 学生在团队合作中,学会沟通与协作,培养集体荣誉感和责任感。
课程性质:本课程为电子信息类专业高年级学生设计,以实践性为主,结合理论教学。
学生特点:具备一定的电子技术和编程基础,对数字电路有一定了解。
教学要求:注重理论与实践相结合,强调动手能力培养,提高学生解决实际问题的能力。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高综合素养。
二、教学内容1. 数字时钟原理介绍:包括时钟信号产生、分频器、计数器等基本概念和工作原理。
- 教材章节:第三章 数字电路基础,第四节 时序逻辑电路。
2. Verilog语言基础:Verilog语法结构、数据类型、运算符、模块定义等。
- 教材章节:第四章 硬件描述语言Verilog,第一、二、三节。
3. 数字时钟设计:基于Verilog语言,分别设计秒、分、时计数器,以及分频器等模块。
- 教材章节:第四章 硬件描述语言Verilog,第四节 实例分析。
4. 仿真与验证:使用仿真工具(如ModelSim)对设计进行功能仿真和时序仿真。
- 教材章节:第五章 数字电路仿真,第一、二节。
5. 数字时钟综合与实现:将各模块整合,实现一个完整的数字时钟,并进行板级测试。
用Verilog语言编写的多功能数字钟
《数字电子技术课程设计》报告专业班级:姓名:学号:设计日期:一.设计题目多功能数字钟电路设计二.设计任务及要求多功能数字钟应该具有的功能有:显示时—分—秒、整点报时、小时和分钟可调等基本功能。
整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23时。
在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,所以可以用一个3位的二进制码显示十位,用一个四位的二进制码(BCD 码)显示个位,对于小时因为他的范围是从0~23,所以可以用一个2位的二进制码显示十位,用一个4位的二进制码(BCD码)显示个位。
实验中由于七段码管是扫描的方式显示,所以虽然时钟需要的是1Hz 时钟信号,但是扫描需要一个比较高频率的信号,因此为了得到准确的1Hz 信号,必须对输入的系统时钟50Mhz进行分频。
对于整点报时功能,本实验设计的是当进行正点的倒计时5秒时,让LED来闪烁进行整点报时的提示。
调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。
另外用S8按键作为系统时钟复位,复位后全部显示00—00—00。
管脚分配如下表:三.基于Verilog HDL语言的电路设计、仿真与综合(一)顶层模块本程序采用结构化设计方法,将其分为彼此独立又有一定联系的三个模块,如图1所示:LocationPIN_R16Option Value VCC S1INPUT Location PIN_P14Option Value VCC S2INPUT Location PIN_J3Option Value VCCCPINPUT Location PIN_M4Location PIN_F3Location PIN_F4Option Value SEL[2..0]OUTPUT Location PIN_L14Option Value LEDOUTPUTLocation PIN_N4Location PIN_G4Location PIN_H4Location PIN_L5Location PIN_L4Location PIN_K4Location PIN_K5Option Value LEDAG[6..0]OUTPUTCP CPoutf enpininst1CPoutS1S2RETHour[5..0]Minute[5..0]Second[5..0]LEDkongzhiqi inst2VCCRETINPUT CPout Hour[5..0]Minute[5..0]Second[5..0]SEL[2..0]LEDAG[6..0]xianshi inst图1:顶层结构框图(二)子模块 1.分频器分频器的作用是对50Mhz 的系统时钟信号进行分频,得到频率为1000hz 的信号,作为显示器的输入信号。
Verilog 实现简易数字钟设计
module ly2(clock,sec1,sec2,min1,min2,hou1,hou2);input clock;output sec1,sec2,min1,min2,hou1,hou2;reg[5:0] sec,min,hou;reg tun,mod;reg[3:0] sec1,sec2,min1,min2,hou1,hou2;wire mt,nt;initialbegintun=1;mod=1;min=0;hou=0;sec=0;sec1=0;sec2=0;min1=0;min2=0;hou1=0;hou2=0;endalways @(posedge clock) \\clock 标准1HZ时钟信号beginif(sec==59)beginsec<=0; \\秒为60进制计数器tun<=1; \\每60秒产生一个进位信号tun。
endelsebeginsec<=sec+1;tun<=0; \\进位信号置0。
endendassign mt=tun; \\生成分的控制信号,always@(posedge mt)beginif(min==59) \\分钟为60进制计数器beginmin<=0;mod<=1; \\每60分产生一个小时的进位。
endelsebeginmin<=min+1;mod<=0; \\分钟向小时的进位信号置0。
endendassign nt=mod; \\生成时的控制信号,always@(posedge nt)beginif(hou==23) \\小时为24进制计数器hou<=0;elsehou<=hou+1;endalways@(sec)beginsec1<=sec%10; \\sec1为秒个位sec2<=sec/10; \\sec2为秒十位endalways@(min)beginmin1<=min%10; \\min1为分个位min2<=min/10; \\min2为分十位endalways@(hou)beginhou1<=hou%10; \\hou1为时个位hou2<=hou/10; \\hou2为时十位endendmodule。
EDA Verilog HDL简易数字钟设计报告
4'd1;
+ 1'b1;
if(hour[7:4] == 4'h6) begin
hour[7:4] = 4'h0; hour[11:8] = hour[11:8]
if(hour[11:8] == 4'ha) begin
hour[11:8] = 4'h0; hour[15:12] = hour[15:12] + 1'b1; if(hour[15:12] == 4'h6) begin
开始
时钟/校准
是
否
是否校时?
位选
时钟信号
秒+1
秒计数+1
秒>59?
是
分计数+1 秒置零
分+1
分>59?
是
时计数+1 分置零
时+1
时>23?
是
时置零
图4-2-3 校时模块
4
(3)动态显示模块:由于实验箱的 8 个数码管共用七段输入线,位选也是由 4 位二进制接 线控制,所以动态显示在代码部分会稍有难度。图 4-2-4 是动态显示模块的接线实物图
4 位位选控制
4-2-4 动态显示模块
3、总体设计流程
简易数字钟电路的核心部分就是 EPF10K10LC84-4 芯片,外围接入了分频部分电路、按 键电路和七段动态显示短路。程序部分,先通过模式控制变量判断是正常模式还是校时模式, 如果是校时模式,则手动对时间数据进行置数,同时显示到数码管;如果是正常模式则直将 分频模块的时钟信号接入计数器开始计时,校时与正常时间运行的时间数据都遵循时、分、 秒的进制原则。实验箱的按键模块公共端每 1 秒发出一个低电平信号,其他时候都是高电平, 也就是说按下按键后,只有扫描到了低电平信号,按键才会起作用,否则按键动作将因为无 法扫描到低电平而失灵。所以按键每次按下大约 1 秒的时间才会生效。任何情况下,时间数 据都通过动态显示模块同步显示到数码管。动态显示模块的 8 位(实际上只用了 6 位)数码 管以每 10ms 切换点亮一位数码管,依次循环,达到动态显示的效果。图 4-3-1 是总设计流 程图。
veriloghdl课设(数字钟)
课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:实时时钟电路的设计Ⅱ、课程设计(论文)工作内容一、课程设计目标《硬件描述语言》是一门技术性、应用性很强的学科,实验课教学是它的一个极为重要的环节。
不论理论学习还是实际应用,都离不开实验课教学。
如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节、学习与应用脱节的局面。
《HDL项目设计》的目的就是让同学们在理论学习的基础上,通过完成一个涉及时序逻辑、组合逻辑、声光输出的,具有实用性、趣味性的小系统设计,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对分析、解决实际的数字电路问题进一步加深认识,为今后能够独立进行某些数字应用系统的开发设计工作打下一定的基础。
二、课程设计任务与要求(1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式);(2)为了演示方便,应具有分钟、小时快进功能;(3)时、分、秒设置功能(选作)。
三、课程设计考核平时20%;验收40%;报告40%摘要数字钟是人们日常生活中经常使用的计时工具,本次的课程设计是基于Verilog HDL的多功能数字钟,完成时、分、秒的显示功能。
设计利用Verilog HDL 语言自顶向下的设计理念,突出其作为硬件描述语言的良好的可读性、可移植性以及易于理解等优点。
通过Quartus II 5.0和ModelSim SE 6.1f软件完成仿真、综合。
程序下载到FPGA芯片后,可用于实际的数字钟显示中。
此次设计的逻辑结构主要由分频器、计数器和译码显示器三个模块构成。
分频模块将50Mhz系统基准时钟分频产生两路时钟信号,一路是1HZ的数字钟计时工作频率,一路是数码管动态显示的扫描频率;计时模块对1HZ的时钟信号进行计时,分为时、分、秒三个部分;译码显示模块采用动态扫描的方式完成数码管的显示。
最后通过主模块调用三个子模块函数完成整个设计。
课程设计用verilog实现简易数字钟
合肥工业大学电子科学与技术专业集成电路前端课程设计报告设计题目:简易数字钟设计姓名学号班级电子科学与技术1班日期2010年12月6日模式:7按键7 PIO6 引脚7 change4 3 4 t_hou1 0 1 t_min时钟显示hou2 PIO 39-36 84 83 78 77hou1 35-32 76 75 74 73min2 31-28 72 71 70 69min1 27-24 68 67 52 51sec2 23-20 50 49 48 47sec1 19-16 42 41 40 39灯at 47 106clock clock0 123(选择1Hz的信号)模式1 正常计时模式at=0 灯灭模式2 手动较时模式at=1 灯亮按建功能:change 控制数字钟在计时和手动调整两个状态之间转换t_min 分钟手动调整按键t_hou 小时手动调整按键clock 标准1HZ时钟信号中间变量tun 秒到分的进位信号mod 分到时的进位信号mt 分钟的控制信号上升沿触发nt 时钟的控制信号上升沿触发输出sec1 秒个位sec2 秒十位min1分个位min2分十位hou1时个位hou2时十位at 表示模式的变量0为正常计时模式,1表示手动调整模式概述:要求:1设计一个能显示时、分、秒的简易数字钟。
具有时间调整功能。
2利用GW48-PK2系统上的数码管显示时间。
3 调整时间用的按键也使用GW48-PK2系统上的按键。
目的:本次课程设计的目的是为了掌握FPGA技术的层次化设计方法,掌握ModelSim和QuartusⅡ的使用方法。
步骤:用verilog语言在记事本编写程序,然后在ModelSim中仿真,查看波形,再用QuartusⅡ仿真,定义针脚,在面板上模拟。
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的寿命,因此得到广泛的应用。
数字钟设计报告 verilog EDA
电子与电气工程系实习报告书实习名称:数字钟设计年纪专业及班级: 08通信工程1班姓名:学号:指导老师:评定成绩:教师评语:指导老师签名:20 年月日基于FPGA 的数字时钟设计一、课程设计目的1、进一步熟悉Quartus Ⅱ的软件使用方法;2、 熟悉可编程逻辑器件的开发流程及硬件测试方法;3、熟悉基于FPGA 的综合数字系统设计方法;二、课程设计任务设计一台可以显示时、分、秒的数字钟。
如图1所示为基于FPGA 的数字钟设计的系统框图。
FPGA数码管控制数码管控制数码管控制重启校时图1 数字钟系统三、设计要求1、能直接显示小时、分、秒,其中小时为以二十四为计数周期;2、当电路发生走时错误时,要求电路有校时功能,可以对时、分单独校正;3、具有闹钟功能,即输入想要定时的时间,当时钟到达该时间时报警,系统可由灯亮代表报警信号。
四、实验设备1、EDA6000实验箱一台2、PC 机一台五、整体系统设计方案1、总体思路和结构方框图由上面的方框图可以知道整个数字钟的设计分为6个功能模块,分别是时钟计时模块、闹钟设置模块、日期计数模块、校时模块(分别能对时钟时间、闹钟时间和日期进行校对)、闹钟报时模块以及数码管显示模块。
各个模块各自完成各自的功能互不干扰却相互合作,共同晚上数字钟的时间显示、日期显示、闹铃设置报时和时间、日期的校正功能。
数字钟的使用图如下:时钟部分闹钟部分 日期部分 校时部分 报时部分 显示切换部分 FPGAK2 K1CLK JF/D JH/M NF NH SOUND数码管显示如上图所示各个管脚的功能CLK:为数字钟整个系统的时钟信号,频率为1HZ;K1\K2:为时钟系统的使能端,用来切换显示功能和校时功能;JF/D:时间校时用来校正分的部分以及校正日期的天数;JH/M:时间校时用来校正时的部分以及校正日期的月数;NF:设置闹钟分的部分;NH:设置闹钟时的部分;SOUND:报时声音输出信号。
2、各模块设计思路(1)时钟模块由于数字钟设计要求用24进制,所以整个时钟用两个60进制计数器和一个24进制计数器分别级联在一起共同完成数字钟时间跳动功能。
课程设计---基于Verilog HDL数字时钟设计与实现
课程设计---基于Verilog HDL数字时钟设
计与实现
简介
本课程设计旨在通过使用Verilog硬件描述语言(HDL)设计和实现数字时钟。
学生将研究如何使用Verilog语言来描述数字电路,并将其应用于设计和实现一个简单的数字时钟电路。
设计目标
- 研究使用Verilog HDL来描述和设计数字电路
- 实现一个简单的数字时钟电路
- 熟悉数字时钟的工作原理和设计流程
实施步骤
1. 了解数字时钟的原理和工作方式
2. 研究Verilog HDL语言的基本语法和使用方法
3. 设计并实现时钟的各个功能模块,如时钟显示模块、时钟计数模块等
4. 使用仿真工具验证设计的正确性
5. 进行实际的硬件验证,将设计烧录到FPGA开发板上并进行测试
实验要求
1. 设计的数字时钟应具备基本的时分秒显示功能
2. 时钟应具备可调节的时间设置功能
3. 需要使用FPGA开发板进行实际硬件验证
4. 实验报告应包含设计原理、设计流程、仿真结果和实际硬件验证结果
参考资料
1. Verilog HDL教程
2. FPGA开发板用户手册
3. 相关学术论文和文献
以上为课程设计---基于Verilog HDL数字时钟设计与实现的文档简介。
本课程设计将帮助学生学习Verilog HDL语言并应用于设计和实现数字时钟电路。
verilog数字钟设计(FPGA)全新
一、课程设计目标1. 熟悉并掌握verilog 硬件描述语言2. 熟悉quartus 软件开发环境3.学会设计大中规模的数字电路,并领会其中的设计思想二、课程设计实现的功能(1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式);(2)可以调节小时,分钟。
(3)能够进行24小时和12小时的显示切换。
(4)可以设置任意时刻闹钟,并且有开关闹钟功能。
(5)有整点报时功能,几点钟LED灯闪亮几下。
(6)有复位按键,复位后时间从零开始计时,但闹钟设置时间不变。
三、设计原理:1、总原理框图:附全部代码:总模块:moduleclock(clk,reset,MODE,Alarm_ctr,BT2,H12_24,DSH,DSL,DMH,DML,DHH,DHL,dian,bao_signa l,nao_signal);input clk;//50MHzinput reset,MODE,Alarm_ctr,BT2,H12_24;//复位键,模式选择按钮,闹钟开关档,调节按钮,12—24小时切换档output [7:0]DMH,DML,DHH,DHL; //4个数码管显示输入信号output dian,bao_signal,nao_signal; //时分间隔点,报时信号,闹钟信号output [3:0]DSH,DSL; //秒钟输出信号wire [3:0] SH,SL,MH,ML,HH,HL;wire [3:0] LED_mode;wire [3:0] HH12,HL12,HH24,HL24,MH24,ML24,SH24,SL24;wire [3:0] set_HH,set_HL,set_MH,set_ML;wire _1HZ,_10ms,_250ms,_500ms;wire Keydone1;wire Keydone2;wire co1,co11,co111,co2,co22,co222,set_co2;wire [3:0]mode_flag;assign dian=1'b0;devide_f u1(_1HZ,_10ms,_250ms,_500ms,reset,clk); //分频,得到4种不同频率的时钟信号key_press u2(_10ms,MODE,Keydone1); //模式档按钮去抖动key_press u20(_10ms,BT2,Keydone2); //调节按钮去除抖动mode u3(Keydone1,mode_flag); //通过模式按钮产生不同模式second u4(_1HZ,reset,mode_flag,Keydone2,SH24,SL24,co1); //秒计时minute u5(co11,reset,MH24,ML24,co2); //分计时hour u6(co22,reset,HH24,HL24); //小时计时SEG7_LUT u7(DML,ML); //4个数码管显示SEG7_LUT u8(DMH,MH);SEG7_LUT u9(DHL,HL);SEG7_LUT u10(DHH,HH);display_LED u11(DSL,SL); //LED灯显示秒或模式灯display_LED u12(DSH,SH);mode_choose u13(mode_flag,Keydone2,_250ms,co1,co2,set_co2,co11,co22,co111,co222); //选择模式进行不同操作hour12_24 u14(HH24,HL24,HH12,HL12); //12--24小时切换boshi u15(HH,HL,MH,ML,SH,SL,_1HZ,bao_signal); //整点报时set_naozhong u16(co111,co222,set_HH,set_HL,set_MH,set_ML,set_co2); //设置闹钟时间Naozhongu17(Alarm_ctr,_500ms,set_HH,set_HL,set_MH,set_ML,HH24,HL24,MH24,ML24,nao_signal);//任意闹钟响应LUT_modeu18(mode_flag,H12_24,HH12,HL12,HH24,HL24,MH24,ML24,set_HH,set_HL,set_MH,set_ML, MH,ML,HH,HL);//通过模式选择数码管显示LED_mode u19(mode_flag,SH24,SL24,SH,SL); 模式选择LED灯显示Endmodule分频模块:分频模块的作用主要是要获得各种频率的时钟信号。
verilog HDL课设(数字钟)
课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:实时时钟电路的设计Ⅱ、课程设计(论文)工作容一、课程设计目标《硬件描述语言》是一门技术性、应用性很强的学科,实验课教学是它的一个极为重要的环节。
不论理论学习还是实际应用,都离不开实验课教学。
如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节、学习与应用脱节的局面。
《HDL项目设计》的目的就是让同学们在理论学习的基础上,通过完成一个涉及时序逻辑、组合逻辑、声光输出的,具有实用性、趣味性的小系统设计,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对分析、解决实际的数字电路问题进一步加深认识,为今后能够独立进行某些数字应用系统的开发设计工作打下一定的基础。
二、课程设计任务与要求(1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式);(2)为了演示方便,应具有分钟、小时快进功能;(3)时、分、秒设置功能(选作)。
三、课程设计考核平时20%;验收40%;报告40%摘要数字钟是人们日常生活中经常使用的计时工具,本次的课程设计是基于Verilog HDL的多功能数字钟,完成时、分、秒的显示功能。
设计利用Verilog HDL 语言自顶向下的设计理念,突出其作为硬件描述语言的良好的可读性、可移植性以及易于理解等优点。
通过Quartus II 5.0和ModelSim SE 6.1f软件完成仿真、综合。
程序下载到FPGA芯片后,可用于实际的数字钟显示中。
此次设计的逻辑结构主要由分频器、计数器和译码显示器三个模块构成。
分频模块将50Mhz系统基准时钟分频产生两路时钟信号,一路是1HZ的数字钟计时工作频率,一路是数码管动态显示的扫描频率;计时模块对1HZ的时钟信号进行计时,分为时、分、秒三个部分;译码显示模块采用动态扫描的方式完成数码管的显示。
最后通过主模块调用三个子模块函数完成整个设计。
Verilog数字钟课程设计
课程设计报告课程设计题目:数字钟系统设计学号:2学生姓名:刘新强专业:通信工程班级:1421302指导教师:钟凯2016年1月4日FPGA( Field Programmable Gate Array,现场可编程门阵列),一种可编程逻辑器件,是目前数字系统设计的主要硬件基础。
可编程逻辑器件的设计过程是利用EDA 开发软件和编程和编程工具对器件进行开发的过程。
通过modelsim软件下采用verilog语言实现数字钟系统设计,实现了以下几个方面的功能:1.数字钟基本计时功能2.数字钟校时功能3.数字钟系统报时功能关键词:FPGA ;VHDL;数字钟一、FPGA与VHDL简介 (1)1、FPGA与简介 ...........................................................................................2、VHDL简介 ...............................................................................................二、课程设计的目的与要求 (2)1、教学目的....................................................................................................................2、教学要求....................................................................................................................3、数字钟系统设计要求................................................................................................三、设计方案 (2)1、系统框图....................................................................................................................2、模块说明....................................................................................................................四、仿真与实现 (3)1、数字钟基本计时功能实现........................................................................................2、数字钟校时功能实现................................................................................................3、数字钟系统报时功能实现........................................................................................五、实验心得 (4)六、参考文献 (4)七、代码 (5)一、FPGA与VHDL简介1、FPGA简介以硬件描述语言(Verilog 或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA 上进行测试,是现代IC 设计验证的技术主流。
Verilog HDL数字时钟课程设计
课程设计报告课程设计名称:EDA课程设计课程名称:数字时钟二级学院:信息工程学院专业:通信工程班级:12通信1班学号:**********姓名:@#$%成绩:指导老师:***年月日目录第一部分 EDA技术的仿真 (3)1奇偶校验器 (3)1.1奇偶校验器的基本要求 (3)1.2奇偶校验器的原理 (3)1.3奇偶校验器的源代码及其仿真波形 (3)28选1数据选择器 (4)2.18选1数据选择器的基本要求 (4)2.28选1数据选择器的原理 (4)2.38选1数据选择器的源代码及其仿真波形 (5)34位数值比较器 (6)3.14位数值比较器的基本要求 (6)3.24位数值比较器的原理 (6)3.34位数值比较器的源代码及其仿真波形 (7)第二部分 EDA技术的综合设计与仿真(数字时钟) (8)1概述 (8)2数字时钟的基本要求 (9)3数字时钟的设计思路 (9)3.1数字时钟的理论原理 (9)3.2数字时钟的原理框图 (10)4模块各功能的设计 (10)4.1分频模块 (10)4.2计数模块(分秒/小时) (11)4.3数码管及显示模块 (13)5系统仿真设计及波形图........................ 错误!未定义书签。
55.1芯片引脚图................................. 错误!未定义书签。
55.2数字时钟仿真及验证结果 (16)5.3数字时钟完整主程序 (17)6课程设计小结 (23)7心得与体会 (23)参考文献 (24)第一部分 EDA技术仿真应用1、奇偶校验器1.1奇偶校验器的基本要求用于检验一个二进制数据中的0或1的个数是奇数还是偶数,然后输出检测结果。
当输入字节为8位的A中的1的个数为奇数时输出端odd为高电even输出高电平,反之odd输出低电平,even输出高电平。
1.2奇偶校验器的原理通过计算数据中“1”的个数是奇数还是偶数来判断数据的正确性。
verilog HDL课设(数字钟).pdf
心得体会......................................................................................................................................... 25 参考文献......................................................................................................................................... 26 附 录 ............................................................................................................................................27
(完整word版)Verilog数字钟设计实验报告
基于FPGA实现多功能数字钟——电子系071180094王丛屹摘要本文利用Verilog HDL语言自顶向下的设计方法设计多功能数字钟,并通过ISE完成综合、仿真.此程序通过下载到FPGA 芯片后,可应用于实际的数字钟显示中,实现了基本的计时显示和设置,调整时间,闹钟设置的功能.[关键词]FPGA;Verilog HDL;数字钟一、多功能数字钟的设计设计一个多功能数字时钟,具有时分、秒计数显示、闹钟功能。
能够利用按键实现对闹钟时间的设定并在当前显示时间到时后能够进行闹钟提示.能够利用按键实现“较时”、“较分"功能,随时对数码管的显示进行校正和校对.数字中系统主要由系统时钟,三个功能按键(mode,turn ,change ),FPGA ,数码管和蜂鸣器部分组成。
图: 多功能数字钟总体设计模块 以下就各个模块说明其功能1. 分频模块由于FPGA内部提供的时钟信号频率大约为50MHz,在这需要将它转化成1Hz的标准时钟信号供数字钟的计时显示;在此我采用了级联分频法.RTL图如下:代码如下:always @(posedge clk_1)if ( cnt2 〈156/2—1)/////////////////////////////////////100分频,生成10000Hz信号begincnt2 〈= cnt2 + 1;endelsebegincnt2 〈= 0;clk_2 <= ~clk_2;endalways @(posedge clk_2)if ( cnt5 〈10/2-1) /////////////////////////////////////////10分频,生成1kHz标准信号begincnt5〈= cnt5 + 1;endelsebegincnt5〈= 0;clk_1k〈= ~clk_1k;endalways @(posedge clk_2)if ( cnt3 < 100/2—1)//////////////////////////////////////////100分频,生成100Hz信号begin最终输出的是1Hz,100Hz,1kHz的标准时钟信号clk_1Hz ,clk_100Hz,clk_1k。
verilog数字钟设计(FPGA)
一、课程设计目标1.熟悉并掌握verilog 硬件描述语言2.熟悉quartus 软件开发环境3.学会设计大中规模的数字电路,并领会其中的设计思想二、课程设计实现的功能(1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式);(2)可以调节小时,分钟。
(3)能够进行24小时和12小时的显示切换。
(4)可以设置任意时刻闹钟,并且有开关闹钟功能。
(5)有整点报时功能,几点钟LED 灯闪亮几下。
(6)有复位按键,复位后时间从零开始计时,但闹钟设置时间不变。
三、设计原理:1、总原理框图:是是 附全部代码:总模块: moduleclock(clk,reset,MODE,Alarm_ctr,BT2,H12_24,DSH,DSL,DMH,DML,DHH,DHL,dian,bao_signal,nao_signa l); inputclk;//50MHzinputreset,MODE,Alarm_ctr,BT2,H12_24;//复位键,模式选择按钮,闹钟开关档,调节按钮,12—24小时切换档 output[7:0]DMH,DML,DHH,DHL;//4个数码管显示输入信号outputdian,bao_signal,nao_signal;//时分间隔点,报时信号,闹钟信号output[3:0]DSH,DSL;//秒钟输出信号wire[3:0]SH,SL,MH,ML,HH,HL;wire[3:0]LED_mode;wire[3:0]HH12,HL12,HH24,HL24,MH24,ML24,SH24,SL24;wire[3:0]set_HH,set_HL,set_MH,set_ML;wire_1HZ,_10ms,_250ms,_500ms;wireKeydone1;wireKeydone2;wireco1,co11,co111,co2,co22,co222,set_co2;计数模块 译码显示模块 分频模块设置闹钟小时 分钟校正 小时校正 模式选择模块设置闹钟分钟 复位 是否到闹钟时间 切换12进制显示 输出闹钟信号到达整点 输出整点报时信号assigndian=1'b0;devide_fu1(_1HZ,_10ms,_250ms,_500ms,reset,clk);//分频,得到4种不同频率的时钟信号key_pressu2(_10ms,MODE,Keydone1);//模式档按钮去抖动key_pressu20(_10ms,BT2,Keydone2);//调节按钮去除抖动modeu3(Keydone1,mode_flag);//通过模式按钮产生不同模式secondu4(_1HZ,reset,mode_flag,Keydone2,SH24,SL24,co1);//秒计时minuteu5(co11,reset,MH24,ML24,co2);//分计时houru6(co22,reset,HH24,HL24);//小时计时SEG7_LUTu7(DML,ML);//4个数码管显示SEG7_LUTu8(DMH,MH);SEG7_LUTu9(DHL,HL);SEG7_LUTu10(DHH,HH);display_LEDu11(DSL,SL);//LED灯显示秒或模式灯display_LEDu12(DSH,SH);mode_chooseu13(mode_flag,Keydone2,_250ms,co1,co2,set_co2,co11,co22,co111,co222);//选择模式进行不同操作hour12_24u14(HH24,HL24,HH12,HL12);//12--24小时切换boshiu15(HH,HL,MH,ML,SH,SL,_1HZ,bao_signal);//整点报时set_naozhongu16(co111,co222,set_HH,set_HL,set_MH,set_ML,set_co2);//设置闹钟时间Naozhongu17(Alarm_ctr,_500ms,set_HH,set_HL,set_MH,set_ML,HH24,HL24,MH24,ML24,nao_signal);//任意闹钟响应LUT_modeu18(mode_flag,H12_24,HH12,HL12,HH24,HL24,MH24,ML24,set_HH,set_HL,set_MH,set_ML,MH,ML,HH,H L);//通过模式选择数码管显示LED_modeu19(mode_flag,SH24,SL24,SH,SL);模式选择LED灯显示Endmodule分频模块:分频模块的作用主要是要获得各种频率的时钟信号。
简单的数字时钟(verilog设计)
3、计时
if (second0<4'b1001) second0<=second0+4'b1; else second0<=4'b0; if (second1<4'b0101) second1<=second1+4'b1; else second1<=4'b0; if (minute0<4'b1001) minute0<=minute0+4'b1; else minute0<=4'b0; if (minute1<4'b0101) minute1<=minute1+4'b1; else minute1<=4'b0; if (hour1<2'b10) if (hour0<4'b1001) hour0<=hour0+4'b1; else hour0<=4'b0; hour1<=hour1+2'b1; if (hour1==2'b10) if (hour0<4'b0011) hour0<=hour0+4'b1; else hour0<=4'b0; hour1<=2'b0;
谢谢!
2、确认
if (miao==1) nz1<=1;
3、闹铃
if (nz1==1) begin lednz[1]<=1; if((hour_1==hour1)&&(hour_0==hour0)&&(minute_1==minute1)&&(m inute_0==minute0)) lednz[0]<=lednz[0]+1; end
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程设计题目:数字钟系统学号:201420130228学生姓名: 刘进辉专业:通信工程班级:1421301指导教师:钟凯老师2017年1 月1 日目录一.摘要 (3)二.概念及原理 (4)三.实验过程及分析 (5)四.实验心得 (7)五.参考文献 (7)六.实验代码 (8)七.评分表 (14)摘要在社会快速发展的今天,时钟在人们的生活中显得越发重要,因此设计数字钟就变得尤为重要。
本文介绍一种利用verilog语言产生多功能数字钟的设计方案,不仅让大家对数字钟更为了解,而且可以为人们的生活带来便利。
数字钟它具有时、分、秒的正常显示功能及调节时和分的特殊功能,此外,以24小时循环计数,具有整点报时功能,并且由按键输入进行对数字钟的校时、清零功能。
本文设计的数字钟方案由控制模块、计时模块、以及报时模块三大模块组成,满足所有的功能要求,并且代码是经modelsim软件编译和仿真所设计。
二.概念及原理数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。
由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路。
如图所示为数字钟的一般构成框图。
主要包括时间基准电路、计数器电路、控制电路。
其中的控制逻辑电路是比较灵活多样的,不断完善它可以增强数字钟的功能。
数字钟应该具有的功能有:显示时—分—秒、整点报时、小时和分钟可调等基本功能。
整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23。
在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,小时他的范围是从0~23,所以可以均用一个4位的二进制码显示十位和个位。
对于整点报时功能,本实验设计的是当进行正点发出一个高音信号和59分50、5254、56、58秒发出一个高音信号。
调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。
另用外reset按键作为系统时钟复位,复位后全部显示00—00—00。
三.实验过程及分析1.功能:显示时—分—秒、整点报时、小时和分钟可调等基本功能。
整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23。
仿真图:由图可知:hour_g,minute_s,minute_g,second_s,second_g分别对应于时、分、秒的十和个位,显然可以正常显示并满足条件。
2.功能:对于整点报时功能,本实验设计的是当进行正点发出一个高音信号和59分50、5254、56、58秒发出一个高音信号。
仿真图:上图可知在50、52、54、56、58秒时有一个高电平脉冲信号发出低音,在正点时有一个高脉冲信号发出高音。
3. 功能:调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。
另用外reset 按键作为系统时钟复位,复位后全部显示00—00—00。
仿真图:上图可知,通过按键S1,S2控制了时和分的校准功能,并且通过reset键控制清除功能。
四.实验心得通过本次verilog的数字钟课程设计,不仅巩固了所学的相关知识,还对其有了更加深刻的认识。
学东西,基本功要学的扎实,这样会给上层建筑带来难以想象的益处,就如在本次实验中的测试模块的函数调用的内置变量的摆放位置的不当,导致程序无法得出自己想要的结果,还要不断的去检查,盲目的修改,耗时巨大。
另有一些编程的小技巧,这点钟凯老师的功劳很大,虽然原理一样,但是用不同的方式去编写,有时会取得不一样的结果。
这次实验考验的不仅是学生的基本功,而且考察学生自我学习,自我查找相关资料主动学习的能力,一路自己做下来,会收获你想象不到的东西。
这或许就是能力的提高吧。
在最后感谢钟凯老师的耐心解疑,学生受益匪浅。
六.参考文献【1】《数字系统设计与Verilog HDL》第五版王金明编著电子工业出版社【2】刘君,常明,秦娟,《基于硬件描述语言(VHDL)的数字时钟设计》,天津理工大学学报,2007,第23卷第4期,40-41。
【3】王开军,姜宇柏,《面向CPLD/FPGA的VHDL设计》,机械工业出版社,2006,28-65。
六.实验代码modulekongzhi_count(clk,S1,S2,reset,hour_s,hour_g,minute_s,minute_g,second_s,second_g,cout_1,cou t_2,alarm_clock_low,alarm_clock_high);input clk,S1,S2,reset;output reg[3:0] hour_s,hour_g,minute_s,minute_g,second_s,second_g ;output wire cout_1,cout_2;output reg alarm_clock_low,alarm_clock_high;reg R1,R2;always @(posedge clk)beginif(S1==1)beginR1=1;endelse if(S2==1)beginR2=1;endendalways @(posedge clk) //秒个位显示beginif(~reset)second_g <= 0;else if(second_g==9)second_g <= 0;elsesecond_g <= second_g + 1;endalways @(posedge clk) //秒十位显示beginif(~reset)second_s<= 0;else if(second_g==9)beginif(second_s==5)second_s<= 0;elsesecond_s <= second_s + 1;endendassign cout_1=((second_g==9)&&(second_s==5))?1:0; always @(posedge clk) //分个位显示beginif(~reset)beginminute_g <= 0;endelse if(R2==1)beginif(minute_g==9)minute_g <= 0;elsebeginminute_g<= minute_g+ 1;endR2<=0;endelse if(cout_1)beginsecond_g<=0;second_s<=0;if(minute_g==9)minute_g <= 0;elseminute_g<= minute_g+ 1;endendalways @(posedge clk) //分十位显示beginif(~reset)beginminute_s <= 0;endelse if(R2==1)beginif(minute_g==9)beginif(minute_s==5)minute_g <= 0;elseminute_s <= minute_s + 1;endR2<=0;endelse if(cout_1)beginsecond_g<=0;second_s<=0;if(minute_g==9)beginif(minute_s==5)minute_g <= 0;elseminute_s <= minute_s + 1;endendendassigncout_2=(((minute_g==9)&&(minute_s==5)&&(cout_1==1))||((minute_g==9)&&(minute_s==5)& &(S2==1)))?1:0;always @(posedge clk) //时个位显示beginif(~reset)beginhour_g <= 0;endelse if(R1==1)beginif(hour_g==9)hour_g <= 0;else if((hour_s==2)&&(hour_g==3))hour_g <= 0;elsebeginhour_g <= hour_g+ 1;endR1<=0;endelse if(cout_2)beginsecond_g<=0;second_s<=0;minute_g<=0;minute_s<=0;if(hour_g==9)hour_g <= 0;else if((hour_s==2)&&(hour_g==3))hour_g <= 0;elsehour_g <= hour_g+ 1;endendalways @(posedge clk) //时十位显示beginif(~reset)beginhour_s<= 0;endelse if(R1==1)beginif((hour_g==3)&&(hour_s==2)) hour_s <= 0;else if(hour_g==9)beginhour_s <= hour_s + 1;endR1<=0;endelse if(cout_2)beginsecond_g<=0;second_s<=0;minute_g<=0;minute_s<=0;if((hour_g==3)&&(hour_s==2))hour_s <= 0;else if(hour_g==9)hour_s <= hour_s + 1;endendalways @(posedge clk) //低音警报beginif(!reset)beginalarm_clock_low<=0;endelse if((minute_g==9)&&(minute_s==5))if(((second_s==4)&&(second_g==9))||((second_s==5)&&(second_g==1))||((second_s==5)&&(sec ond_g==3))||((second_s==5)&&(second_g==5))||((second_s==5)&&(second_g==7)))alarm_clock_low<=1;elsealarm_clock_low<=0;endalways @(posedge clk) //高音警报beginif(!reset)beginalarm_clock_high<=0;endelse if(cout_2)alarm_clock_high<=1;elsealarm_clock_high<=0;endEndmodulemodule clock_test();reg clk,reset,S1,S2;wire[3:0] hour_s,hour_g,minute_s,minute_g,second_s,second_g;wire cout_1,cout_2,alarm_clock_low,alarm_clock_high;parameter cycle = 100;kongzhi_countu1(.clk(clk),.S1(S1),.S2(S2),.reset(reset),.hour_s(hour_s),.hour_g(hour_g),.minute_s(minute_s),.m inute_g(minute_g),.second_s(second_s),.second_g(second_g),.cout_1(cout_1),.cout_2(cout_2),.a larm_clock_low(alarm_clock_low),.alarm_clock_high(alarm_clock_high));always#(cycle/2) clk = ~clk;initialbeginclk = 0;reset = 1;S1=0;S2=0;#300 reset = 0; #100 reset = 1;#100 S1=1;#100 S1=0;#100 S2=1;#100 S2=0;#100 S1=1;#100 S1=0;#100 S2=1;#100 S2=0;end endmodule东华理工大学课程设计评分表学生姓名:刘进辉班级:1421301 学号:201420130228课程设计题目:数字钟系统。