基于VHDL的电子秒表的设计Word下载.docx

上传人:b****6 文档编号:17005185 上传时间:2022-11-27 格式:DOCX 页数:12 大小:156.83KB
下载 相关 举报
基于VHDL的电子秒表的设计Word下载.docx_第1页
第1页 / 共12页
基于VHDL的电子秒表的设计Word下载.docx_第2页
第2页 / 共12页
基于VHDL的电子秒表的设计Word下载.docx_第3页
第3页 / 共12页
基于VHDL的电子秒表的设计Word下载.docx_第4页
第4页 / 共12页
基于VHDL的电子秒表的设计Word下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

基于VHDL的电子秒表的设计Word下载.docx

《基于VHDL的电子秒表的设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于VHDL的电子秒表的设计Word下载.docx(12页珍藏版)》请在冰豆网上搜索。

基于VHDL的电子秒表的设计Word下载.docx

4主要参考资料⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13

1课程设计目的及主要内容

1)运用数字系统的设计方法进行数字系统设计;

2)能进行较复杂的数字系统设计;

3)数字中的工作原理,工作流程图与原理方框图,自顶向下的数字系统设计方法。

具体内容:

设计一个电子秒表,给定时钟信号为256HZ,要求系统达到以下功能:

(1)用6个数码管分别显示时、分、秒,计时范围为:

00:

00:

00~23:

59:

59

(2)计时精度是1s。

(3)具有启/停开关,复位开关,可以在任何情况下使用。

2设计模块

2.1系统总体框图及功能设计

2.1.1系统总体框图

电子秒表的基本工作原理就是不断输出连续脉冲给加法计数器,加法计数器通过译码器来显示它所记忆的脉冲周期个数。

根据系统设计要求,系统的底层设计主要由六十进制计数器模块、二十四进

制计数器模块、分频模块、LED显示模块组成。

系统顶层设计图如图1所示。

图1系统顶层设计图

图1中左边为三个输入信号en,clk,reset,分别为启动/停止开关,时钟信号和复位开关。

中间从上至下依次为count24,count60,count60,fenpinqi。

右边是clock1和输出信号wei[3..0],led[6.0]。

2.1.2模块功能设计

本系统由六十进制计数器模块、二十四进制计数器模块、分频模块执行计时功能,输入信号是256Hz,通过分频后为1hz,时钟信号是1Hz作为秒表的秒输入,秒为60进制计数器,分也为60进制计数器,小时采用二十四进制计数器,各级进位作为高位的使能控制。

2.2六十进制计数器

2.2.1六十进制计数器设计思路

设计一个八位的六十进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa[3⋯0]、qb[3⋯0]、rco,分别为低4位输出、高4位输出和进位。

图2六十进制计数器示意图

六十进制计数器模块部分VHDL源程序如下。

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;

qa<

=tma;

qb<

=tmb;

endprocess;

ENDa;

2.2.2六十进制计数器仿真结果

六十进制计数器模块部分仿真结果如下图3

图3六十进制计数器仿真波形图

CLK:

时钟信号

RST:

复位信号低电平清零

En:

置数端低电平不让它继续计数qb、qa:

分别为输出数的十位个位,qb取值范围为0-5,qa取值范围为0-9rco:

进位信号,当qb=5,qa=0,rco=0时,clk上升沿来到后,qb=0,qa=0,rco=1;

当qb=5,qa=0,rco=1时,clk上升沿来到后,qb=0,qa=0,rco=0。

2.3二十四进制计数器

2.3.1二十四进制计数器设计思路

设计一个八位的二十四进制计数器模块,输入信号为en、reset、clk,分

别为使能、复位和时钟信号,输出信号为qa[3⋯0]、qb[3⋯0],分别为低4位输出、高4位输出。

图4二十四进制计数器示意图

二十四进制计数器模块部分VHDL源程序如下。

ENTITYcount24ISPORT(en,Reset,clk:

outSTD_LOGIC_VECTOR(3DOWNTO0));

ENDcount24;

ARCHITECTUREa1OFcount24IS

begin

IfReset='

elseifclk'

tmb:

elsiftmb="

0010"

andtma="

0011"

ENDa1;

2.3.2二十四进制计数器仿真结果

二十四进制计数器模块部分仿真结果如下图5

图5二十四进制计数器仿真波形图

置数端低电平不让它继续计数

qb、qa:

输出的四位二进制数,分别对于要输出数的十位个位

2.4分频器

2.4.1分频器设计思路

分频器原理:

输入一个较高的频率,比如750kHz,则设计算法,使得每输入7500个脉冲输出一个脉冲,这样输出端口就提供一个100Hz的频率。

输入信号为clk和rst,分别为时钟信号和复位信号,输出信号为clk_out,为分频器1HZ的时钟信号输出。

图6分频器示意图

分频器模块部分VHDL源程序如下。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYfenpinqiIS

PORT(CLK,RST:

instd_logic;

CLK_OUT:

outstd_logic);

ENDfenpinqi;

ARCHITECTUREbehavOFfenpinqiISsignalclk_data:

std_logic;

SIGNALCNT6:

INTEGER:

