电气EDA课程设计基于VHDL电子秒表设计Word下载.docx
《电气EDA课程设计基于VHDL电子秒表设计Word下载.docx》由会员分享,可在线阅读,更多相关《电气EDA课程设计基于VHDL电子秒表设计Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
(4)LED显示模块
LED有着显示亮度高,响应速度快的特点,最常用的是七段式LED显示器,又称数码管。
七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。
LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码(段码),如显示”0”,字形码为3fh。
图5LED数码管结构图
数码管的接口有静态接口和动态接口。
动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。
将二十四进制计数器和2个六十进制计数器的输出作为LEDA显示模块的输入,在时钟信号的控制下通过此模块完成6个LED数码管的显示,输出信号为WEI[2…0]和LED[6…0],分别为位选信号和段码输出。
图6LED显示示意图
四、要求的设计成果
答辩时需调通各个模块的程序;
各部分模块完成后,用Quartus对程序编译、仿真;
得出系统仿真波形,包括各模块仿真波形及顶层仿真波形。
课程设计报告中需完成系统的设计要求,软件部分需要给出具体的代码,调试的部分要求撰写心得体会。
五、进程安排
序号
课程设计内容
学时分配
集中学生学习课程设计关键理论、明确设计任务及设计要求、指导学生分组、安排设计进度
0.5天
2
查阅、收集资料,拟定控制方案
3
计数器程序编写及仿真调试
4
分频器程序编写及仿真调试
5
系统整体仿真调试
6
按规范要求撰写课程设计说明书
2天
7
提交设计作品及设计说明书、答辩
合计
5天
六、主要参考资料
[1]杨晖.大规模可编程逻辑器件与数字系统设计.北京:
北京航空航天大学出版社,2010.
[2]任爱锋.基于FPGA的嵌入式系统设计.西安:
西安电子科技大学出版社,2011.
[3]杨恒.FPGA/CPLD最新实用技术指南.北京:
清华大学出版社,2010.
[4]王锁萍.电子设计自动化(EDA)教程.成都:
电子科技大学出版社,2009.
[5]路而红.电子设计自动化应用技术.北京:
北京希望电子出版社,2009.
[6]潘松.VHDL实用教程.成都:
电子科技大学出版社,2010.
指导教师(签名):
20年月日
《EDA技术及应用》
课程设计报告
题目:
基于VHDL的电子秒表的设计
院(系):
机电与自动化学院
专业班级:
电气工程及其自动化1204
学生姓名:
学号:
指导教师:
2015年1月5日至2015年1月9日
华中科技大学武昌分校制
目录
1.课程设计题目…………………………………………………………………………………2
2.课程设计目的…………………………………………………………………………………2
3.课程设计主要内容……………………………………………………………………………2
4.具体设计………………………………………………………………………………………2
4.1系统总体框图………………………………………………………………………………2
4.2系统模块功能设计及仿真…………………………………………………………………3
4.2.1六十进制计数器模块……………………………………………………………………3
4.2.2二十四进制计数器模块…………………………………………………………………5
4.2.3分频器模块………………………………………………………………………………6
4.2.4LED显示模块……………………………………………………………………………8
5.课程设计总结………………………………………………………………………………11
6.参考文献……………………………………………………………………………………12
1.课程设计题目
基于VHDL的电子秒表的设计
2.课程设计目的
(1)熟悉并理解VHDL程序,掌握VHDL的格式和语法规则。
(2)掌握相关的EDA知识。
(3)了解数字秒表的设计原理。
(4)熟悉掌握程序设计思路及运用VHDL语言控制。
(5)加深对数字系统自顶向下的模块化设计思想的理解。
(6)熟悉QuartusⅡ软件的使用方法,重点掌握编译和仿真的操作。
3.课程设计主要内容
设计一个电子秒表,给定时钟信号为256HZ,要求系统达到以下功能:
(1)用6个数码管分别显示时、分、秒,计时范围为:
(2)计时精度是1s。
(3)具有启/停开关,复位开关,可以在任何情况下使用。
4.具体设计
电子秒表的基本工作原理就是不断输出连续脉冲给加法计数器,加法计数器通过译码器来显示它所记忆的脉冲周期个数。
4.1系统总体框图
根据系统设计要求,系统的底层设计主要由六十进制计数器模块、二十四进制计数器模块、分频模块、LED显示模块组成。
系统顶层设计图如图1所示。
图1中左边为三个输入信号en,clk,reset,分别为启动/停止开关,时钟信号和复位开关。
右边是clock1和输出信号wei[3..0],led[6.0]。
4.2模块功能设计及仿真
本系统由六十进制计数器模块、二十四进制计数器模块、分频模块执行计时功能,输入信号是256Hz,通过分频后为1hz,时钟信号是1Hz作为秒表的秒输入,秒为60进制计数器,分也为60进制计数器,小时采用二十四进制计数器,各级进位作为高位的使能控制。
4.2.1六十进制计数器模块
功能:
实现在计时脉冲的作用下逢六十进一,从而完成对秒部分和分部分进行计数的功能。
图2六十进制示意图
图2为一个八位的六十进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa[3…0]、qb[3…0]、rco,分别为低4位输出、高4位输出和进位位。
设计思路:
qb、qa端口输出分别为数的十位个位,qb输出端口取值范围为0-5,qa输出端口取值范围为0-9,rco端口输出进位信号。
在时钟(计时)信号上升沿同步下,Reset端口输入复位信号对qa,qb端口的输出进行同步的清零,低电平有效;
在时钟(计时)信号上升沿同步下,en使能端为高电平时,当qb=5,qa=9,rco=0,那么rco产生进位信号,qa清零,qb清零;
当qa和qb为其他值时,qa进行加1计数,直到值为9时,qa清零,qb加1。
模块源程序:
LIBRARYieee;
USEieee.std_logic_1164.ALL;
USEieee.std_logic_unsigned.ALL;
ENTITYcount60IS
PORT(en,Reset,clk:
inSTD_LOGIC;
qa:
outSTD_LOGIC_VECTOR(3DOWNTO0);
qb:
rco:
OUTSTD_LOGIC);
ENDcount60;
ARCHITECTUREaOFcount60IS
BEGIN
process(clk)
variabletma:
STD_LOGIC_VECTOR(3DOWNTO0);
variabletmb:
begin
IfReset='
0'
thentma:
="
0000"
;
tmb:
elsifclk'
eventandclk='
1'
then
ifen='
rco<
=tmb
(2)andtmb(0)andtma(3)andtma(0);
iftma="
1001"
thentma:
iftmb="
0101"
thentmb:
elsetmb:
=tmb+1;
endif;
elsetma:
=tma+1;
endif;
qa<
=tma;
qb<
=tmb;
endprocess;
ENDa;
图3六十进制仿真波形图
4.2.2二十四进制计数器模块
实现在计时脉冲的作用下逢二十四进一,从而完成对小时部分进行计数的功能。
图4二十四进制计数器示意图
图4为一个八位的二十四进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa[3…0]、qb[3…0],分别为低4位输出、高4位输出。
qb、qa端口输出分别为数的十位个位,qb输出端口取值范围为0-2,qa输出端口取值范围为0-9。
在时钟(计时)信号上升沿同步下,en使能端为高电平时,当qb=2,qa=3,那么qb清零,qa清零;
ENTITYcount24IS
qa,qb:
ENDcount24;
ARCHITECTUREa1OFcount24IS
IfReset='
else
ifclk'
tmb:
elsiftmb="
0010"
andtma="
0011"
then
tma:
endif;
ENDa1;
图5二十四进制仿真波形图
4.2.3分频器模块
将输入256HZ的时钟信号分频为1HZ的时钟(计时)信号作为秒表的秒输入。
图6分频器示意图
图6为一个分频器,输入信号为clk和rst,分别为时钟信号和复位信号,输出信号为clk_out,为分频器1HZ的时钟信号输出。
设计思路:
将CLK端口输入的时钟信号经分频后送给CLK_OUT端口;
当RST端口输入信号有效(低电平)时,CLK_OUT端口输出信号清零。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYfenpinqiIS
PORT(CLK,RST:
instd_logic;
CLK_OUT:
outstd_logic);
ENDfenpinqi;
ARCHITECTUREbehavOFfenpinqiIS
signalclk_data:
std_logic;
SIGNALCNT6:
INTEGER:
=0;
PROCESS(CLK)
IFRST='
THENCNT6<
=0;
ELSIFCLK'
EVENTANDCLK='
THEN
IFCNT6=255THENclk_data<
=NOTclk_data;
CNT6<
=0;
ELSECNT6<
=CNT6+1;
ENDIF;
CLK_OUT<
=clk_data;
ENDPROCESS;
ENDbehav;
图7分频器仿真波形图
4.2.4LED显示模块
功能:
6个数码管分别显示时、分、秒。
LED显示原理:
图8LED数码管结构图
数码管的接口有静态接口和动态接口。
动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。
图9LED显示示意图
图9将二十四进制计数器和2个六十进制计数器的输出作为LEDA显示模块的输入信号,在时钟信号的控制下通过此模块完成6个LED数码管的显示,输出信号为WEI[2…0]和LED[6…0],分别为位选信号和段码输出。
ENTITYclock1IS
PORT(CLK:
INSTD_LOGIC;
S1,S2,S3,S4,S5,S6:
INSTD_LOGIC_VECTOR(3DOWNTO0);
WEI:
OUTSTD_LOGIC_VECTOR(2DOWNTO0);
LED:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDENTITY;
ARCHITECTUREbehaveOFclock1IS
INTEGERRANGE0TO5:
SIGNALSHUJU:
BEGIN
PRO1:
PROCESS(CLK)
IFCLK'
EVENTANDCLK='
THEN
CNT6<
=CNT6+1;
CASECNT6IS
WHEN0=>
WEI<
="
000"
SHUJU<
=S1;
WHEN1=>
001"
=S2;
WHEN2=>
010"
=S3;
WHEN3=>
011"
=S4;
WHEN4=>
100"
=S5;
WHEN5=>
101"
=S6;
WHENOTHERS=>
NULL;
ENDCASE;
ENDIF;
PRO2:
PROCESS(SHUJU)
CASESHUJUIS
WHEN"
=>
LED<
1111110"
;
0001"
0110000"
1101101"
1111001"
0100"
0110011"
1011011"
0110"
1011111"
0111"
1110000"
1000"
1111111"
1111011"
WHENothers=>
0000000"
ENDCASE;
ENDbehave;
图10LED显示模块仿真波形图
5.课程设计总结
首先,通过本课程设计的学习,不但巩固了课堂上所学的VHDL的基本语法规则和注意事项,以及VHDL程序的基本结构,多种语句的使用等,而且纠正了我在理论学习上的盲点和漏洞。
其次,了解了数字秒表的设计原理,以及设计思路。
体会到自顶向下的模块化设计方法的优越性,使用这种方法,能够将一个大的数字系统分解为各个子系统和模块,具有符合常规的思维习惯、减小了设计的难度、以及易于在各种集成电路或可编程器件之间移植等优点。
然后,进一步熟悉了QuartusⅡ软件的使用方法,以及编译、仿真等的具体操作步骤,实际操作中所用到的是功能仿真,仿真过程为添加波形文件,设计输入,观察输出,检查自己的设计是否达到和完成要求的逻辑功能。
在上机操作的过程中,由于想快点完成任务,从而忽略了一些关键的地方,如顶层文件的设置、仿真时功能仿真网络表的生成等,导致仿真结果迟迟没有出来,这让我体会到了做什么事都不能急功近利,要有耐心,稳扎稳打才是应有的做事的态度。
上机实践的过程让我对EDA技术的涵义和特点有了更深的体会,尤其是EDA技术以软件的方式设计硬件的特点。
最后,我要感谢同学和指导老师对我的帮助,让我能够更快更好地完成课程设计的任务。
总而言之,这次课程设计,让我收获颇丰,不仅巩固和提升了我的理论知识,还提升了我的动手实践能力以及分析和解决问题的能力。
6、主要参考资料
课程设计成绩评定表
成
绩
评
定
项目
比例
得分
平时成绩(百分制记分)
30%
业务考核成绩(百分制记分)
70%
总评成绩(百分制记分)
100%
评定等级
优良中及格不及格
20年月日