课程设计任务书。
设计题目1:数码管显示数字钟设计。
院(系)分管领导: 教研室主任指导教师:
2023年 6月 23日。
目录。第1章引言 1
第2章电路原理 2
第3章程序设计 3
3.1 顶层模块设计 3
3.2 时钟分频模块设计 3
3.3 按键驱动模块设计 4
3.4 时钟计数模块设计 4
3.5 整点报时模块 5
3.6 led灯花样显示模块 7
3.7 数码管显示模块设计 7
第4章调试、测试分析及结果 10
4.1 调试 10
4.2 测试分析 10
4.3 结果 12
第5章小结 13
参考文献 14
附录电路图及程序 15
第1章引言。
eda是电子设计自动化(electronic design automation)的缩写,在20世纪60年代中期从计算机辅助设计(cad)、计算机辅助制造(cam)、计算机辅助测试(cat)和计算机辅助工程(cae)的概念发展而来的。
eda技术就是以计算机为工具,设计者在eda软件平台上,用硬件描述语言vhdl或者verilog hdl完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和**,直至对于特定目标芯片的适配编译、逻辑映射和编程**等工作。eda技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
verilog hdl是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
此次课程设计我们运用quartusⅱ这个软件,使用verilog hdl语言进行编程。
数字钟是一种用数字电路技术实现时、分、秒计时的钟表。与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。
这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。
本次课程设计要求利用eda技术,设计一个数码管显示数字钟的样品,数字钟要求具备以下功能:
1、具有时、分、秒,计数显示功能,以24小时循环计时;
2、具有清零,调节小时、分钟功能;
3、具有整点报时功能,整点报时的同时led花样显示。
第2章电路原理。
数码管显示数字钟设计,运用到8位数码管,要求其中6位数码管动态显示,分别显示时、分、秒的计数,同时对时间进行设置,数字钟的总体功能按照要求可以分为基本的数字时钟显示(具有时、分、秒,计数显示功能,以24小时循环计时)、手动校准(具有清零,调节小时、分钟功能)、整点报时、led灯花样显示四大部分。其总体功能设计框图如图2.1所示:
第3章程序设计。
其中,“时钟分频模块”用于对芯片晶振提供的时钟信号进行分频,然后给其他模块分配需要的时钟频率。按键输入的信号经过按键去抖后传送给“时钟计数模块”。正常计数时,“时钟计数模块”将处理好的时、分、秒数据实时传送给“数码管显示模块”,当有来自“按键驱动模块”的信号时,改变相应的时、分、秒计数器中的值,实现调整时间的作用。
“数码管显示模块”实时将“时钟计数模块”的数据转换成数码管动态显示信号进行显示。最后,加上一个“整点报时”模块和“led灯花样显示模块”经过时钟分频信号,传递给“数码管显示模块”,实现所需功能。数字钟设计原理如图3.
1所示:
3.1 顶层模块设计。
顶层模块设计如附录图3所示,其rtl电路图如附录图4所示。
顶层模块包含四个输入:系统时钟输入“clk”,秒设置信号“sset”,分钟设置信号“mmset”,小时设置信号“hset”。一个8位的段选数码管显示值输出“seg”,一个8位的片选数码管显示哪一个数码管输出“dig”,将输出给数码管进行动态显示。
“时钟分频模块”电路符号名为“int _ div”,“按键驱动模块”电路符号名慰“an _ jian”,“时钟计数模块”内部采用三格计数器级联的方式分别驱动时、分、秒计数,秒计数器和分计数器均为60进制计数器,小时计数器为24进制计数器,电路符号名分别为两个“ji _ shu _ 60”和一个“ji _ shu _ 24”。
3.2 时钟分频模块设计。
时钟分频模块”直接使用老师上课所给的分频程序,加入两个分频模块,与“时钟计数模块”和“按键驱动模块”进行连接。
3.3 按键驱动模块设计。
按键驱动模块使用原理图方法设计,采用在按键信号传输过程中串联触发器实现按键去抖,保证触发器两次触发的间隔远大于按键抖动的时间,而远小于人动作反应的时间。另外因为实例用独立按键按下后是低电平,所以在触发器后面串联一个非门,使其变为高电平有效。附录图1所示为按键驱动模块原理图,图3.
2所示为按键驱动模块封装而成的电路元件。该模块包括四个输入,时钟信号clk,秒设置输入s _ in,分钟设置输入m _ in,小时设置输入h _ in;三个输出,秒设置输出s _ out,分钟设置输出m _ out,小时设置输出h _ out。
从该模块的原理图可以看出,时、分、秒三个按键的去抖原理完全一样,这里提取小时输入和输出进行**验证,得到的结果如图4.1所示,每一个时钟上升沿h _ out的值都保持和h _ in的值相反,该设计能够达到预期设计要求。
3.4 时钟计数模块设计。
如附录图2所示。“时钟计数模块”内部采用三个计数器级联的方式分别驱动时、分、秒计数,秒计数器和分钟计数器均为60进制计数器,小时计数器为24进制计数器,为方便驱动数码管,三个计数器的输出均为两位的十进制数据。秒调整信号通过一个或门和秒进位信号一起驱动分钟计数器;小时调整和分钟调整同理。
60进制计数器主要verilog hdl**如下:
begin
if(!rst) /0
begin
q1<=0; q2<=0
end else
begin q1[3:0]=q1[3:0]+1; co<=0;
if(q1[3:0]>9) begin q1[3:0]=0;
q2[3:0]=q2[3:0]+1;
if(q2[3:0]>5) begin q2[3:0]=0; co<=1;end
endelse q1=q1;
endend
24进制计数器主要verilog hdl**如下:
begin
co=0;q1[3:0]=q1[3:0]+1;
if(q1[3:0]>9) begin q1[3:0]=0; q2[3:0]=q2[3:0]+1; end
if(q1==4)if(q2==2) begin q1=0;q2=0; end
end如图4.2所示该模块中60进制模块与24进制模块的**波形,60进制模块设置qs0、qs1分别为个位、十位,个位计数到9之后清零,十位计数到5之后清零,24进制模块设置qh0、qh1分别为个位、十位,个位计数到9之后清零,十位计数到2之后清零。
3.5 整点报时模块。
整点报时模块的设计思路是当数字钟计数到一个整点时间时,蜂鸣器开始响鸣。蜂鸣器的封装设计如图3.3所示,程序设计为一段乐谱,主要verilog hdl**如下:
always @(posedge clk_4hz)
begincase(j)
'd1:origin='d4916; /low
'd2:origin='d6168;
'd3:origin='d7281;
'd4:origin='d7791;
'd5:origin='d8730;
'd6:origin='d9565;
'd7:origin='d10310;
'd8:origin='d010647; /middle
'd9:origin='d011272;
'd10:origin='d011831;
'd11:origin='d012087;
'd12:origin='d012556;
'd13:origin='d012974;
'd14:origin='d013346;
'd15:origin='d13516; /high
'd16:origin='d13829;
'd17:origin='d14108;
'd18:origin='d11535;
'd19:origin='d14470;
'd20:origin='d14678;
'd21:origin='d14864;
default:origin='d011111;
endcase
endalways @(posedge clk_4hz) /乐谱。
beginif(len==63)
len=0;
elselen=len+1;
case(len)
0:j=3;1:j=3;2:
j=3;3:j=3;4:j=5;5:
j=5;6:j=5;7:j=6;8:
j=8;9:j=8;10:j=8;11:
j=6;12:j=6;13:j=6;14:
j=6;15:j=12;16:j=12;17:
j=12;18:j=15;19:j=15;20:
j=15;21:j=15;22:j=15;23:
j=9;24:j=9;25:j=9;26:
j=927:j=9;28:j=9;29:
j=9;30:j=9;31:j=9;32:
j=9;33:j=9;34:j=10;35:
j=7;36:j=7;37:j=6;38:
j=6;39:j=5;40:j=5;41:
j=5;42:j=6;43:j=8;44:
j=8;45:j=9;46:j=9;47:
j=3;48:j=3;49:j=8;50:
j=8;51:j=8;52:j=5;53:
j=5;54:j=8;55:j=5;56:
j=5;57:j=5;58:j=5;59:
j=5;60:j=5;61:j=5;62:
j=5;63:j=5;
EDA技术课程设计报告
一 课程设计内容 所有字体用小四宋体不加粗 1 编写vhdl程序进行跑马灯及键盘控制。2 编写vhdl程序进行步进电机的转速控制。3 根据所用芯片设计外围电路。4 电路焊接。5 程序 入所焊电路进行系统软硬件综合调试。二 课程设计目的。通过编写vhdl程序,结合硬件电路设计,实现跑马灯,键盘,数码管...
EDA技术课程设计
黄冈师院物科院。eda技术 课程设计报告。项目名称 多功能彩灯控制电路设计。专业年级 电子信息工程2009级。学号 201122220324 学生姓名 易鹏。指导教师 冯杰。报告完成日期 2011 年 12 月 25日。第一章绪论。1.1系统背景。1.1.1 eda技术特点及在电子技术中的应用 ed...
EDA技术课程设计
课程设计要求 1 eda技术 课程设计成绩为 eda技术 理论课成绩一部分,课程设计不合格者,理论课成绩为不及格 2 每个设计课题可从给定设计中任选一题,由1 3人组成,3 课程设计格式要求见本文档后面附录部分 4 课程设计成绩 文档内容 格式成绩 50 答辩成绩 50 5 每个设计课题组 员均须参...