EDA秒表电路课程设计Word格式文档下载.docx
《EDA秒表电路课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EDA秒表电路课程设计Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
三、设计内容及要求
设计内容:
设计一个计时范围为0.01秒到1小时的数字秒表。
具体内容如下:
(1)计时分辨率为0.01秒,所以要设计分频电路或直接获得一个100HZ的时钟信号。
(2)从0.01秒到0.1秒、0.1秒到1秒以及1分到10分,要用到十进制计数器,设计一具有清零、使能端,4位计数输出端和1位计数溢出端的十进制计数器。
(3)从10秒到1分,以及从10分到1小时,要用到六进制计数器。
设计一具有清零、使能端,4位计数输出端和1位计数溢出端的六进制计数器。
(4)根据上述模块完成顶层文件设计,构成完整的计时电路。
要求:
1)根据系统设计要求,采用自顶向下的方法,划分系统主要模块,画出整体设计原理框图。
2)根据工作原理、用硬件描述语言对设计内容实现,列出设计程序清单,给出仿真波形图和调试中存在问题及解决方法。
3)设计内容下载至目标芯片,在EDA的GW48型实验箱进行功能验证。
4)谈谈该课题的课程设计中遇到的问题,获得哪些技能和体会,以及建设性意见。
四、设计步骤和安排:
(1)题目安排;
图书馆查相关资料;
(2)设计原理研究,总体设计;
(3)各主要模块的VHDL设计。
各模块的设计仿真分析。
(4)完成系统顶层文件设计,系统总体功能的仿真分析。
(5)将设计内容进行硬件配置,在GW48实验箱上进行调试。
(6)撰写课程设计报告、答辩并提交报告。
1.前言……………………………………………………………1
2.设计要求…………………………………………………………1
3.实验目的…………………………………………………………1
4.实验原理…………………………………………………………2
5.设计框图…………………………………………………………2
6.模块说明…………………………………………………………3
6.1分频器…………………………………………………………3
6.2十进制计数器…………………………………………………4
6.3六进制计数器…………………………………………………5
7.顶层文件……………………………………………………………7
7.1整体连接图……………………………………………………7
7.2仿真波形………………………………………………………7
8.硬件调试……………………………………………………………8
8.1硬件要求………………………………………………………8
8.2引脚锁定………………………………………………………8
9.实验总结……………………………………………………………9
9.1错误与解决方法…………………………………………………9
9.2心得体会…………………………………………………………9
10.参考文献……………………………………………………………10
1.前言
本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,对计算机系统中时钟控制系统进一步了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。
在掌握所学的计算机组成与结构课程理论知识时,通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析,解决计算机与控制实现的技术,达到课程设计的目标。
利用VHDL语言设计基于计算机电路中时钟脉冲原理的数字秒表,显示最长时间是59分59秒99,设计了复位和启停开关。
复位开关reset可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备,启停开关为en,高电平时秒表工作,低电平时秒表停止计时,在触发高电平时接着上次的计时继续计时。
数字秒表在日常生活中有广泛的用途,秒表的逻辑结构较简单,它主要由显示译码器、十进制计数器、六进制计数器和
分频器组成。
四个10进制计数器:
用来分别对百分之一秒、十分之一秒、秒和分进行计数;
两个6进制计数器:
用来分别对十秒和十分进行计数;
显示译码器:
完成对显示的控制。
根据电路持点,用层次设计概念将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,然后再将各模块合起来联试。
通过MAX+plusⅡ软件,对上述模块设计,仿真无误后,设计顶层文件,仿真无误后,下载到主芯片EPF10K10LC84-4中,按适配划分后的管脚定位,同相关功能块硬件电路接口连线,进行硬件实验。
EPF10K10LC84-4是Altera公司生产的FLEX10K系列可编程逻辑器件。
主要采用了嵌入式阵列,容量高达百万门,为可重复配置的CMOS
SRAM工艺,系统工作过程中可随时改变配置,有利于现场编程,完成秒表设计的修改于完善。
2设计要求
⑴秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全部为BCD码输出,这样便于和显示译码器的连接。
⑵整个秒表还需要有一个启动停止信号和一个置零信号,以便秒表能随意停止及启动。
⑶秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器和六进制计数器组成,由于实验板上面的数码管自带译码器,所以无需再行设计译码器。
3.实验目的
通过本次课设,加深对EDA技术设计的理解,学会用MaxplusⅡ工具软件设计基本电路,熟练掌握VHDL语言,为以后工作使用打下坚实的基础。
4.实验原理
根据数字秒表的设计要求,可以使用多个不同的计数器单元模块,通过有机的组合来得到数字秒表系统。
要满足数字秒表的精度,首先应获得精确地计时基准信号,这里的系统精度要求为0.01s,因此必须设置周期为0.01s的时钟脉冲,由于数字秒表输入的脉冲为1024MHz,因此将来每10个外界输入脉冲就输出一个频率,该频率的时间周期正好为0.01s,即先将外界脉冲进行1024Hz----100Hz分频;
5.设计框图
数字秒表
显示电路
计时电路
计时控制电路
控制状态机
七段译码电路
扫描电路
分频电路
计数器
十进制计数器
六进制计数器
系统组成框图
6.模块说明
6.1分频计
能进行十分频的分频计,将实验板上的1024HZ信号十分频得到100HZ,为所需要的能够精确到最小精度为0.01秒,其文本语言(文件名:
fenpingqi.vhd)为底层文本,图1为分频器的仿真波形图
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYfenpinqiIS
PORT(clk:
INSTD_LOGIC;
clka:
OUTSTD_LOGIC);
ENDfenpinqi;
ARCHITECTUREylfOFfenpinqiIS
BEGIN
PROCESS(clk)
VARIABLENUM:
INTEGERRANGE0TO4;
VARIABLEq:
STD_LOGIC;
IFclk'
EVENTANDclk='
1'
THEN
IFNUM=4THENNUM:
=0;
q:
=NOTq;
ELSENUM:
=NUM+1;
ENDIF;
clka<
=q;
ENDPROCESS;
ENDylf;
图1
6.2十进制计数器
能够实现10进制循环计数,带有清零端reset、开始端en、时钟信号端clk、其文本语言(文件名:
CNT10.vhd)为底层文本,图2为十进制计数器的仿真波形图
ENTITYCNT10IS
PORT(reset,en,clk:
carry:
OUTSTD_LOGIC;
q:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCNT10;
ARCHITECTUREylfOFcnt10IS
SIGNALqs:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALCA:
IF(reset='
)THEN
qs<
="
0000"
;
ELSIF(clk'
eventandclk='
)then
IFen='
then
IF(qs="
1001"
ca<
='
0'
ELSIF(qs="
1000"
=qs+1;
ELSE
PROCESS(ca,en)
q<
=qs;
carry<
=caANDen;
图2
6.3六进制计数器
能够实现6进制循环计数,带有清零端reset、开始端en、时钟信号端clk、其文本语言(文件名:
CNT6.vhd)为底层文本,图3为六进制计数器的仿真波形图
ENTITYCNT6IS
carry:
ENDCNT6;
ARCHITECTUREylfOFcnt6IS
SIGNALca:
0101"
0100"
图3
7.顶层文件
7.1整体连接图
7.2仿真波形
8.硬件调试
8.1硬件要求
⑴主芯片EPF10K10LC84_4;
⑵6位八段扫描共阴极数码管显示;
⑶两个按键开关(reset置零,en启停);
⑷CLK的跳线冒接在1024HZ上;
⑸选择实验板上的模式5。
8.2引脚锁定
9.实验总结
9.1错误与解决方法
①分频器VHDL语言设计时,想要将1024HZ的频率十分频为100HZ,所犯的错误定义一个变量NUM时RANGE范围从0到9,
INTEGERRANGE0TO9;
仿真时所得频率的一个上升沿就对应原始频率的十个脉冲,变成了20分频,所以NUM的RANGE范围改正为
②顶层文件仿真出波形时发现reset置零按键不起作用,但是计时完全可以,而且reset的功能和en启停按键一样,后来检查发现是十进制计数器和六进制计数器里面VHDL语言出现了差错,原先错误地方
IF(clk'
这样对十进制计数器和六进制计数器本身没有影响,但是reset所起的置零作用必须在有脉冲也就是en必须使能的情况下而且必须在脉冲上升沿到来时才能工作。
后来将VHDL改成
这样一旦reset置零按键触发就会有高电平,所有的数码管都会立即清零达到置零的目的。
③硬件验证时,也遇到了两个问题。
第一个,按下en启停键,实验板上的数码管计时没有走起来,然后检查了一下CLOCK的跳线冒,发现时接触良好的,由于软件仿真已经成功,所以我只怀疑实验板上面的问题,然后我发现,我所锁定的那个按键接触不良,应该已经被损坏,于是重新换个按键,锁定引脚。
本以为已经成功了,但是在秒表计时到分时,新的问题又出现了,第二个问题,数码管从左向后第四位显示的是乱码,我直接怀疑应该是引脚锁定出错了,然后查看锁定的引脚,发现数码管的LED21,LED22,LED23锁成42,43,44引脚,后来查阅实验指导书改成47,48,49引脚,实验总算成功。
9.2心得体会
本次EDA课程设计历时一个星期,一个星期的日子里,可以说是苦多于甜,但是让我学到了很多东西,同时巩固以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。
通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。
但是在编调试顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了。
在硬件实验时,也遇到了一点困难,想要的结果不能在数码管上得到正确的显示:
在设定输入的时钟信号后,数字秒表计数一会儿,始终是会出现乱码。
后来,经过调试之后,才发现是因为数码管的引脚锁定出了问题。
经过调试错误与改正,终于实现了秒表计时电路的课程设计。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正解决问题,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
总的来说,这次设计的秒表计时电路还是比较成功的,虽然在实际的过程中曾经遇到了大量的问题,但是经过自己的努力,都给妥善解决了,这样的积累对于现在大学生来说是十分宝贵的。
希望以后能有更多的动手实践机会,在硬件中发现自己的不足,弥补自己的不足,最终成为一个合格的大学生。
10.参考文献
[1]朱正伟,韩学超.EDA技术与应用[M].北京:
清华大学出版社,2005
[2]潘松,黄继业.EDA技术与VHDL[M].北京:
清华大学出版社,2007
[3]聂春燕.EDA技术实验与课程设计.北京:
清华大学出版社,2006
[4]张亦华,延明.EDA技术实用教程.北京:
北京邮电大学出版社,2005
[5]黄仁欣.EDA技术实用教程.北京:
[6]林明泉.VHDL数字控制系统设计范例.北京:
电子工业出版社,2003