《基于EDA技术的电子秒表设计与实现_课程设计(35页).doc》由会员分享,可在线阅读,更多相关《基于EDA技术的电子秒表设计与实现_课程设计(35页).doc(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于EDA技术的电子秒表设计与实现_课程设计-第 32 页课程设计任务书 题 目: 基于EDA技术的电子秒表设计与实现 初始条件:简述电子秒表的工作原理和方法的基础上,设计一个电子秒表,利用EDA软件完成实际、编译、综合、优化和仿真测试等功能要求完成的主要任务: 1.秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分。2.整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。 3.当最高位记到6时 停止计数 显示译码器全部显示零,并发出十声警报声。按下复位按钮后继续计数。时间安排:1)2013年7月8日,查阅相关资料,学习设计原理。2)2013年7月9日,方
2、案选择和电路设计仿真。3)2013年7月10 日,电路调试和设计说明书撰写。4)2013年7月12 日,上交设计成果及报告,同时进行答辩。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日摘要1Abstract21数字秒表的设计方案31.1 绪论31.2 设计方案的选择与论证31.2 数字秒表的性能41.3 数字秒表的具体设计方案52数字秒表的电路设计62.1 计数模块62.2 记忆模块72.4 译码模块92.5 标准时钟脉冲产生电路102.6 整体电路103数字秒表的软件设计113.1 端口定义113.2 数字秒表主程序123.3 记数模块子程序143.4 记忆模块子程序143
3、.4 选择输出模块子程序154数字秒表的仿真与实验164.1 数字秒表的QUARTUS软件仿真164.2 EDA实验箱的硬件仿真23总结25参考文献26附录1 数字秒表电路图27附录2 数字秒表明细表28附录3 数字秒表源程序代码29摘要本设计利用基于VHDL的DEA设计工具,采用大规模可编程逻辑器件的FPGA,通过设计芯片来实现系统功能。用EDA技术设计数字系统,在每一层次上,都有描述、划分、综合、和验证四种类型的工作。把系统设计输入到EDA软件,可以用图形输入,硬件描述语言或者二者的混合输入。划分、综合、和验证采用EDA软件平台自动完成。其实是采用了模块化是设计思想,将整个设计化分为计数模
4、块、记忆模块、选择输出模块和译码模块,首先将各个模块的功能通过硬件描述语言描述出来,用QUARTUS软件仿真波形验证其正确性。在此基础上将各个模块通过原件列化语句连接在一起,构成数字秒表电路系统,实现数字秒表的各个功能。在软件设计和软件仿真完成后,再通过EDA实验箱进行硬件仿真,再次验证系统的正确性。用FPGA实现功能,使系统的可现场编程,现场仿真可像软件一样随时更改其功能,整个系统具有功耗低、多功能的特点、系统的精确度高,计时的速度快,可多路计时,比原有的控制系统既有更高的可靠性和实时性。关键词:数字秒表;EDA;FPCA;VHDL;QURATUS;模块化 Abstract This des
5、ign based on VHDL DEA design tools, the large-scale programmable logic devices FPGA, through the design chips to realize the system function. Use EDA technology to design digital system, in each level, all have description, classification, and comprehensive, and validation of four types of work. The
6、 system design input to the EDA software, can use graphic, hardware description language or the hybrid input. Division, comprehensive, and validation using EDA software platform done automatically. Is actually using modular design thought is, will the whole design HuaFen for counting module, memory
7、module, choose output module and decoding module, first by the function of each module of hardware description language describe them, with QUARTUS software simulation verify the correctness waveform. Based on the general each module through the original list statements together, to form a digital s
8、topwatch circuit system, the realization of digital stopwatch each function. In software design and software simulation finish, again through EDA simulation experiment box hardware, verify the correctness of the system again. Using the FPGA function, the system can field programming, on-site simulat
9、ion software can be like to change at any time its function, the whole system has the characteristics of low power consumption, multi-function, the system of high precision, the timing of the speed, can be more road time, than original control system has higher reliability and real-time.Keyword:Digi
10、tal stopwatch;EDA;VHDL; QURATUS; modularization;1数字秒表的设计方案1.1 绪论时间本是一种运动,假如宇宙静止不动,就没有所谓的时间了,时间的定义是由天体的运行所界定的。假如我们要在昼夜循环之间确定出某个时刻,则非有“测量准则”不可。正因为人类社会出现了这一新的局面,时间才有了定义,才有所划分。人类才开始为时间编上数目,而且计算得越来越准确。在许许多多的领域中我们需要对时间做精确的记录。由于这种需要的出现,设计出一个高精度的计时器既有重要的意义。基于EDA的多路数字秒表由于其计时准确,分辨率高(0.01秒),在各种竞技场上得到看广泛的应用。本数字
11、秒表可用于体育比赛。系统具有简单,工作稳定可靠等优点,具有一定的实际意义。1.2 设计方案的选择与论证方案一: 基于单片机的数字秒表设计 应用AT89S51单片机设计单片实现数字秒表,主要原理是应用单片机的定时/计数器的计数功能,对机器周期计数形成标准时间,然后通过单片机的并行口将记录的数据在外接的数码管上显示。设计系统原理图如下图。AT89S51电源电路复位电路时钟电路按键输入电路显示电路基于单片机设计的系统原理图方案二:基于DEA的数字秒表的设计 应用EDA技术,采用FPGA芯片,用VHDL描述语言,将系统的功能通过硬件描述语言描述出来,然后将程序下载到FPGA芯片,设计出自己的芯片,就可
12、以实现数字秒表的功能。基于EDA的数字秒表设计原理框图如下图:FPGA芯片显示电路外围按键电路电源基于EDA的数字秒表的设计原理图时钟产生电路 方案比较:两种方案实现数字秒表的功能具有很多相似之处,都具有很强的可编程能力,功耗低,抗干扰能力强等,基于EDA设计的数字秒表比基于单片机设计的数字秒表最突出的优点就是它不易被解密,设计出来的产品具有自己的知识产权,经过两个方案的比较,此设计采用EDA技术来设计。1.2 数字秒表的性能 本数字秒表是基于EDA技术来设计,包含4个功能键,分别是计数键(JISHU)、选择输出键(SELECT1)、停止计数键(STOP)、清零键(CLR)。4个键的功能分别如
13、下:计数键的作用是用来把当前所记录的时间保存到寄存器中,每按一次就将当次的时间记录到相应的寄存器当中选择输出键的作用是用来将记录在寄存器中的数据分别输入到译码器中从而反别在数码管中显示记录的时间。 停止计数键的作用是用来控制计数器的计数与停止,当按下停止键后计数器的状态发生改变。 清零键的作用是将计数器和寄存器清零,一旦按下清零键,所要的计数器和寄存器的输出都清零,开始计数。 本数字秒表的时钟信号由555定时器够成的多谐振荡器构成,产生周期为0.01S的时钟信号,故该数字秒表的精度为0.01s,其次它是基于EDA技术来设计,采用FPGA芯片,用VHDL硬件描述语言来编程,故它还具有功耗低,计时
14、速度快,具有较高的可靠性和实时性等。1.3 数字秒表的具体设计方案 本方案为了实现设计要求主要包含了计数模块(JSMK),记忆模块(JYMK),选择输出模块(XZSCMK),译码模块(YMMK),时钟产生模块,显示模块,以及控制各模块的控制电路。由计数电路来记录时钟脉冲的个数,把时间信号转化计数电路产生的数字信号。然后由记忆模块来保存计时模块所产生的数据,在由选择输出模块将记忆模块的各道数据分别传送的译码模块,经过译码模块就时间数据译码后,最后又显示模块显示所记录的时间数据.数字秒表的设计方案流程图下图:时钟产生模快块计数模块控制模块记忆模块选择输出模块控制模块译码模块显示模块设计方案流程图2
15、数字秒表的电路设计 这一章主要是对各模块的功能以及各模块的组成做具体的介绍,主要包括计数模块、记忆模块、选择输出模块,译码模块、控制电路、显示模块,标准时钟产生电路等。最后将各个模块连接在一起,实现电路的功能。2.1 计数模块(1)模块组成 计数模块是由6个十进制计数器(CNT10)和2个6进制计数器(CNT6)组成,每个计数器有6个端口,它们分别是时钟端(CLK)、清零端(CLR),进位输出端(CARRY_OUT),使能端(ENA),数据输出端(CQ3.0)。(2)计数器主要端口的功能如下:时钟端:用来接收时钟产生电路产生的时钟,接收上升沿时钟脉冲。清零端:用来将计数器的输出清零,为高电平有
16、效,异步清零。进位端:当计数器计数已满时,进位端输出高电平,未满时输出低电平。使能端:用来控制计数器的工作状态,为高、低电平有效,高电平时计数器处于工作状态,高电平时计数器停止工作。数据输出端:用来输出计数器记录的数据,是4位数据线。(3)计数模块电路图如下图:计数模块电路图(5)工作原理:将各个计数器的清零端连在一起以实现对整体的清零,将前一级的进位端连到后一级的时钟端,以实现位扩展。各使能端接至T触发器的输出端(t),T触发器的输入端接停止键,以实现对对计数器状态的控制。2.2 记忆模块(1)模块组成 记忆模块主要有8个32位的寄存器及相关的控制电路组成,每个寄存器有使能端(EN),清零端
17、(CLR),数据输入端(D31.0),数据输出端(Q31.0)组成,控制电路有一个8进制计数器(CNT8)以及一个38线的译码器(DECODER38)组成。(2)记忆模块主要端口的功能说明如下: 使能端:用来控制寄存器的工作状态,为高电平有效,当使能端为高电平时寄存器将输入端口的数据记忆下来,当使能端为低电平时,寄存器保持原来记忆的数据不变。 清零端:用来对寄存器置零,为高电平有效,当清零端为高电平是寄存器的输出为0,为异步清零。(3)记忆模块原理图如下图:记忆模块的原理图(4)工作原理 将各个寄存器的清零的接在一起,以实现对整个记忆模块的清零,将8个寄存器的使能端接分别接到38线译码器的输出
18、端,将38译码器的输入端接到8进制计数器的输出端,通过改变计数器的输出值,从而改变译码器的输出值来控制8个寄存器的工作状态,8进制计数器的时钟端接到计数功能键,每按一次计数功能键计数器的值加一,再经过译码,从而实现对八个寄存器的控制,使8个寄存器的使能端依次有效,将8道时间数据记录下来。2.3 选择输出模块选择输出模块主要是一个8选1的选择器。(1)模块组成ELECT8_1)以及对它起控制作用的8进制计数器组成。8选一数据选择器由8个32位的数据输入端(D0.D7),一个地址输入端(AR2.0),以及一个32位的数据输出端组成。8进制计数器的端口同上。(2)选择输出模块的原理图如下图 选择输出
19、模块工作原理图(3)工作原理 8选1选择器的作用是用来将记忆模块记录的数据选择输出,根据地址输入端的地址,输出相应数据输入端的数据。控制电路主要是用来产生不同的地址信号,从而实现对个道数据的选择输出。8进制计数器的输出端接到选择器的地址输入端,时钟端接选择输出功能键。每当选择输出功能键按下后,计数器的输出数据加一,使选择器的地址发生改变,从而选择输出下一路数据。2.4 译码模块(1)模块的组成 模块有8个译码器(HC4511)组成,它由数据输入端(DIN6.0),数据输出端(DOUT3.0)组成。(2)模块原理图如下译码模块原理图(3)工作原理 译码模块的主要作用时间数据译码成共阴极7端显示数
20、码的字型码,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)工作原理: 首先由计数模块,记录来自时钟产生电路产生的标准时钟脉冲,再由记忆模块,分别记录
21、由计数模块产生的时间数字信号,再由选择输出模块将记忆模块中的各路时间数字信号分别送到译码模块,从而在数码管上显示出个路时间信号。(3)数字秒表的使用方法 首先由弄清楚各功能按键的作用,以及在使用时个按键的使用先后顺序。 功能键的作用: 计数键:这个键的主要作用是每当它被按下一次,就代表已经将当前时间数据信号记录下来了,当按下8次后就将8道数据全部记录了下来。选择输出键:这个键的作用是将记录下来的时间数据一次输出,当这个功能键被按下的时候,代表输出下一道时间数据,逐次按8次,可以将数字秒表记录下来的8道数据依次在数码管上显示出来。 清零键:这个键的作用是将计数器以及寄存器中的数据清零,在开始计数
22、前需要进行清零操作,只需按下清零键即可。 停止键:停止键的作用就是控制数字秒表的工作状态,按下停止键,计数器停止计数,再按一次停止键,计数器在原来计数的基础上继续计数。 数字秒表的使用方法: 在使用数字秒表时,首先将电源开关(SW)置为打开状态,在计数开始之前,应先按下清零键,将数字秒表清零,计每道数据时将计数键按下,计数完毕后,按下选择输出键,就可以将各道时间数据显示在数码管上了。3数字秒表的软件设计3.1 端口定义(1)计数模块端口定义CLK-时钟脉冲输入接口 CLR-清零输入端口 STOP-停止/开始控制输入端口 Y-数据输出端口(2)记忆模块端口定义 CLR-清零输入端口 D0至D7-
23、数据输入端口 Q0至Q7-数据输出端口 JISHU-计数输入端口(3)选择输出模块端口定义 D0至D7-数据输入端口 CLR-清零输入端口 SELECT1-选择输出控制输入端口 Y-数据输出端口(4)译码模块端口定义 DIN-数据输入端口 DOUT-数据输出端口(5)数字秒表端口定义 CLK-时钟脉冲输入接口 CLR-清零输入端口 JISHU-计数输入端口 SELECT1-选择输出控制输入端口 STOP-停止/开始控制输入端口3.2 数字秒表主程序(1)数字秒表主程序的VHDL程序见附录3。(2)数字秒表的程序流程图如下:(3)程序流程图的分析: 根据数字秒表的功能需要,在计数开始前,先清零,
24、开始计数,然后判断JISHU键是否按下,当按下的时候就将当前数据记录下来,再判断STOP键是否被按下,若按下,则停止计数,再判断SELECT1的状况,逐次输出被记录的数据,若没有按下,则继续计数。当JISHU键没有被按下,判断SELECT1的状况,若按下就输出下一道被记录的数据,若SELECT1没有被按下,则保持当前输出值不变。SZMB将数字秒表清零:CLR=1开始计数JISHU端是否为上升沿将当前时间记录在计数模块Select1端是否为上升沿输出下一道数据保持当前的输出数据不变是否按下STOP键NYNYN数字秒表程序流程图3.3 记数模块子程序(1)记数模块VHLD程序及模块子程序CNT6、
25、FANXIANGQI和CNT8的VHDL程序见附录3。(2)计数模块的程序流程图如下图:JSMKCLR=1?STOP是否被按下Y=0YY=Y+1Y=YNNY计数模块程序框图(3)程序流程图的分析 为了实现秒表的计数功能,在计数模块设置了CKR键和STOP键,CLR键的优先级高于STOP键,计数时先判断CLR键是否为1,如是则计数模块置零,计数开始,若不是,则判断STOP,若STOP没有按下则继续计数,若被按下,则计数器停止计数,保持原来记录的数据不变。3.4 记忆模块子程序(1)记忆模块VHDL程序及其子程序REG32、DECODER38、CNT8的VHDL程序见附录3。(2)记忆模块的程序流
26、程图如下图:JYMKCLR=1D0D7=0 ,i=0JISHU键是否按下i=i+1记忆模块程序流程图D0D7保持不变Qi=DiYNNY(3)程序流程图的分析 记忆模块设置了清零端,它的优先级别最高,当CLR=1时,记忆模块的输出全为0,同时i也置零,当CLR不等于0时,判断JISHU键是否被按下,就将第i道数据记录下来。同时i的值加一,然后再判断CLR是否为零,再判断JISHU是否再次被按下,这样就将下一路数据记录下了,循环进行此步骤,就可以将8到数据依次记录在记忆模块中了。3.4 选择输出模块子程序(1)选择输出模块的VHDL程序及它的子程序SLECT8_1和CNT8见附录2.选择输出模块的
27、程序流程图如下图:XZSCMKCLR=0Y=0,i=0SELETI是否被按下i=i+1Y=DiY=DiNYYN选择输出模块程序流程图(2)程序流程图的分析 选择输出模块的作用是将数字秒表记录下来的各路时间数据依次在数码管上输出。它设置了一个清零端CLR,只要CLR为0,选择输出模块的输出马上置零,i的值也置零。在CLR端不为0的前提下,判断SELRCE1是否被按下,若被按下,则i的值加一,再将Di的值赋个Y,再判断CLR及SELECT1的状态,将下一路数据选择输出,这样就可以讲数字秒表记录下来的各道数据依次在数码管上显示出来。4数字秒表的仿真与实验 本章将通过QUARTUS软件以及EDA实验箱
28、对设计进行硬件和软件仿真,通过仿真波形和EDA实验箱数码管显示出的波形来验证设计的正确性。4.1 数字秒表的QUARTUS软件仿真一、实验目的:验证计数模块的正确性二、实验所用仪器:电脑一台,QUARTUS软件三、建立波形文件进行波行仿真(一)、计数模块的波形仿真及分析 1、计数模块子程序CNT10、FANGXIANGQI和CNT6的仿真波形分别如下图:CNT10的仿真波形图T触发器的仿真波形图CNT6的仿真波形图波形分析:、从CNT10的仿真波形来看,当EN=1,CLR=0时,计数器正常计数,在计数已满的时候,进位端输出高电平,到CLR=1是,计数器的输出置零,当EA=0s是,计数器保持原有
29、的输出不变。故该计数器的功能符合设计要求。、从T触发器的波形来看,当清零端为零时,触发器输出为0,当清零端为1的时候,时钟脉冲上升沿来时,触发器的状态发生改变。故该触发器的功能符合设计要求。CNT6的波形分析同CNT10.2、计数模块的仿真波形图如下图:计数模块的仿真波形图波形分析:从计数模块的仿真波形来看,当CLR=0时,计数模块的输出为0,当CLR为1的时候,按下STOP键后计数器开始计数,再次按下后计数器停止计数。故计数模块的功能符合设计要求。(二)、记忆模块的波形仿真机分析 1、记忆模块子程序REG32、CNT8、DECODER38的仿真波形如下图所示:REG32的仿真波形图DECOD
30、ER38的仿真波形图CNT8的仿真波形图波形分析:、从REG32的波形来看,当EN=1时,将输出数据保存下来,当EN=0时寄存器保持原来的数据部变。故该寄存器的功能符合设计要求。、从DECODER38的仿真波形来看,当地址输入为不同地址时,输出的8为数据只有一位为1。故该译码器符合设计要求。、从CNT8的仿真波形来看,当CLR=1时,计数器清零,当CLR=0时,计数器正常工作。故该计数器符合设计要求。2、记忆模块的仿真波形如下:记忆模块的仿真波形图波形分析:当CLR为1时记忆模块的输出为0,当CLR不为0时,按下JISHU键,则依次记录各道输入数据。故该记忆模块符合设计要求。(三)、选择输出模
31、块的波形仿真及分析1、选择输出模块子程序SELECCT8_1的仿真波形如下图:SELECT8_1的仿真波形图波形分析:当地址输入端AR为不同的地址时,Y端分别输出D0至D7的数据,实现了选择输出的功能。注:选择输出模块子程序CNT8的程序与记忆模块的CNT8的程序一样,在此不赘叙。2、选择输出模块的仿真波形如下图:选择输出模块的仿真波形图波形分析:从选择输出模块的波形来看,当CLR为1时,选择输出模块输出为0,当CLR不为0时,当依次按下SELECT1键的时候,依次选择输出8道输入数据。(四)、译码模块的波形仿真1,译码模块子程序HC4511的仿真波形如下:CH511的仿真波形图波形分析:从C
32、H4511的波形来看,输出的各位数据,分别为输入数据的字形码。符合共阴极7端显示数码管译码的要求。故该译码器符合设计要求。2、译码模块的仿真波形图如下图:译码模块的仿真波行图波形分析:从译码模块的仿真波形图来看,8位输出分别输出的是DIN输入数据的字形码,故符合译码的要求。(五)、由计数模块和记忆模块连接成的HXMK的仿真波形如下,HXMK的VHDL程序见附录3。 HXMK的仿真波形图波形分析:从HXMK的波形来看,当CLR=1,是输出置零,当CLR不为0时,当JISHU键依次按下的时候,就将所记录的时间数据记录下了,该模块把计数模块和记忆模块连接在一起,从而实现记忆模块将计数模块的记录的数据
33、保存下来。(六)、由HXMK与选择输出模块连接在一起构成的DCMK的仿真波形图如下图,DCMK的VHDL程序见附录3。DCMK的仿真波形图波形分析:从DCMK的波形来看,当CLR=1后,模块的输出为0,计时开始,连续按下JISHU键,记录了8道数据,再按下STOP键停止计数,连续按下SELECT1键,输出了,前面记录的8道数据,该模块将HXMK及选择输出模块的功能结合在一起,实现了计数和选择输出的功能,故符合设计要求。(七)、由DCMK和YMMK组成的顶层模块SHUXIMIAOBIAO模块的仿真波形如下图,SHUZIMIAOBIAO的VHDL程序见附录3。波形分析:当CLR=1时,数字秒表清零
34、,开始计数,连续按下JISHU键,依次记录8道数据,然后按下停止键,停止计数,连续按下SELECT1键,就可以依次输出各道数据的字形码,从而在数码管上依次显示各道时间。数字秒表的顶层模块是由DCMK及YIMAMK组成,集合了这两个模块的功能,从而实现了数字秒表的功能4.2 EDA实验箱的硬件仿真一、实验目的:用硬件仿真验证数字秒表设计的正确性二、实验仪器:EDA试验箱,电脑一台,QUARTUS软件。三、EDA实验箱仿真的引脚锁定如下表:数字秒表功脚实验箱对应外围端口1K30对应引脚数字秒表功脚实验箱对应外围端口1K30对应引脚数字秒表功脚实验箱对应外围端口1K30对应引脚Y(0)A1118Y(
35、11)D3138Y(22)10C6Y(1)B1121Y(12)A4137Y(23)13D6Y(2)C1120Y(13)B4141SELECT144琴键1Y(3)D1128Y(14)C4140STOP46琴键2Y(4)A2122Y(15)D4143CLK59CLK3Y(5)B2131Y(16)A5142CLR47琴键3Y(6)C2130Y(17)B57Y(7)D2133Y(18)C5144Y(8)A3132Y(19)D59Y(9)B3136Y(20)A68Y(10)C3135Y(21)B61数字秒表的引脚锁定图总结本设计利用基于VHDL的DEA设计工具,采用大规模可编程逻辑器件的FPGA,通过设
36、计芯片来实现系统功能。用EDA技术设计数字系统,在每一层次上,都有描述、划分、综合、和验证四种类型的工作。把系统设计输入到EDA软件,可以用图形输入,硬件描述语言或者二者的混合输入。划分、综合、和验证采用EDA软件平台自动完成。其实是采用了模块化是设计思想,将整个设计化分为计数模块、记忆模块、选择输出模块和译码模块,首先将各个模块的功能通过硬件描述语言描述出来,用软件仿真波形验证其正确性。在此基础上将各个模块通过原件列化语句连接在一起,构成数字秒表电路系统,实现数字秒表的各个功能。在软件设计和软件仿真完成后,再通过EDA实验箱进行硬件仿真,再次验证系统的正确性。在硬件和软件仿真过程中,验证了时
37、钟秒表的各项功能的正确,满足计数指标,但是在设计中还存在一些不足,比如在计数的时候,数码管的输出时为0的,不能看见当时已总共计了多少时,其次在数据输出的时候要依据数据的大小来判断输出数据的道数等。希望通过进一步的学习能够解决以上出现的设计缺点,在此基础上丰富数字秒表的功能。参考文献1.潘松等.EDA技术实用教程M.科学出版社.2002年2.潘松等.VHDL教程M.西安电子科技大学出版社.20003.郑俭锋.VHDL设计及实现M.电子设计应用.20054.谭会生,张昌凡.DA技术及应用(第三版)M.西安电子科技大学出版社5.潘松等.VHDL实用教程M.成都:电子科技大学出版社.2000:369,
38、370,3716.康华光.电子技术基础数字部分(第五版).高等教育出版社.2006附录1 数字秒表电路图附录2 数字秒表明细表序号代 号名 称型号或规格数量备注1FPGAFPGAEP1K30144_312R0电阻10K43R1电阻4.3K14R2电阻5K15C1电容1uf16C2电容0.01uf17SW按键SW-PB4附录3 数字秒表源程序代码CNT10源程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS PORT (CLK: IN STD_LOGIC; CL
39、R: IN STD_LOGIC; ENA: IN STD_LOGIC; CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT: OUT STD_LOGIC);END CNT10;ARCHITECTURE ART OF CNT10 ISSIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK, CLR, ENA)BEGIN IF CLR=1 THEN CQI=0000; ELSIF CLKEVENT AND CLK=1 THEN IF ENA=0 THEN IF CQI=1001 THEN CQI
40、=0000;CARRY_OUT=1; ELSE CQI=CQI+1;CARRY_OUT=0; END IF; END IF; END IF;END PROCESS;CQ=CQI;END ART;CNT6源程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT6 IS PORT (CLK: IN STD_LOGIC; CLR: IN STD_LOGIC; ENA: IN STD_LOGIC; CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARR
41、Y_OUT: OUT STD_LOGIC);END CNT6;ARCHITECTURE ART OF CNT6 ISSIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK, CLR, ENA)BEGIN IF CLR=1 THEN CQI=0000; ELSIF CLKEVENT AND CLK=1 THEN IF ENA=0 THEN IF CQI=0101 THEN CQI=0000;CARRY_OUT=1; ELSE CQI=CQI+1;CARRY_OUT=0; END IF; END IF; END IF;END PROCES
42、S;CQ=CQI;END ART;CNT8源程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT8 IS PORT (CLK: IN STD_LOGIC; CLR: IN STD_LOGIC; CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END CNT8;ARCHITECTURE ART OF CNT8 ISSIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK, CLR)BEGIN IF CLR=1 THEN CQI=0000; ELSIF CLKEVENT AND CLK=1 THEN IF CQI=1000 THEN CQI=0000; ELSE CQI=CQI+1; END IF; END IF;END PROCESS;CQ=CQI;END ART;REG32的源程序library ieee;use ieee.std_logic_1164.all;use