基于EDA的数字秒表的设计Word文件下载.docx
《基于EDA的数字秒表的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于EDA的数字秒表的设计Word文件下载.docx(43页珍藏版)》请在冰豆网上搜索。
EDA;
FPCA;
VHDL;
QURATUSⅡ;
模块化
Abstract
ThisdesignbasedonVHDLDEAdesigntools,thelarge-scaleprogrammablelogicdevicesFPGA,throughthedesignchipstorealizethesystemfunction.UseEDAtechnologytodesigndigitalsystem,ineachlevel,allhavedescription,classification,andcomprehensive,andvalidationoffourtypesofwork.ThesystemdesigninputtotheEDAsoftware,canusegraphic,hardwaredescriptionlanguageorthehybridinput.Division,comprehensive,andvalidationusingEDAsoftwareplatformdoneautomatically.Isactuallyusingmodulardesignthoughtis,willthewholedesignHuaFenforcountingmodule,memorymodule,chooseoutputmoduleanddecodingmodule,firstbythefunctionofeachmoduleofhardwaredescriptionlanguagedescribethem,withQUARTUSⅡsoftwaresimulationverifythecorrectnesswaveform.Basedonthegeneraleachmodulethroughtheoriginalliststatementstogether,toformadigitalstopwatchcircuitsystem,therealizationofdigitalstopwatcheachfunction.Insoftwaredesignandsoftwaresimulationfinish,againthroughEDAsimulationexperimentboxhardware,verifythecorrectnessofthesystemagain.UsingtheFPGAfunction,thesystemcanfieldprogramming,on-sitesimulationsoftwarecanbeliketochangeatanytimeitsfunction,thewholesystemhasthecharacteristicsoflowpowerconsumption,multi-function,thesystemofhighprecision,thetimingofthespeed,canbemoreroadtime,thanoriginalcontrolsystemhashigherreliabilityandreal-time.
Keyword:
Digitalstopwatch;
QURATUSⅡ;
modularization;
第一章数字秒表的设计方案
1.1绪论
时间本是一种运动,假如宇宙静止不动,就没有所谓的时间了,时间的定义是由天体的运行所界定的。
假如我们要在昼夜循环之间确定出某个时刻,则非有“测量准则”不可。
正因为人类社会出现了这一新的局面,时间才有了定义,才有所划分。
人类才开始为时间编上数目,而且计算得越来越准确。
在许许多多的领域中我们需要对时间做精确的记录。
由于这种需要的出现,设计出一个高精度的计时器既有重要的意义。
基于EDA的多路数字秒表由于其计时准确,分辨率高(0.01秒),在各种竞技场上得到看广泛的应用。
本数字秒表可用于体育比赛。
系统具有简单,工作稳定可靠等优点,具有一定的实际意义。
1.2设计方案的选择与论证
方案一:
基于单片机的数字秒表设计
应用AT89S51单片机设计单片实现数字秒表,主要原理是应用单片机的定时/计数器的计数功能,对机器周期计数形成标准时间,然后通过单片机的并行口将记录的数据在外接的数码管上显示。
设计系统原理图如下图。
方案二:
基于DEA的数字秒表的设计
应用EDA技术,采用FPGA芯片,用VHDL描述语言,将系统的功能通过硬件描述语言描述出来,然后将程序下载到FPGA芯片,设计出自己的芯片,就可以实现数字秒表的功能。
基于EDA的数字秒表设计原理框图如下图:
方案比较:
两种方案实现数字秒表的功能具有很多相似之处,都具有很强的可编程能力,功耗低,抗干扰能力强等,基于EDA设计的数字秒表比基于单片机设计的数字秒表最突出的优点就是它不易被解密,设计出来的产品具有自己的知识产权,经过两个方案的比较,此设计采用EDA技术来设计。
1.2数字秒表的性能
本数字秒表是基于EDA技术来设计,包含4个功能键,分别是计数键(JISHU)、选择输出键(SELECT1)、停止计数键(STOP)、清零键(CLR)。
4个键的功能分别如下:
计数键的作用是用来把当前所记录的时间保存到寄存器中,每按一次就将当次的时间记录到相应的寄存器当中
选择输出键的作用是用来将记录在寄存器中的数据分别输入到译码器中从而反别在数码管中显示记录的时间。
停止计数键的作用是用来控制计数器的计数与停止,当按下停止键后计数器的状态发生改变。
清零键的作用是将计数器和寄存器清零,一旦按下清零键,所要的计数器和寄存器的输出都清零,开始计数。
本数字秒表的时钟信号由555定时器够成的多谐振荡器构成,产生周期为0.01S的时钟信号,故该数字秒表的精度为0.01s,其次它是基于EDA技术来设计,采用FPGA芯片,用VHDL硬件描述语言来编程,故它还具有功耗低,计时速度快,具有较高的可靠性和实时性等。
1.3数字秒表的具体设计方案
本方案为了实现设计要求主要包含了计数模块(JSMK),记忆模块(JYMK),选择输出模块(XZSCMK),译码模块(YMMK),时钟产生模块,显示模块,以及控制各模块的控制电路。
由计数电路来记录时钟脉冲的个数,把时间信号转化计数电路产生的数字信号。
然后由记忆模块来保存计时模块所产生的数据,在由选择输出模块将记忆模块的各道数据分别传送的译码模块,经过译码模块就时间数据译码后,最后又显示模块显示所记录的时间数据.
数字秒表的设计方案流程图下图:
设计方案流程图
第二章数字秒表的电路设计
这一章主要是对各模块的功能以及各模块的组成做具体的介绍,主要包括计数模块、记忆模块、选择输出模块,译码模块、控制电路、显示模块,标准时钟产生电路等。
最后将各个模块连接在一起,实现电路的功能。
2.1计数模块
1、模块组成
计数模块是由6个十进制计数器(CNT10)和2个6进制计数器(CNT6)组成,每个计数器有6个端口,它们分别是时钟端(CLK)、清零端(CLR),进位输出端(CARRY_OUT),使能端(ENA),数据输出端(CQ[3..0])。
2、计数器主要端口的功能如下:
时钟端:
用来接收时钟产生电路产生的时钟,接收上升沿时钟脉冲。
清零端:
用来将计数器的输出清零,为高电平有效,异步清零。
进位端:
当计数器计数已满时,进位端输出高电平,未满时输出低电平。
使能端:
用来控制计数器的工作状态,为高、低电平有效,高电平时计数器处于工作状态,高电平时计数器停止工作。
数据输出端:
用来输出计数器记录的数据,是4位数据线。
3、计数模块电路图如下图:
计数模块电路图
4、工作原理:
将各个计数器的清零端连在一起以实现对整体的清零,将前一级的进位端连到后一级的时钟端,以实现位扩展。
各使能端接至T’触发器的输出端(t),T’触发器的输入端接停止键,以实现对对计数器状态的控制。
2.2记忆模块
1、模块组成
记忆模块主要有8个32位的寄存器及相关的控制电路组成,每个寄存器有使能端(EN),清零端(CLR),数据输入端(D[31..0]),数据输出端(Q[31..0])组成,控制电路有一个8进制计数器(CNT8)以及一个3—8线的译码器(DECODER38)组成。
2、记忆模块主要端口的功能说明如下:
用来控制寄存器的工作状态,为高电平有效,当使能端为高电平时寄存器将输入端口的数据记忆下来,当使能端为低电平时,寄存器保持原来记忆的数据不变。
清零端:
用来对寄存器置零,为高电平有效,当清零端为高电平是寄存器的输出为0,为异步清零。
8进制计数器的各端口同十进制计数器。
3、记忆模块原理图如下图:
记忆模块的原理图
4、工作原理
将各个寄存器的清零的接在一起,以实现对整个记忆模块的清零,将8个寄存器的使能端接分别接到3—8线译码器的输出端,将38译码器的输入端接到8进制计数器的输出端,通过改变计数器的输出值,从而改变译码器的输出值来控制8个寄存器的工作状态,8进制计数器的时钟端接到计数功能键,每按一次计数功能键计数器的值加一,再经过译码,从而实现对八个寄存器的控制,使8个寄存器的使能端依次有效,将8道时间数据记录下来。
2.3选择输出模块
选择输出模块主要由一个8选一的选择器(S
1、模块组成ELECT8_1)以及对它起控制作用的8进制计数器组成。
8选一数据选择器由8个32位的数据输入端(D0..D7),一个地址输入端(AR[2..0]),以及一个32位的数据输出端组成。
8进制计数器的端口同上。
2、选择输出模块的原理图如下图
选择输出模块工作原理图
3、工作原理
8选1选择器的作用是用来将记忆模块记录的数据选择输出,根据地址输入端的地址,输出相应数据输入端的数据。
控制电路主要是用来产生不同的地址信号,从而实现对个道数据的选择输出。
8进制计数器的输出端接到选择器的地址输入端,时钟端接选择输出功能键。
每当选择输出功能键按下后,计数器的输出数据加一,使选择器的地址发生改变,从而选择输出下一路数据。
2.4译码模块
1、模块的组成
模块有8个译码器(HC4511)组成,它由数据输入端(DIN[6..0]),数据输出端(DOUT[3..0])组成。
2、模块原理图如下
译码模块原理图
3、工作原理
译码模块的主要作用时间数据译码成共阴极7端显示数码的字型码,
8个译码器的数据输入端接来至选择输出模块传来的32为数字信号,数据输出端接到8位7段显示数码管的输入端,从而将时间数字信号在数码管中显示出来。
2、5标准时钟脉冲产生电路
标准时钟才生电路主要由555定时器构成的多谐振荡器组成,利用RC电路的冲放电,产生f=1/(R1+R2)的时钟信号,由秒表的计数周期为0.01S,可以定R1=4.3K,R3=5K,C1=1Uf,C2=0.01Uf.
标准时钟脉冲产生电路图如下图:
标准时钟脉冲产生电路图
2、6整体电路
1、数字秒表的整体电路图见附录3.
2、工作原
首先由计数模块,记录来自时钟产生电路产生的标准时钟脉冲,再由记忆模块,分别记录由计数模块产生的时间数字信号,再由选择输出模块将记忆模块中的各路时间数字信号分别送到译码模块,从而在数码管上显示出个路时间信号。
3、数字秒表的使用方法
首先由弄清楚各功能按键的作用,以及在使用时个按键的使用先后顺序。
功能键的作用:
计数键:
这个键的主要作用是每当它被按下一次,就代表已经将当前时间数据信号记录下来了,当按下8次后就将8道数据全部记录了下来。
选择输出键:
这个键的作用是将记录下来的时间数据一次输出,当这个功能键被按下的时候,代表输出下一道时间数据,逐次按8次,可以将数字秒表记录下来的8道数据依次在数码管上显示出来。
清零键:
这个键的作用是将计数器以及寄存器中的数据清零,在开始计数前需要进行清零操作,只需按下清零键即可。
停止键:
停止键的作用就是控制数字秒表的工作状态,按下停止键,计数器停止计数,再按一次停止键,计数器在原来计数的基础上继续计数。
数字秒表是使用方法:
在使用数字秒表时,首先将电源开关(SW)置为打开状态,在计数开始之前,应先按下清零键,将数字秒表清零,计每道数据时将计数键按下,计数完毕后,按下选择输出键,就可以将各道时间数据显示在数码管上了。
第三章数字秒表的软件设计
3.1端口定义
1、计数模块端口定义
CLK------------时钟脉冲输入接口
CLR------------清零输入端口
STOP-----------停止/开始控制输入端口
Y------------数据输出端口
2、记忆模块端口定义
D0至D7--------数据输入端口
Q0至Q7--------数据输出端口
JISHU---------计数输入端口
3、选择输出模块端口定义
CLR--------清零输入端口
SELECT1--------选择输出控制输入端口
Y--------数据输出端口
4、译码模块端口定义
DIN--------数据输入端口
DOUT--------数据输出端口
5、数字秒表端口定义
CLK------------时钟脉冲输入接口
3.2数字秒表主程序
1、数字秒表主程序的VHDL程序见附录3。
2、数字秒表的程序流程图如下:
3、程序流程图的分析:
根据数字秒表的功能需要,在计数开始前,先清零,开始计数,然后判断JISHU键是否按下,当按下的时候就将当前数据记录下来,再判断STOP键是否被按下,若按下,则停止计数,再判断SELECT1的状况,逐次输出被记录的数据,若没有按下,则继续计数。
当JISHU键没有被按下,判断SELECT1的状况,若按下就输出下一道被记录的数据,若SELECT1没有被按下,则保持当前输出值不变。
3.3记数模块子程序
1、记数模块VHLD程序及模块子程序CNT6、FANXIANGQI和CNT8的VHDL程序见附录3。
2、计数模块的程序流程图如下图:
3、程序流程图的分析
为了实现秒表的计数功能,在计数模块设置了CKR键和STOP键,CLR键的优先级高于STOP键,计数时先判断CLR键是否为1,如是则计数模块置零,计数开始,若不是,则判断STOP,若STOP没有按下则继续计数,若被按下,则计数器停止计数,保持原来记录的数据不变。
3、4记忆模块子程序
1、记忆模块VHDL程序及其子程序REG32、DECODER38、CNT8的VHDL程序见附录3。
2、记忆模块的程序流程图如下图:
记忆模块设置了清零端,它的优先级别最高,当CLR=1时,记忆模块的输出全为0,同时i也置零,当CLR不等于0时,判断JISHU键是否被按下,就将第i道数据记录下来。
同时i的值加一,然后再判断CLR是否为零,再判断JISHU是否再次被按下,这样就将下一路数据记录下了,循环进行此步骤,就可以将8到数据依次记录在记忆模块中了。
3.4选择输出模块子程序
1、选择输出模块的VHDL程序及它的子程序SLECT8_1和CNT8见附录2.选择输出模块的程序流程图如下图:
选择输出模块的作用是将数字秒表记录下来的各路时间数据依次在数码管上输出。
它设置了一个清零端CLR,只要CLR为0,选择输出模块的输出马上置零,i的值也置零。
在CLR端不为0的前提下,判断SELRCE1是否被按下,若被按下,则i的值加一,再将Di的值赋个Y,再判断CLR及SELECT1的状态,将下一路数据选择输出,这样就可以讲数字秒表记录下来的各道数据依次在数码管上显示出来。
第4章数字秒表的仿真与实验
本章将通过QUARTUSⅡ软件以及EDA实验箱对设计进行硬件和软件仿真,通过仿真波形和EDA实验箱数码管显示出的波形来验证设计的正确性。
4.1数字秒表的QUARTUSⅡ软件仿真
一、实验目的:
验证计数模块的正确性
二、实验所用仪器:
电脑一台,QUARTUSⅡ软件
三、建立波形文件进行波行仿真
(一)、计数模块的波形仿真及分析
1、计数模块子程序CNT10、FANGXIANGQI和CNT6的仿真波形分别如下图:
CNT10的仿真波形图
T’触发器的仿真波形图
CNT6的仿真波形图
波形分析:
①、从CNT10的仿真波形来看,当EN=1,CLR=0时,计数器正常计数,在计数已满的时候,进位端输出高电平,到CLR=1是,计数器的输出置零,当EA=0s是,计数器保持原有的输出不变。
故该计数器的功能符合设计要求。
②、从T’触发器的波形来看,当清零端为零时,触发器输出为0,当清零端为1的时候,时钟脉冲上升沿来时,触发器的状态发生改变。
故该触发器的功能符合设计要求。
③CNT6的波形分析同CNT10.
2、计数模块的仿真波形图如下图:
计数模块的仿真波形图
从计数模块的仿真波形来看,当CLR=0时,计数模块的输出为0,当CLR为1的时候,按下STOP键后计数器开始计数,再次按下后计数器停止计数。
故计数模块的功能符合设计要求。
(二)、记忆模块的波形仿真机分析
1、记忆模块子程序REG32、CNT8、DECODER38的仿真波形如下图所示:
REG32的仿真波形图
DECODER38的仿真波形图
CNT8的仿真波形图
①、从REG32的波形来看,当EN=1时,将输出数据保存下来,当EN=0时寄存器保持原来的数据部变。
故该寄存器的功能符合设计要求。
②、从DECODER38的仿真波形来看,当地址输入为不同地址时,输出的8为数据只有一位为1。
故该译码器符合设计要求。
③、从CNT8的仿真波形来看,当CLR=1时,计数器清零,当CLR=0时,计数器正常工作。
故该计数器符合设计要求。
2、记忆模块的仿真波形如下:
记忆模块的仿真波形图
当CLR为1时记忆模块的输出为0,当CLR不为0时,按下JISHU键,则依次记录各道输入数据。
故该记忆模块符合设计要求。
(三)、选择输出模块的波形仿真及分析
1、选择输出模块子程序SELECCT8_1的仿真波形如下图:
SELECT8_1的仿真波形图
当地址输入端AR为不同的地址时,Y端分别输出D0至D7的数据,实现了选择输出的功能。
注:
选择输出模块子程序CNT8的程序与记忆模块的CNT8的程序一样,在此不赘叙。
2、选择输出模块的仿真波形如下图:
选择输出模块的仿真波形图
从选择输出模块的波形来看,当CLR为1时,选择输出模块输出为0,当CLR不为0时,当依次按下SELECT1键的时候,依次选择输出8道输入数据。
(四)、译码模块的波形仿真
1,译码模块子程序HC4511的仿真波形如下:
CH511的仿真波形图
从CH4511的波形来看,输出的各位数据,分别为输入数据的字形码。
符合共阴极7端显示数码管译码的要求。
2、译码模块的仿真波形图如下图:
译码模块的仿真波行图
从译码模块的仿真波形图来看,8位输出分别输出的是DIN输入数据的字形码,故符合译码的要求。
(五)、由计数模块和记忆模块连接成的HXMK的仿真波形如下,HXMK的VHDL程序见附录3。
HXMK的仿真波形图
从HXMK的波形来看,当CLR=1,是输出置零,当CLR不为0时,当JISHU键依次按下的时候,就将所记录的时间数据记录下了,该模块把计数模块和记忆模块
连接在一起,从而实现记忆模块将计数模块的记录的数据保存下来。
(六)、由HXMK与选择输出模块连接在一起构成的DCMK的仿真波形图如下图,DCMK的VHDL程序见附录3。
DCMK的仿真波形图
从DCMK的波形来看,当CLR=1后,模块的输出为0,计时开始,连续按下JISHU
键,记录了8道数据,再按下STOP键停止计数,连续按下SELECT1键,输出了,
前面记录的8道数据,该模块将HXMK及选择输出模块的功能结合在一起,实现了计数和选择输出的功能,故符合设计要求。
(七)、由DCMK和YMMK组成的顶层模块SHUXIMIAOBIAO模块的仿真波形如下图,SHUZIMIAOBIAO的VHDL程序见附录3。
当CLR=1时,数字秒表清零,开始计数,连续按下JISHU键,依次记录8道数据,然后按下停止键,停止计数,连续按下SELECT1键,就可以依次输出各道数据的字形码,从而在数码管上依次显示各道时间。
数字秒表的顶层模块是由DCMK及YIMAMK组成,集合了这两个模块的功能,从而实现了数字秒表的功能
4.2EDA实验箱的硬件仿真
用硬件仿真验证数字秒表设计的正确性
二、实验仪器:
EDA试验箱,电脑一台,QUARTUSⅡ软件。
三、EDA实验箱仿真的引脚锁定如下表:
数字秒表功脚
实验箱对应外围端口
1K30对应引脚
Y(0)
A1
118
Y(11)
D3
138
Y(22)
10
C6
Y
(1)
B1
121
Y(12)
A4
137
Y(23)
13
D6
Y
(2)
C1
120
Y(13