EDA技术课程设计报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计任务书设计题目1:数码管显示数字钟设计

院(系)分管领导:教研室主任:指导教师:

2017年6月23日

目录

第1章引言 0

第2章电路原理 0

第3章程序设计 (1)

顶层模块设计 (2)

时钟分频模块设计 (2)

按键驱动模块设计 (2)

时钟计数模块设计 (3)

整点报时模块 (4)

LED灯花样显示模块 (5)

数码管显示模块设计 (5)

第4章调试、测试分析及结果 (7)

调试 (7)

测试分析 (7)

结果 (9)

第5章小结 (10)

参考文献 (11)

附录电路图及程序 (11)

第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灯花样显示

四大部分。其总体功能设计框图如图所示:

第3章程序设计

其中,“时钟分频模块”用于对芯片晶振提供的时钟信号进行分频,然后给其他模块分配需要的时钟频率。按键输入的信号经过按键去抖后传送给“时钟计数模块”。正常计数时,“时钟计数模块”将处理好的时、分、秒数据实时传送给“数码管显示模块”,当有来自“按键驱动模块”的信号时,改变相应的时、分、秒计数器中的值,实现调整时间的作用。“数码管显示模块”实时将“时钟计数模块”的数据转换成数码管动态显示信号进行显示。最后,加上一个“整点报时”模块和“LED灯花样显示模块”经过时钟分频信号,传递给“数码管显示模块”,实现所

需功能。数字钟设计原理如图所示:

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所示为按键驱动模块

原理图,图所示为按键驱动模块封装而成的电路

元件。该模块包括四个输入,时钟信号clk ,秒

时钟分频模块 按键驱动模块 时钟计数模块 整点报时模块 LED 灯花样显示模块 数码管显示模块 图 数字钟设计原理图

设置输入s _ in,分钟设置输入m _ in,小时设置输入h _ in;三个输出,秒设

置输出s _ out,分钟设置输出m _ out,小时设置输出h _ out。

从该模块的原理图可以看出,时、分、秒三个按键的去抖原理完全一样,这里

提取小时输入和输出进行仿真验证,得到的结果如图所示,每一个时钟上升沿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

end

else q1=q1;

end

end

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

相关文档
最新文档