eda课程设计说明书数字钟控制器设计大学论文.docx
- 文档编号:10506376
- 上传时间:2023-02-17
- 格式:DOCX
- 页数:26
- 大小:386.54KB
eda课程设计说明书数字钟控制器设计大学论文.docx
《eda课程设计说明书数字钟控制器设计大学论文.docx》由会员分享,可在线阅读,更多相关《eda课程设计说明书数字钟控制器设计大学论文.docx(26页珍藏版)》请在冰豆网上搜索。
eda课程设计说明书数字钟控制器设计大学论文
<
数字钟控制器设计
院、部:
电气与信息工程学院
学生姓名:
指导教师:
职称副教授
专业:
班级:
完成时间:
《EDA技术》课程设计任务书
学院:
电气与信息工程学院适应专业:
级电子信息工程和通信工程
指导教师
学生姓名
课题名称
数字钟控制器设计
内
容
及
任
务
一、设计内容
设计一个数字电子钟,可以用于显示时、分、秒24小时制的数字钟。
要求控制器由时钟、分频、时、分、秒计数、译码、显示等电路组成。
二、主要任务:
(1)确定总体方案.
(2)运用EDA技术完成各模块的软件设计,运用所学的电路及电子技术知识完成硬件模块设计仿真.
(3)进行软件设计仿真,结合硬件进行调试。
撰写课程设计说明书,汇总电路设计图纸,实验原始数据等设计资料。
拟
达
到
的
要
求
或
技
术
指
标
一、拟达到的要求:
(1)恰当地运用所学理论知识,对总体方案进行必要的技术、经济比较,然后选定较佳的设计方案。
(2)编写各模块VHDL源程序,绘制原理框图、顶层电路模块划分图、系统总原理图电路图、流程图采用规范的标准绘制,要求设计参数正确、布局合理。
二、技术指标:
电子钟的具体设计指标要求如下。
(1)计时功能:
这是电子钟最基本的功能。
要求用6位LED数码管来显示时间,显示格式为时/分/秒。
(2)校时功能:
用户可以更改当前时间。
用户按下某个键进入校时状态,然后连续输入6个BCD数表示更改后的时间值。
输入确认键后,新的时间值才生效并返回计时状态。
在校时状态下,用户也可以按取消键退出校对时间状态,并且返回计时状态。
(3)设置闹钟时间:
设置闹钟时间,要求操作过程与校时过程式一样。
(4)闹钟功能开关:
闹钟设定为开启或关闭两种状态。
当闹钟功能开关开启时,如果当前时间性与设置的闹钟时间一致,则发出最多长达1分钟的闹铃声。
在闹钟响的时候,用户可以手动停止闹铃声。
当闹钟功能开关关闭时,则不发出闹铃声。
主
要
参
考
资
料
[1]林明权.VHDL数字控制系统设计范例[M].北京:
电子工业出版社,2003
[2]刘欲晓等.EDA技术与VHDL电路开发应用实践[M].北京:
电子工业出版社,2009
[3]刘延飞等.基于ALTERAFPGA/CPLD的电子系统设计及工程实践[M].北京:
人民邮电出版社,2009
[4]刘江海.EDA技术[M].武汉:
华中科技大学出版社,2013
[5]艾明晶.EDA设计实验教程[M].北京:
清华大学出版社,2014
[6]陈苏婷.EDA设计与应用基础[M].北京:
气象出版社,2015
[7]范秋华.EDA技术及实验教程[M].北京:
电子工业出版社,2015
[8]马玉清.EDA技术(VHDL版)[M].合肥:
中国科学技术大学出版社,2014
[9]李俊.EDA技术与VHDL编程[M].北京:
电子工业出版社.2012
[10]陈炳权,曾庆立.EDA技术及实例开发教程[M].湘潭:
湘潭大学出版社,2013
指导教师
意见
签名:
年月日
教研室意见
签名:
年月日
摘要
本设计按照设计要求和设计目的,使用Quartus
软件,对VHDL语句进行仿真,设计分为分秒模块、时模块、整点报时模块、分频模块和消抖模块。
其中分秒模块和时模块为计数显示作用,为核心模块;整点报时模块作为闹钟输出,外接扬声器:
分频模块作为时钟脉冲的输入;消抖模块消除按键所产生的抖动,提高设计的正确性。
各个模块设计完之后,生成顶层文件,根据分频提供标准秒脉冲送入秒计数,秒计数的进位输出送入分计数的时钟输入,分计数的时钟输入送入时计数的时钟输入,三个模块外接6位数码管;外接一个清零输入和两个置数输入的原理绘制原理图,再根据实验箱电路结构模式7进行引脚锁定,在实验箱上下载测试。
下载测试时,6位数码管显示成功时、分、秒的计数,同时通过按键可以调节时钟和分钟、清零,在每一个整点到来时,扬声器都会有声音发出,完成所要达到的目标。
所以,设计正确。
关键词:
计时;模块设计;电子时钟
目录
1绪论1
1.1EDA技术的介绍1
1.2EDA技术的必要性1
1.3QuartusII简介2
2方案设计3
3模块设计4
3.1分秒模块4
3.2时模块6
3.3消抖模块7
3.4整点报时模块8
3.5分频模块10
3.5.1分频1Hz模块10
3.5.2分频1000Hz模块11
4顶层原理图13
5下载测试18
结束语20
参考文献21
致谢22
1绪论
1.1EDA技术的介绍
EDA是电子设计自动化(ElectronicDesignAutomation)缩写,EDA是以计算机为工具,根据硬件描述语言HDL(HardwareDescriptionlanguage)完成的逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。
典型的EDA工具中必须包含两个特殊的软件包,即综合器和设配器。
综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转化和综合,最终获得我们欲实现功能的描述文件。
综合器在工作前,必须给定所要实验的硬件结构参数,它的功能就是将软件描述和给定的硬件结构用一定的方法联系起来。
1.2EDA技术的必要性
数字电路课程设计是数字电路设计型实验中的重要部分,它要求运用电子技术课程中有关的理论知识和实验方法,完成一些综合性较强的设计课题。
由于目前在数字电路实验教学中,大部分院校仍然用中小规模的通用集成电路来实现设计功能,当设计的数字电子钟系统比较复杂,需要多个集成芯片和大量连线时,就增加了设计电路板的难度和故障调试难度,延长了设计周期,降低了学生的学习兴趣;同时,常用中小规模集成芯片的大量重复使用也大大增加了设计成本。
因此,在数字电路课程设计中引入EDA技术,采用当前国际先进的设计方法和理念,改革传统的课程设计方法,已经成为一种趋势。
在学校电子技术实验的课程教学中,最让实验老师感到头痛的有两个方面:
一是由于电路的连接、电子元件的损坏或仪器毛病,为了查找这些问题,使得一个实验在相对短暂的时间内难以完成;二是仪器坏了要修理,元件坏了要拆换,连接导线、电缆线损坏也要调换等等。
这些不仅大大增加了实验的开支,同是实验室的管理也非常困难。
应用EDA虚拟的电子实验平台,让学生坐在计算机旁进行各种电子线路的仿真实验与在实验室使用真实的仪器、进行电子线路实验,具有同样的感受和更具有真实的实验效果。
学生可以在虚拟的元器件库中拿取元器件;可以在虚拟的仪器库中拿取仪器与仪表;同样可以用导线与电缆连接电路;可以选择器件的参数,可以对电路进行调试、分析;可以在示波器的显示屏上观测到所测电压、电流的波形,可以通过仪表读取被测参数的值,这一切都非常逼真。
做仿真实验一般不会损坏仪器,不会烧坏仪器(除非把计算机损坏)。
只要按照规定的方法进行实验,都能够达到预期的实验目的。
可见,用EDA软件进行仿真电子实验的确可以达到事半功倍的效果。
所以在数字电路课程设计中学习EDA技术是非常必要的。
1.3QuartusII简介
QuartusII 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
2方案设计
数字电子钟的主体由时、分、秒三个模块组成,其中分秒模块同为60进制计数,所以编写成一个VHDL语句,时模块以24进制计数。
由分频模块提供脉冲,1Hz脉冲送入秒模块的时钟信号,当计满60个脉冲时,产生进位信号,送给分模块的时钟信号;当分模块产生进位信号时,就将进位信号送入时脉冲的时钟信号,再通过六位数码管显示。
闹钟模块接入分秒模块的显示输出,当到达整点时,将信号输出给扬声器,通过扬声器报时。
外接两个按键,经过消抖模块,调整时、分模块的进位,从而实现置数功能。
同时再外接一个按键作为清零信号输入。
设计的系统框图如图1所示。
图1数字钟控制器系统框图
3模块设计
3.1分秒模块
分秒模块作为核心模块,以60进制计数,电路运行时,从0开始计数,到59时,计满一个周期,就产生进位信号,输给下一个模块,然后重新计数。
通过按键控制清零信号。
不过分模块比秒模块多连接一个按键,控制置数输入,其次,秒模块的时钟信号来自分频模块分出的1Hz频率信号,而分模块则来自秒模块的进位信号。
由VHDL语句生成的顶层文件如图2所示。
图2分秒模块顶层文件
VHDL源程序描述如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT_SIS
PORT(CLK,CLR:
INSTD_LOGIC;
OUT_H:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
OUT_L:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
C:
OUTSTD_LOGIC);
ENDCNT_S;
ARCHITECTUREONEOFCNT_SIS
SIGNALS_H:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALS_L:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK,CLR)
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFS_L(3DOWNTO0)<"1001"THEN
S_L(3DOWNTO0)<=S_L(3DOWNTO0)+1;
C<='0';
ELSIFS_H(3DOWNTO0)<"0101"THEN
S_L(3DOWNTO0)<="0000";
S_H(3DOWNTO0)<=S_H(3DOWNTO0)+1;
ELSE
S_L(3DOWNTO0)<="0000";
S_H(3DOWNTO0)<="0000";
C<='1';
ENDIF;
ENDIF;
IFCLR='1'THEN
S_L(3DOWNTO0)<="0000";
S_H(3DOWNTO0)<="0000";
ENDIF;
OUT_H<=S_H;
OUT_L<=S_L;
ENDPROCESS;
ENDONE;
波形仿真如图3和图4所示。
图3分秒模块波形仿真
图4进位输出显示
由波形仿真可看出,当CLR为高电平时,时钟清零,停止计数。
当计数到59时,下一个时钟上升沿到来时重新计数,并且产生进位信号,符合设计要求。
3.2时模块
时模块采用24位进制,每计满24个脉冲后重新计数。
时钟脉冲来自分模块的进位信号,当进位信号来临时,时模块开始计时。
同时通过按键控制清零信号和置数信号。
由VHDL语句生成的顶层文件如图5所示。
图5时模块的顶层文件图
VHDL源程序描述如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT_HIS
PORT(CLK,CLR:
INSTD_LOGIC;
OUT_H:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
OUT_L:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCNT_H;
ARCHITECTUREONEOFCNT_HIS
SIGNALS_H:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALS_L:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK,CLR)
BEGIN
IFCLR='1'THEN
S_H<="0000";
S_L<="0000";
ELSIFCLK='1'ANDCLK'EVENTTHEN
IFS_H="0010"ANDS_L="0011"THEN
S_L<="0000";
S_H<="0000";
ELSIFS_L<"1001"THENS_L<=S_L+1;
ELSES_L<="0000";
S_H<=S_H+1;
ENDIF;
ENDIF;
ENDPROCESS;
OUT_H<=S_H;
OUT_L<=S_L;
END;
波形仿真如图6所示。
图6时模块仿真波形
由波形仿真可看出,当CLR为高电平时,时钟清零,当计数到23时,下一个时钟上升沿到来时就重新计数,并且产生进位信号,符合设计要求。
3.3消抖模块
在按键控制置数功能时,键闭合和断开时都会产生电压抖动,抖动会影响到按键输出的结果。
所以为了保证按键输出的正确性,需要去除抖动,所以编写出消抖模块。
由VHDL语句生成的顶层文件如图7所示。
图7消抖模块顶层文件图
VHDL源程序描述如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYXIAODOUIS
PORT(DIN,CLK:
INSTD_LOGIC;
DOUT:
OUTSTD_LOGIC);
END;
ARCHITECTURERTLOFXIAODOUIS
BEGIN
PROCESS(DIN)
VARIABLET:
INTEGERRANGE0TO63:
=0;
BEGIN
IFDIN='1'THEN
IFCLK'EVENTANDCLK='1'THEN
T:
=T+1;
IFT>10THEN
DOUT<='1';T:
=T-1;
ELSEDOUT<='0';
ENDIF;
ENDIF;
ELSEDOUT<='0';T:
=0;
ENDIF;
ENDPROCESS;
ENDRTL;
波形仿真图如图8所示。
图8消抖模块波形仿真图
由波形看出,扫描信号DIN产生的高电平很短时,将被认为是抖动,会被去除,不会产生输出信号DOUT,只有当DIN的高电平持续一段时间,才能输出DOUT信号,去除抖动成功,符合设计要求。
3.4整点报时模块
整点报时模块的输入信号为分、秒的输出显示信号。
当达到整点,即分、秒都显示为00的时候,将输出高电平,给扬声器,实现到达整点报时的功能。
由VHDL语句生成的顶层文件如图9所示。
图9整点报时模块顶层文件图
VHDL源程序描述如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYZDBSIS
PORT(CLK:
INSTD_LOGIC;
TENM,ONEM,TENS,ONES:
INSTD_LOGIC_VECTOR(3DOWNTO0);
Q:
OUTSTD_LOGIC);
ENDZDBS;
ARCHITECTUREBEHAVOFZDBSIS
BEGIN
PROCESS(CLK)
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFTENM="0000"ANDONEM="0000"ANDTENS="0000"ANDONES="0000"THEN
Q<='1';
ELSEQ<='0';
ENDIF;
ENDIF;
ENDPROCESS;
ENDBEHAV;
波形仿真图如图10所示。
图10整点报时模块波形仿真图
由波形可以看出,只有当四个输入端全为0000时,输出端Q才会产生高电平的信号,符合设计要求。
3.5分频模块
由于设计中需用到两个不同的频率1Hz和1000Hz,而我们只能从实验箱中得到1Hz的频率,得不到1000Hz的频率。
所以,决定用分频器将20MHz的频率分出我们所需要的1Hz和1000Hz。
3.5.1分频1Hz模块
由VHDL语句生成的顶层模块如图11所示。
图11分频1Hz顶层文件图
VHDL源程序描述如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYFENPIN1IS
PORT(CLK_IN:
INSTD_LOGIC;
FOUT:
OUTSTD_LOGIC);
END;
ARCHITECTUREONEOFFENPIN1IS
SIGNALCNT:
INTEGERRANGE0TO5000000;
SIGNALCLK_OUT:
STD_LOGIC;
BEGIN
PROCESS(CLK_IN)
BEGIN
IFCLK_IN'EVENTANDCLK_IN='1'THEN
IFCNT=4999999THEN
CNT<=0;
CLK_OUT<=NOTCLK_OUT;
ELSE
CNT<=CNT+1;
ENDIF;
ENDIF;
ENDPROCESS;
FOUT<=CLK_OUT;
ENDONE;
波形仿真图如图12所示。
图12分频1Hz波形仿真图
这个分频模块主要输出时长1s的脉冲,输出给秒模块、闹钟模块,使秒模块开始计数,给整个时钟提供开始计时的脉冲信号。
同时提供给整点报时需要的高低频率信号。
3.5.2分频1000Hz模块
由VHDL语句生成的顶层文件如图13所示。
图13分频1000Hz顶层文件图
VHDL源程序描述如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYFENPIN1000IS
PORT(CLK_IN:
INSTD_LOGIC;
FOUT:
OUTSTD_LOGIC);
END;
ARCHITECTUREONEOFFENPIN1000IS
SIGNALCNT:
INTEGERRANGE0TO5000;
SIGNALCLK_OUT:
STD_LOGIC;
BEGIN
PROCESS(CLK_IN)
BEGIN
IFCLK_IN'EVENTANDCLK_IN='1'THEN
IFCNT=4999THEN
CNT<=0;
CLK_OUT<=NOTCLK_OUT;
ELSE
CNT<=CNT+1;
ENDIF;
ENDIF;
ENDPROCESS;
FOUT<=CLK_OUT;
ENDONE;
波形仿真图如图14所示。
图14分频1000Hz模块波形仿真图
这个分频模块提供消抖模块所需的高低频率信号,使消抖模块能够实现正常的运行。
4顶层原理图
顶层原理图各个模块的顶层文件图构成。
主要有分秒模块、时模块、整点报时模块、消抖模块、分频1Hz模块和分频1000Hz模块。
各模块按照输入信号和输出信号之间的联系进行连接。
时钟输入为20MHz,首先经过分频1Hz模块,送入作为秒计数的分秒模块,当秒计满60个脉冲时,通过输出进位信号,输入给作为分计数的分秒模块,分开始进行计数。
当分产生进位信号时,将信号送入时模块的输入,时开始计数,三个模块的输出接6位数码管显示。
分、秒的输出同时接入整点报时模块的输入,当4位输入都为00时,输出。
外接两个输入,经过消抖模块,控制时、分的输入,完成置数功能。
消抖模块的时钟脉冲由分频1000Hz模块得到。
外接另一个按键,作为清零信号输入。
顶层原理图如15所示。
图15顶层原理图
VHDL源程序描述如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCLOCKIS
PORT(CLK0:
INSTD_LOGIC;--输入1MHZ
CLR0:
INSTD_LOGIC;
KEY1_M:
INSTD_LOGIC;--调时调分键
KEY2_H:
INSTD_LOGIC;
SPEAK:
OUTSTD_LOGIC;
SECH:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);--时分秒输出
SECL:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
MINH:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
MINL:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
HOUH:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
HOUL:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
END;
ARCHITECTUREONEOFCLOCKIS
SIGNALSCLK,SCLK_X:
STD_LOGIC;
SIGNALSCO1,SCOM:
STD_LOGIC;
SIGNALSCO2,SCOH:
STD_LOGIC;
SIGNALS1,S2:
STD_LOGIC;
SIGNALSMINH,SMINL:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALSSECH,SSECL:
STD_LOGIC_VECTOR(3DOWNTO0);
COMPONENTCNT_S--分和秒模块
PORT(CLK,CLR:
INSTD_LOGIC;
OUT_H:
OUTSTD_LO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- eda 课程设计 说明书 数字 控制器 设计 大学 论文