=0;

PROCESS(CLK)

IFRST='

THENCNT6<

=0;

ELSIFCLK'

EVENTANDCLK='

THEN

IFCNT6=2THENclk_data<

=NOTclk_data;

CNT6<

=0;

ELSECNT6<

=CNT6+1;

ENDIF;

CLK_OUT<

=clk_data;

ENDPROCESS;

ENDbehav;

2.4.2分频器仿真结果

图7分频器仿真波形图

输入分频前的时钟信号

Clkout:

输出分频后的时钟信号

2.5LED显示

2.5.1LED显示模块设计思路

LED有着显示亮度高,响应速度快的特点,最常用的是七段式LED显示器,

又称数码管。

七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。

LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码(段码),如显示”0”,字形码为3fh。

数码管的接口有静态接口和动态接口。

动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管

的轮流点亮(数位选择)

将二十四进制计数器和2个六十进制计数器的输出作为LEDA显示模块的输入,在时钟信号的控制下通过此模块完成6个LED数码管的显示,输出信号为WEI[2⋯0]和LED[6⋯0],分别为位选信号和段码输出。

图8LED显示示意图

图9LED数码管结构图

LED显示模块部分VHDL源程序如下。

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:

BEGINPRO1:

PROCESS(CLK)BEGIN

IFCLK'

EVENTANDCLK='

THENCNT6<

=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;

PRO2:

PROCESS(SHUJU)

CASESHUJUIS

WHEN"

=>

LED<

1111110"

;

0001"

0110000"

1101101"

1111001"

0100"

0110011"

1011011"

0110"

1011111"

0111"

1110000"

1000"

1111111"

1111011"

WHENothers=>

0000000"

ENDCASE;

END;

2.5.2LED显示模块仿真结果

LED显示模块部分仿真结果如下图10

图10LED显示模块仿真波形图

Clk:

s1,s2,s3,s4,s5,s6:

输入的的四位二进制数

led:

输出的七位二进制数,对应数码管脚的输出gfedcba

wei:

输出的三位而进制数(输出范围为000-101),控制led输出,当wei=000时,led输出s1对应的十进制数的数码管脚gfedcba当wei=001时,led输出s2对应的十进制数的数码管脚gfedcba当wei=010时,led输出s3对应的十进制数的数码管脚gfedcba当wei=011时,led输出s4对应的十进制数的数码管脚gfedcba当wei=100时,led输出s5对应的十进制数的数码管脚gfedcba当wei=101时,led输出s6对应的十进制数的数码管脚gfedcba

2.6顶层仿真

2.7

顶层仿真仿真波形如下图11

图11顶层仿真仿真波形

CLK:

RST:

En:

输出的七位二进制数,对应数码管脚的输出gfedcbawei:

输出的三位而进制数(输出范围为000-101),控制led输出,当wei=000时,led输出对于秒钟的个位当wei=001时,led输出对于秒钟的十位当wei=010时,led输出对于分钟的个位当wei=011时,led输出对于分钟的十位当wei=100时,led输出对于时钟的个位当wei=101时,led输出对应时钟的十位

3课程设计总结

通过本次课程设计,把EDA课堂上学习的硬件描述语言应用到了实际,巩固了已经学到的东西,并对它有了更深层次的理解。

实际操作让我了解了实际操作方面的应用。

我认识到完成一个复杂的工程需要通过模块。

对数字秒表的设计,可由60进制计数器、24进制计数器、分频器、LED显示4个模块组成。

在每个模块的设计思路和过程上都要清晰和明确,再分布完成仿真,得到想要的正确仿真结果。

在整个设计过程之中细心十分重要,特别是当编译出错或仿真结果不正确时需要细心检查,看是源程序的程序错误还是编译的对象错误等等。

完成此次课程设计后,我学习到了许多东西:

逻辑思维能力和动手能力得到提高,同时加深了理解EDA开发软件QuartusII的认识,对于VHDL语言的应用有了进一步的理解和掌握,还有在对一些设计的思路上有所领悟。

这些对我的学习都有一定的好处,对于我的思维开阔也有所帮助。

本次设计的完成,对我来说也是一种肯定,是一种提高。

在以后的实际生活中本次课程设计的理念也是一种参考。

4主要参考资料

[1]杨晖.大规模可编程逻辑器件与数字系统设计.北京:

北京航空航天大学出版社,2010.

[2]任爱锋.基于FPGA的嵌入式系统设计.西安:

西安电子科技大学出版社,2011.

[3]杨恒.FPGA/CPLD最新实用技术指南.北京:

清华大学出版社,2010.

[4]王锁萍.电子设计自动化(EDA)教程.成都:

电子科技大学出版社,2009.

[5]路而红.电子设计自动化应用技术.北京:

北京希望电子出版社,2009.

[6]潘松.VHDL实用教程.成都:

电子科技大学出版社,2010.

课程设计成绩评定表

绩评定

项目

比例

得分

平时成绩(百分制记分)

30%

业务考核成绩(百分制记分)

70%

总评成绩(百分制记分)

100%

评定等级

优良中及格不及格

指导教师(签名):

20年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1