数字秒表设计大作业Word格式.docx
- 文档编号:22087322
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:22
- 大小:326.60KB
数字秒表设计大作业Word格式.docx
《数字秒表设计大作业Word格式.docx》由会员分享,可在线阅读,更多相关《数字秒表设计大作业Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
超高速硬件描述语言VHDL是数字系统进行抽象的行为与功能描述道具体的内部线路结构描述,利用EDA工具可以在电子设计的各个阶段各个层系进行计算机模拟验证,保证设计过程中的正确性,可大大降低设计成本,缩短设计周期。
本文介绍的数字秒表设计,。
利用基于VHDL的EDA设计工具,采用大规模可编程逻辑器件FPGA,通过设计芯片来实现系统功能。
应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了系统的开发时间,提高了工作效率。
本文介绍一种以FPGA为核心,以VHDL为开发工具的数字秒表,并给出源程序和仿真结果。
2.设计要求
2.1实验任务及要求
设计用于体育比赛用的数字秒表,要求:
1、及时精度大雨1/1000秒,计数器能显示1/1000秒时间,提供给计时器内部定时的始终频率为12MHz;
计数器的最长计时时间为1小时,为此需要一个7位的显示器,显示的最长时间为59分59.999秒。
2、设计有复位和起/停开关。
(1)、复位开关用来使计时器清零,并做好计时准备。
(2)、起/停开关的使用方法与传统的机械式计数器相同,即按一下起/停开关,启动计时器开始计时,再按一下起/停开关计时终止。
(3)、复位开关可以在任何情况下使用,即使在计时过程中,只要按一下复位开关,计时进程理科终止,并对计时器清零。
3、采用层次设计方法设计符合上述功能要求的数字秒表。
4、对电路进行功能仿真,通过波形确认电路设计是否正确。
5、完成电路传布设计后,通过实验箱下载验证设计的正确性。
3.总体构思
3.1系统总体框图
数字秒表主要有分频器、计数模块、功能控制模块、势能控制模块和显示输出模块组成。
系统框图如图3-1所示。
图表3-1
本次的设计仿真选用以EP1C6Q240芯片为核心的FPGA开发板,该开发板提供了较完善的外围周边电路和信号接口,并提供了一块4位7段数码管的扩展板,为本次设计提供了硬件条件。
在设计中,功能控制模块根据控制选择不同的功能状态的时间输出,通过势能控制模块和显示输出模块驱动7段数码管显示相应的时间。
4.各单元电路的设计和实现
4.1数字秒表的电路逻辑图
图表4-1
4.2时序波形图如下:
图表4-2
4.3顶层程序框图如下:
图表4-3
5.功能仿真及其结果
5.1分频模块
开发板提供的系统时钟为50MHz,通过分频模块3次分频,将系统的时钟信号分为100Hz和1000Hz分别提供给计数模块和势能控制模块作为时钟控制信号。
该模块部分VHDL源程序如下:
5.2计数模块
计数模块中,时钟信号是100Hz作为秒表的百分秒输入,百分秒为100进制计数器,其进位输出作为秒的计数时钟,秒为60进制计数器。
控制信号输入端的begin-stop和reset信号控制计数器的开始、停止和至零。
该模块部分VHDL源程序如下,方针结果如图5-1所示:
图表5-1
5.3势能控制模块
本次设计选用的开发板数码管扩展板的数码显示采用的是4个数码管动态扫描输出,一般只要每个扫描频率超过人的眼睛视觉暂留频率24Hz以上就可以达到点亮单个显示而不闪烁,扫描频率采用1kHz信号。
通过势能控制,每个数码管的显示频率为250Hz,满足显示要求。
5.4显示控制模块
本次设计选用的开发板在4位数码管输入方面只提供1个数据接口,用来动态显示4位数据,在数据输入信号方面要做到和势能控制信号同频率输出,才能保证数码显示不会出错或显示移位。
同时通过控制信号示系统处在不同的功能状态:
系统时间运行状态,系统时间至零状态,时钟正常显示状态。
利用功能转换信号实现3个功能状态之间的转换,并产生相应的控制信号去控制显示输出模块不同状态的正确显示。
其部分源程序如下:
各部分模块完成后,用QuartusⅡ对程序编译、仿真、得到的仿真波形如图5-2所示。
图表5-2
本系统采用的FPGA芯片为Altera公司的EP1C6Q240,用VHDL和QuartusⅡ软件工具开发,设计输入完成后,进行整体的编译和逻辑仿真,然后进行转换、延时仿真生成配置文件,最后下载至FPGA器件,完成结果功能配置,实现其硬件功能。
6.编译下载及调试
6.1各功能模块VHDL程序十分之一秒
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityMINSECONDbis
port(clk,clrm,stop:
instd_logic;
secm0:
outstd_logic_vector(3downto0);
co:
outstd_logic);
endMINSECONDb;
architectureSECofMINSECONDbis
begin
process(clk,clrm)
variablecnt0:
std_logic_vector(3downto0);
ifclrm='
1'
then
cnt0:
="
0000"
;
elsifclk'
eventandclk='
then
ifstop='
0'
ifcnt0="
1001"
co<
='
cnt0:
elsifcnt0<
"
=cnt0+1;
endif;
elsecnt0:
=cnt0;
endif;
endif;
secm0<
endprocess;
endSEC;
秒
entitySECONDis
port(clk,clr:
sec1,sec0:
endSECOND;
architectureSECofSECONDis
process(clk,clr)
variablecnt1,cnt0:
ifclr='
cnt1:
elsifclk'
ifcnt1="
0101"
andcnt0="
1000"
co<
elsifcnt0<
else
ifcnt1<
=cnt1+1;
sec1<
=cnt1;
sec0<
分
entityMINUTEis
port(clk,en,clr:
min1,min0:
endMINUTE;
architectureMINofMINUTEis
process(clk)
ifen='
min1<
min0<
endMIN;
闹钟
entitynzis
port(clk:
time:
instd_logic_vector(23downto0);
h1,h0,m1,m0,s1,s0:
instd_logic_vector(3downto0);
qlk:
endnz;
architecturesss_arcofnzis
begin
process(clk)
begin
ifclk'
if(h1=time(23downto20)andh0=time(19downto16)andm1=time(15downto12)and
m0=time(11downto8)ands1=time(7downto4)ands0=time(3downto0))then
qlk<
else
endif;
endsss_arc;
顶层程序
entitytime2is
port(clk,clr,stop,en,led:
outstd_logic;
hou1,hou0,m1,m0,s1,s0,sm0:
outstd_logic_vector(3downto0));
endtime2;
architecturebavoftime2is
componentMINSECONDb
port(clk,clrm,stop:
endcomponent;
componentSECOND
port(clk,clr:
componentMINUTE
componentHOUR
port(clk,en,clr,led:
h1,h0:
componentnz
signalc:
std_logic;
signalc1:
signalc2:
signala1,a0,b1,b0,d1,d0,dm0:
begin
hou1<
=a1;
hou0<
=a0;
m1<
=b1;
m0<
=b0;
s1<
=d1;
s0<
=d0;
sm0<
=dm0;
u1:
MINSECONDb
portmap(clk=>
clk,clrm=>
clr,stop=>
stop,secm0=>
dm0,co=>
c);
u2:
SECOND
c,clr=>
clr,sec1=>
d1,sec0=>
d0,co=>
c1);
u3:
MINUTE
c1,clr=>
clr,min1=>
b1,min0=>
b0,en=>
en,co=>
c2);
u4:
HOUR
c2,clr=>
clr,h1=>
a1,h0=>
a0,en=>
en,led=>
led);
u5:
nz
clk,h1=>
a0,m1=>
b1,m0=>
b0,s1=>
d1,s0=>
d0,qlk=>
qlk,
time=>
time);
endbav;
ifstop='
ifcnt0="
elsecnt0:
entityHOURis
port(clk,en,clr,led:
endHOUR;
architecturehour_arcofHOURis
ifled='
0010"
0011"
elsifcnt0="
ifcnt1="
0001"
h1<
h0<
endhour_arc;
7.总结与展望
本系统设计用了现在EDA设计手段,基于FPGA采用VHDL语言编程实现数字秒表的设计,运用层次化设计方法,完成个电路模块的链接。
本数字秒表可用于体育比赛,计时精度大于高,显示时间长的特点
当今社会是数字化的社会,是数字集成电路广泛应用的社会。
数字集成电路本身在不断更新换代,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商独立承担。
系统设计师更愿意自己设计专业集成电路(ASIC)芯片,而且希望设计周期尽可能短,最好在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用中,因而出现了现场可编辑器件(FPLD)。
现场可编程门陈列(FPGA)即属其中应用最广泛的一种。
参考文献
[1]杨忠志等编.电子技术课程设计.北京:
机械工业
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 秒表 设计 作业