版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于VHDL的自动打铃设计目录摘要(1)Abstract(2)绪论(3)第1章 基本概念简介(4)1.1 VHDL简介(4)1.2 FPGA/CPLD简介(4)1.3 Quartus II的简介(5)第2章 设计整体概述(6)2.1 设计方案(6)2.2 设计原理图(6)2.3 设计流程图(7)第3章 各模块设计分析(8)3.1 计数器模块(8)3.1.1 秒和分计数器模块(8)3.1.2 时计数器模块(10)3.2 计时校时模块(12)3.3 打铃功能模块(13)3.4 顶层设计与原理图(16)第4章 引脚设定与下载验证(19)4.1 引脚设定(19)4.2 下载验证(21)总结(22)参
2、考文献(23)致(24)附录 芯片引脚对照表(25)24 / 25摘要随着EDA 技术的发展和应用领域的扩大与深入,EDA 技术在电子信息、通信、自动控制与计算机应用领域的重要性日益突出。EDA 技术就是以计算机为工具,设计者在EDA软件平台上,对以硬件描述语言HDL(Hardware Description language)为系统逻辑描述手段完成的设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。本设计是基于VHDL语言的自动打铃系统。在论文中,介绍了基于VHDL语言自动打铃系统的思路,整个系统需包
3、含秒计时模块、分计时模块、时计时模块、校时模块、打铃模块。在QuartusII 开发环境中编译和仿真所设计的程序,并逐一调试验证程序的运行状况。仿真和验证的结果表明,该设计方法切实可行,该打铃系统可以实现调时定时打铃功能,具有一定的实际应用性。 关键字:EDA、VHDL、打铃、Quartus IIAbstractWith the developmentof EDA technology and the expansion of application, the function of EDA technology in the field of electronic information c
4、ommunication, automatic control and computer application, is becoming more and more important. EDA technology use computer as a tool. However, designers only need to use the hardware description language HDL to describe the system on the EDA software platform. Then computer automatically finishes pa
5、rtition, synthesis, optimization,simulation and other function until the electroniccircuitsystem achieves the stated performance.This design is based on the VHDL hardware description language to projecta system. I introduce ideas of the bell system in this design. All of the design includes second t
6、imer module, minute timer module, hour timer module, module to adjust time and module to ring the bell according to the require of design.I complete the description of different modules with VHDL language in the Quartus II development environment, and debug one by one to check the operational status
7、 of the verification process. Simulation results show that the design method is feasible, and the bell system can be put into practical applications.Keywords: EDA, VHDL, rang the bell, the Quartus II绪论随着EDA 技术的发展和应用领域的扩大与深入,EDA 技术在电子信息、通信、自动控制与计算机应用领域的重要性日益突出。本次毕业设计是基于VHDL的自动打铃系统,而自动打铃就是像现在的学校一样在规定的
8、时间段铃声响起,用以作为每节课的作休时间。而自动打铃系统可以像现在的闹钟功能类似,起到提醒的作用,从早上8点开始计时,每隔一个小时铃声响一次,每次铃声持续响30秒,一直到下午5点都是每隔一个小时响一次铃声,下午5点以后铃声即使一个小时计时到了铃声也不再响了。为了高效率的验证设计的结果另外还需要增加一个校时模块,可以用两个指示灯的亮、灭的状态来区分两个按键的工作状态。增加的两个按键,一个是调分按键,一个是调时按键。开始时按下按键K1时,此时指示灯LED1变亮,指示灯LED提示系统正处于调分的状态,想调至几分时直接按K2按键下N就是想要的N分。再次按K1键一下后,指示灯LED2处于常亮状态,即系统
9、处于调时状态,想要7点即按K2键7下即可。调完时和分的状态后再按K1键一下系统才会处于正常的计时状态,系统处于正常计时时LED1、LED2全都不亮。在整个设计中,首先先做一个顶层模块,以top命名,然后再将各个模块在顶层模块中做好后再生成各模块的元器件,最后在top模块中将各个元器件按功能要求连接好后连进行编译看,是能否通过。通过编译后再按照附录表查询对各个引脚进行设定,引脚设定完后再对顶层文件进行编译,通过编译后再进行波形仿真,如果时序仿真与功能仿真的波形都正确后再到试验箱上下载验证,验证铃声是否在规定时间响起。第1章 基本概念简介1.1 VHDL简介VHDL是Very High Speed
10、 Integrated Circuit Hardware Description Language的缩写,意思是超高速集成电路硬件描述语言。对于复杂的数字系统的设计,它有独特的作用。它的硬件描述能力强,能轻易的描述出硬件的结构和功能。这种语言的应用至少意味着两种重大的改变:电路的设计竟然可以通过文字描述的方式完成;电子电路可以当作文件一样来存储。随着现代技术的发展,这种语言的效益与作用日益明显,每年均能够以超过30%的速度快速成长。VHDL是美国电气和电子工程师协会制定的标准硬件描述语言(IEEE标准1076),它可用于数字电路与系统的描述、仿真和自动设计。另外VHDL作为IEEE标准的硬件描
11、述语言,经过十几年的发展、应用和完善,以其强大的系统描述能力,规的程序设计结构,灵活的语言表达风格和多层次的仿真测试手段,受到业界的普遍认同和推广,成为现代EDA领域的首选硬件设计语言,而且各大EDA公司推出的EDA工具软件全部支持VHDL。并且随着EDA技术和VHDL的广泛应用,各高等院校也纷纷开设了VHDL电路设计课程,且要求某些专业的本科生、研究生必须掌握用VHDL进行电路系统设计的方法。VHDL已经成为高等教育中电类专业知识结构的重要组成部分。学习者可以用EDA工具软件编辑VHDL文件,使用仿真工具仿真所设计的电路系统,并学会使用综合语句以与下载工具,最终达到能够独立设计硬件电路系统的
12、目的。1.2 FPGA/CPLD简介FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和部连线(Interconnect)三个部分
13、。FPGA的基本特点包括:首先它采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。其次,FPGA可做其它全定制或半定制ASIC电路的中试样片,FPGA部有丰富的触发器和IO引脚,而且FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。最重要的是FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。随着电子设计自动化(EDA)技术的发展,利用计算机辅助设计和用高密度可编程逻辑器件实现数字系统已经成为发展趋势。本次毕业设计就利用VHDL 语言的强大的电路描述和建模能力设计
14、基于FPGA的电子时钟,可以提高利用计算机辅助设计和用高密度可编程逻辑器件实现数字系统的能力。1.3 Quartus II的简介Quartus II 是Altera公司继Max+plus II之后开发的一种针对其公司生产的系列CPLD/PGFA器件的综合性开发软件,它的版本不断升级,从4.0版到10.0版, Quartus II 的优软件界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等特点,支持原理图、VHDL、VerilogHDL以与AHDL( Altera Hardwar
15、e Description Language)等多种设计输入形式。嵌自有的综合器以与仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以与Unix上使用,除了可以使用Tcl脚本完成设计流程外,还提供了完善的用户图形界面设计方式,具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera公司的MAX 3000A系列、MAX 7000系列、MAX 9000系列、ACEX 1K系列、APEX 20K系列、APEX II系列、FLEX 6000系列、FLEX 10K系列,支持MAX7000/MAX3000等乘积项器件,支持
16、MAX II CPLD系列、Cyclone系列、Cyclone II、Stratix II系列、Stratix GX系列等。还支持IP核,包含了LPM/MegaFunction宏功能模块库,用户可以充分利用成熟的模块,简化了设计的复杂性,加快了设计速度。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统。它还支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 此外Quartus II对第三方EDA工具的良好支持也使用户可以在设计流程的各个
17、阶段使用熟悉的第三方EDA工具。 Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台,该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络的编辑功能,而且提高了调试能力。第2章 设计整体概述2.1 设计方案自动打铃是一种现代提醒工具,有着广泛的应用。例如学校的上课铃声,每天在既定的时间响铃,就是
18、是自动打铃系统的具体应用。打铃系统设置从早上的8点开始计时打铃,每隔一个小时铃声持续响30秒,这样一直持续到下午的17点。17点以后再出现的打铃间隔时间,铃声也不会再响起,直到第二天的早晨重新开始从8点正常计时响铃。利用IF语句控制打铃的时间,在规定的时间到打设既定的打铃间隔时间时给出一个30秒的高电平脉冲,让铃声连续响起。此外还要增加一个校时模块,因为时钟都会存在计时误差,所以增加一个校时模块也是为了调整准确的时间,功能验证时也可以调至铃声响起的前一分钟,检测打铃功能是否正确。其具体实现如下:(1) 每隔一个小时打铃一次,但是不能让铃声一直响,给一个控制打铃时间的功能,让打铃响起30秒后停止
19、。即到打铃时间是会给出一个30秒的高电平脉冲。(2) 因为自动打铃系统不是24小时都在计时打铃,在晚上的时候会停止打铃功能。即设定打铃系统只在早上8点至下午17点的时间段在规定的时间响铃。其他时间自动打铃系统处于休眠状态。(3) 增加一个自动校时模块,可以进行校时,还可以使打铃模块尽快到铃声响起的前一分钟。(4) 显示模块是让时钟信号在实验箱上的八个数码管上显示,将打铃响起的时间显示在数码管上,调分时对应的LED1指示灯亮,按K2键可以在数码管上看到分在增加。同样调时时对应的LED2指示灯亮,按K2键可以让时增加。让计时模块重新回到正常计时,只要两个按键的指示灯不亮状态就可以正常计时,否则指示
20、灯亮计数器就不能正常计时,即秒到59时不会网分上进位。(5) 整个时钟系统中,秒、分是60进制计数器,由二进制数7位表示。而时是24进制计数器,仅需要5位二进制码就可以表示。2.2 设计原理图在整个系统设计中,应用到的模块有秒计时模块、分计时模块、时计时模块、校时模块和显示器模块。系统框图如图2.1所示:Clk 显示打铃模块Sec6.0Min6.0Hour6.0CLK Sec模块 CLKClk校时模块 minFen Shi hour Min模块 Hour模块 K1K2图2.1 系统框图2.3 设计流程图时计时秒计时分计时开始显示打铃模块K1、K2图2.2 自动打铃的设计流程图第3章 各模块设计
21、分析3.1 计数器模块计数器模块包括秒计数器模块、分计数模块、时计数模块以与功能按键的设计。给定固定频率的时钟信号,输入计数60秒的秒计数器模块电路,等待计数到60秒的瞬间,进位至60分的分计数器模块电路加1后,秒计数器电路同时清为零重新计时。分计数器模块电路与秒计数器模块电路功能类似,当分计时模块计时到60分的瞬间时计时模块电路加1,分计时模块清为零重新进行计时。时计时模块与秒、分计时模块类似,当来自分计时模块的进位达到24瞬间,时计数器模块清为零,再从零进行计时。这样秒、分、时计时模块依次进行计时完成24进制的计时功能。3.1.1 秒和分计数器模块秒计时模块和分计数器模块都为60进制的计数
22、器,其代码为:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second ISPORT(clk:IN STD_LOGIC;q1,q2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);c:OUT STD_LOGIC);END ENTITY second;ARCHITECTURE art OF second ISSIGNAL q11,q22:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk)BEGINIF clkEVENT A
23、ND clk=1 THEN q11=q11+1;IF q11=9 AND q22/=5 THEN q11=0000; q22=q22+1;END IF;IF q22=5 AND q11=9 THEN q22=0000; q11=0000; c=1;ELSE c=0;END IF;END IF;END PROCESS;q1=q11;q2=q22;END ARCHITECTURE art;秒和分计时模块编译完成后生成的秒的元器件为图3.1、3.2所示 图3.1 秒模块的元器件 图3.2 分计时模块的元器件给定输入信号进行波形仿真得到秒、分计时模块的波形仿真如图3.3图3.3 秒、分计数器模块的输出
24、仿真波形模块说明:由仿真波形图可以看出,当秒或分计时到59时,给C一个高电平脉冲,即分或时计时模块加1,秒或分计时模块清零后开始重新计时。3.1.2 时计数器模块时计数器模块为24进制的计数器,其代码为:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY hour ISPORT(clk:IN STD_LOGIC; q1,q2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY hour;ARCHITECTURE art OF hour ISSIGNAL
25、 q11,q22:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk)BEGINIF clkEVENT AND clk=1 THEN q11=q11+1;IF q11=9 THEN q11=0000; q22=q22+1;END IF;IF q22=2 AND q11=3 THEN q22=0000; q11=0000;END IF;END IF;END PROCESS;q1=q11;q2=q22;END ARCHITECTURE art;时计时模块编译通过后生成的时计时模块的元器件如图3.4所示图3.4时计时模块的元器件图时计时模块采用24进制的计时器
26、模式,输出仿真波形为图3.5:图3.5 时计时模块的仿真波形模块说明:由仿真波形图可以看出,当时计数到23时时计数器模块清零后,再重新开始从0时计时。3.2 计时校时模块计时校时模块的代码为:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164. ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jiaoshi ISPORT(sec,min:IN STD_LOGIC; -调时模块的输入信号 k1,k2:IN STD_LOGIC; -调时模块的控制,调时信号输入 fen,shi:OUT STD_LOGIC; -各计数器的输入时钟信号 led
27、1,led2:OUT STD_LOGIC); -工作模式显示灯的控制信号END ENTITY jiaoshi;ARCHITECTURE art OF jiaoshi ISSIGNAL a:STD_LOGIC_VECTOR(1 downto 0);BEGINPROCESS(k1,k2)BEGIN IF k1EVENT AND k1=1 THEN a=a+1; IF a=2 THEN afen=sec;shi=min; - 模式0正常计时 led1=0;led2fen=k2;shi=0; -模式1,分模块,调分 led1=1;led2fen=0;shi=k2; -模式2,时模块,调时 led1=0
28、;led2NULL;END CASE;END PROCESS;END ARCHITECTURE art;计时校时模块编译通过后,生成校时模块的元器件,计时校时模块的元器件图为图3.6:图3.6计时校时模块的元器件给定输入信号后校时模块的输出仿真波形如图3.7所示:图3.7计时校时模块的仿真波形模块说明:由仿真波形可以看出,K1键是控制调时调分按键,按一下K1键系统处于调分状态,并且LED1灯常亮即提示此时处于调分状态,再按K2键对分进行加时。若再次按K1键系统就会处于调时状态,此时LED2灯常亮。按K2键系统就会对时进行加时作用。等分别对系统进行调时、调分后要让系统处于正常计时状态,再次按K1
29、键使指示灯LED1、LED2都不亮的情况下系统才会正常计时。由仿真波形图可知,此时所调的时间为2:02分。3.3 打铃功能模块打铃功能模利用IF语句实现时间控制,在预设的铃声响起的时间给C一段连续的30秒的高电平,30秒的高电平控制是用IF语句判断秒计数器的计数实现的。打铃功能模块的代码为:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ring ISPORT(s1,s2,min1,min2,h1,h2:IN STD_LOGIC_VECTOR(3 DOWNTO 0); clk,clk
30、1:IN STD_LOGIC; c:OUT STD_LOGIC; q1,q2,q3,q4,q5,q6:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY ring;ARCHITECTURE art OF ring ISSIGNAL q11:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL q22:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL q33:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL q44:STD_LOGIC_VECTOR(7 DOWNTO 0);constant js:I
31、NTEGER:=29;BEGINq11=s2 & s1;q33=h2 & h1;q22=min2 & min1;q6=h2;q5=h1;q4=min2;q3=min1;q2=s2;q1=00000000 AND q1100110000) THEN c=00000000 AND q1100110000) THEN c=00000000 AND q1100110000) THEN c=00000000 AND q1100110000)THEN c=00000000 AND q1100110000)THEN c=00000000 AND q1100110000) THEN c=00000000 AN
32、D q1100110000) THEN c=00000000 AND q1100110000) THEN c=00000000 AND q1100110000)THEN c=00000000 AND q1100110000)THEN c=1; ELSE cpin,出现如图4.2。图4.2 引脚锁定窗口双击CLK栏的location,确定对应的引脚号,如图4.3。管脚锁定后需要重新编译,选择Processing - Start Compilation命令,进行编译。图4.3 引脚锁定4.2 下载验证把编程电缆一头接到计算机的并口,一头接到试验箱的J2接口上。选择Tool - Programmer
33、 命令,弹出如图窗口,在Mode表框中选择JTAG,并选中(打钩)下载文件右侧的第一个小方框。在Hardware Setup表框中选择ByteBlasterLPT1,如果显示“No Hardware”,单击Add Hardware按钮,添加ByteBlasterLPT1。单击Start按钮即进入对目标器件FPGA的配置下载。具体如图4.4所示:图4.4下载设置最后进行硬件验证,在试验箱上,按下模式选择键选择模式显示为6,把时钟clock0短路帽接在1Hz上,观察数码管8的输出。通过试验箱验证,本设计能实现自动打铃的功能。总结本设计表明,基于VHDL语言的自动打铃系统设计离不开先进的EDA工具的
34、支持。基于VHDL语言的结构化、层次化的设计方法是整个打铃系统的主要设计方法。为了实现自动打铃的设计要求,在整个设计包括了计时器模块、校时模块与显示打铃模块。分和秒计数器模块为60进制的计数器,时模块为24进制的计数器。计数器模块实现的是时钟计时的功能,会和时钟一样进行正常计时,频率为1Hz。计时器在秒计时到59秒时向分进位,然后清零后重新开始进行60进制的计数。同样的,分计数器在计时到59分时时计数器会自动的加1。然后分计数器清零重新开始分计时。而当时计数器计数到24时,整个计数器模块都会全部清零,重新进行计时。另外增加的校时模块式为了调节系统时间,当系统时间和实际时间产生较大的误差时,按在
35、校时模块的K1、K2键对系统的分和时进行调整。当系统处于调分或调时状态时,系统不会进行正常计时。整个设计是实现自动打铃功能,在预定的时间段规定的时间铃声响起响铃时间要在显示打铃模块对其进行控制,增加IF判断语句对铃声进行30秒控制。即在铃声该响起的时间连续给扬声器30秒的高电平,只要扬声器处于高电平期间,扬声器就会响起。经过实验箱下载验证后扬声器按预定的要求响起30秒,通过此次实验,我了解了EDA强大的硬件功能,通过学习VHDL语言,对系统的各个模块进行编写程序、调试、仿真,到运行。最后下载到实验箱后铃声响起。VHDL的强大应用功能在以后还需要进一步的去学习和掌握,自动打铃系统的设计只涉与到了EDA技术的一小部分,要想学得更多东西还要去深入的去挖掘。参考文献(1)云、侯传教、永浩.VHDL电路设计实用教程M.2009.第1版.机械工业(2)雪松、滕立中. VHDL入门与应用M.2000.第1版.人民邮电(3)世霞、谭耀麟.基于VHDL语言的微机接口电路设计M.2010.第1版.清华大学(4)侯伯亨、凯、顾新.VHDL硬件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024工厂租赁的协议书
- 2024年度分公司质量保障与售后服务协议3篇
- 2024年度农作物健康保护合作合同版B版
- 2024年专业咨询公司销售服务协议样本版B版
- 2024年度园林绿化工程车辆租赁合同3篇
- 2024年企业数字化转型升级合同
- 2024年制造业打磨工固定期限协议版B版
- 2024商用浴室改造项目承包协议
- 2024年工程领域劳务分包协议样本版B版
- 2024年度围墙施工及材料供应合同
- 五脏养生法课件
- 小学生科普小知识
- DB33∕1050-2016 城市建筑工程日照分析技术规程
- 道路、桥梁、隧道、地铁施工标准化手册(专业篇)
- 严式宽式国际音标与汉语拼音对照表
- 现在进行时练习题道附答案
- 水中石油类监测技术规定210147最终
- 淘宝物流红章证明模板
- 医脉通三级综合医院服务能力指南2016年版
- Canada_加拿大
- 初中英语定语从句专项训练
评论
0/150
提交评论