开关控制数码管的VHDL程序的设计与实现.doc_第1页
开关控制数码管的VHDL程序的设计与实现.doc_第2页
开关控制数码管的VHDL程序的设计与实现.doc_第3页
开关控制数码管的VHDL程序的设计与实现.doc_第4页
开关控制数码管的VHDL程序的设计与实现.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

开关控制数码管的VHDL程序的设计与实现摘 要 本设计是利用所学过的电子线路课程知识,利用Quartus II软件,结合所学知识设计一个,具有使用开关控制数码管功能。文章分析了整个电路的工作原理,还说明了各程序模块的功能,并对最终结果就行了总结。通过此次设计加深了对课程的理解,掌握了一些基本逻辑器件的功能和使用方法。本设计通过软件设计电路,方便快捷,避免了硬件布线的繁琐,提高了效率。关键词 开关;数码管; VHDL程序Abstract This design is to use the learned electronic circuit course knowledge, use Quartus II software, combined with the design of a knowledge, which has the function of digital switch control tube. This paper analyzes the whole electric circuit principle of work, also that the apps modules of the system, and the final results will do summary. Through this design deepened to the understanding of the course and master the basic logic devices of some function and use. This design convenient and quick, avoid the hardware wiring trival, improve efficiency through the software design circuit.Keyword Switch;Digital tube;VHDL program1 前言VHDL是一种应用广泛的硬件描述语言,设计者可以通过它编写代码,通过模拟器仿真验证其功能,完成逻辑综合与逻辑优化,最后通过下载到相应的可编程逻辑器件(如FPGA)中来实现设计。本设计是利用Quartus II软件,采用VHDL语言设计一个用8个开关对应8个数字显示。按sw0到sw7可以显示1到8的数值,并在选择开关时发出声响。完成后下载到实验箱,实现设计功能。1.1 Quartus II简介Max+plus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Max+plus II 的更新支持。Quartus II 是Altera公司继Max+plus II之后开发的一种针对其公司生产的系列CPLD/PGFA器件的综合性开发软件,它的版本不断升级,从4.0版到10.0版,该软件有如下几个显著的特点:1、Quartus II 的优点该软件界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等特点,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。2、Quartus II对器件的支持Quartus II支持Altera公司的MAX 3000A系列、MAX 7000系列、MAX 9000系列、ACEX 1K系列、APEX 20K系列、APEX II系列、FLEX 6000系列、FLEX 10K系列,支持MAX7000/MAX3000等乘积项器件。支持MAX II CPLD系列、Cyclone系列、Cyclone II、Stratix II系列、Stratix GX系列等。支持IP核,包含了LPM/MegaFunction宏功能模块库,用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。3、Quartus II对第三方EDA工具的支持对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。12 VHDL简介在传统的硬件电路设计中,主要的设计文件是电路原理图,而采用HDL设计系统硬件电路时主要使用HDL编写源程序。所谓硬件描述语言HDL(HardwareDes cription Language),就是该语言可以描述硬件电路的功能,信号连接关系及定时关系。许多公司开发了自己专有的HDL,包括Zycad公司的ISP,Gateway DesignAutomation公司的Verilog以及Mentor Graphics公司的BLM。其中,Silicon Compiler公司的M及Gateway公司的Verilog以C语言为基础。UDLI在日本以标准HDL的形式出现。多年来设计者一直使用这些专用的HDL。1982年,各ASIC芯片厂商相继开发了用于各自目的的HDL。1987年底,IEEE确认美国国防部开发的VHDL为标准硬件描述语言(IEEE1076)。之后,各EDA公司研制的硬件电路设计工具逐渐向VHDL靠拢,VHDL在电子设计领域得到广泛的接受,1993年,IEEE对VHDL进行了修订,公布了新版本的VHDL(即IEEE10761993)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,在电子工程领域,从各公司的设计人员到各大学的教授、学生,都极其重视对其的学习研究,VHDL已成为事实上的通用硬件描述语言。有专家认为,在21世纪中,几乎全部的数字系统设计任务将由VHDL与Verilog语言承担,VHDL将是电子工程设计人员的必备知识。VHDL和其他语言相比,最大的区别在于设计方法上的差别。VHDL的主要优点有:(1)VHDL支持自顶至下的和基于库的设计方法,而且支持同步电路、异步电路、现场可编程门阵列器件FPGA(field programmable gate array)以及其他随机电路的设计。VHDL具有比其他硬件描述语言更强的行为描述能力,基于抽象的行为描述风格避开了具体的器件结构,使设计人员能从逻辑行为上描述和设计大规模电子系统。目前流行的EDA工具和VHDL综合器大都能实现行为描述到RTL(Register Transfer Level)描述的转换。(2)VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计再利用的功能,它支持系统的数学模型直到门级电路的描述,并且高层次的行为描述与低层次的门级电路描述、结构描述可以混合使用。这些特点符合IC设计的市场要求。VHDL支持系统级描述,这是它优于其他VHDL的最重要的特点。例如,Verilog语言是一种门级电路描述语言,其风格接近于电路原理图,设计者需要搞清楚具体的电路结构的细节,因此工作量通常较大。VHDL语言却最适合于描述电路的行为,即描述电路的功能,然后由综合器来生成符合要求的电路网络。设计者在熟悉基本单元电路的描述风格,积累一定的设计经验后,就会为用VHDL设计同等性能电路的高效率所鼓舞。(3)VHDL的硬件描述与具体的工艺技术和硬件结构无关,当门级或门级以上的描述通过仿真检验后,再利用相应的工具将设计映射成不同的工艺,因此电路的设计与工艺的改变是相互独立的。彼此的改变不会产生不良影响,并且VHDL硬件描述语言的实现目标器件的选择范围广泛,可使用各系列的CPLD、FPGA及各种门阵列器件。(4)VHDL具有类属描述语句和子程序调用等功能,对于己完成的设计源程序,可以通过修改类属参数表和函数的办法来改变设计的规模和结构。VHDL具有丰富的仿真语句和库函数,使得门电路级的功能仿真、检查成为可能,使设计者对整个工程设计的结构和功能的可行性做出决策。(5)VHDL作为一种IEEE的工业标准,使VHDL的设计成果便于重复利用和交流。这就更进一步推动了VHDL语言的推广及完善。另外,由于其语法严格,给阅读和使用带来极大的便利。2 硬件设计 本设计硬件平台采用武汉理工大学EDA实验箱,如下图所示。所用到的部分有LED数码管、开关、蜂鸣器等,具体连接如下。data_o0PIN_103key0PIN_49data_o1PIN_100key1PIN_50data_o2PIN_99 key2PIN_51data_o3PIN_98 key3PIN_52data_o4PIN_97 key4PIN_53data_o5PIN_96 key5PIN_54data_o6PIN_94 key6PIN_55data_o7PIN_91 key7PIN_56l0 PIN_83 clk PIN_16l1 PIN_84 bell PIN_78l2 PIN_85其中data_o0data_o7为每个LED数码管0-7的段选,key0key7为控制开关0-7,l0l3控制8个LED数码管,clk为时钟输入,bell为蜂鸣器3 软件设计3.1 设计方案本设计的VHDL程序主要有共有3个部分:分频、数码管扫描进程、显示控制进程。方案原理图如下。时钟输入显示控制数码管显示3.2 完整程序library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY key ISPORT(clk: INSTD_LOGIC; key : in std_logic_vector(7 downto 0); l: outSTD_LOGIC_VECTOR(2 downto 0); data_o : outSTD_LOGIC_VECTOR(7 downto 0); bell : outSTD_LOGIC:=0);END key;ARCHITECTURE an OF key ISsignal clk_1k : std_logic;signal p : integer range 0 to 7;beginprocess(clk)variable cnt1 : integer range 0 to 200;variable cnt2 : integer range 0 to 125;beginif clkevent and clk=1 thenif cnt1=200 thencnt1:=0;if cnt2=125 thencnt2:=0;clk_1k=not clk_1k;elsecnt2:=cnt2+1;end if;elsecnt1:=cnt1+1;end if;end if;end process;process(p,clk_1k) beginif clk_1k=1 and clk_1kevent thenif p=7 thenp=0;else p l l l l l l l lend case;end process;process(clk_1k) FUNCTION b_to_s7(bcd8421:INTEGER RANGE 0 TO 9) RETURN STD_LOGIC_VECTOR IS VARIABLE smg7: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN CASE bcd8421 IS WHEN 0 = smg7:=11111100; WHEN 1 = smg7:=01100000; WHEN 2 = smg7:=11011010; WHEN 3 = smg7:=11110010; WHEN 4 = smg7:=01100110; WHEN 5 = smg7:=10110110; WHEN 6 = smg7:=10111110; WHEN 7 = smg7:=11100000; WHEN 8 = smg7:=11111110; WHEN 9 = smg7:=11110110; END CASE; RETURN smg7; END b_to_s7;beginif clk_1k=1 thencase key iswhen 11111111=bell

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论