




免费预览已结束,剩余37页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于FPGA多功能电子琴的设计(毕业论文)专业(系) 电气工程系 班 级 智能电子092 学生姓名 指导老师 二一三年十二月设计任务书一 、课题名称:基于FPGA的多功能电子琴设计二 、指导老师: 三 、设计内容与要求1、课题概述本课题拟采用FPGA器件设计一个电子琴,具有手动弹奏与自动演奏两种功能,其中手动弹奏时还支持录音回放。该设计具有集成度高、性能稳定可靠、保密性高、支持乐曲更新等特点,具有很好的趣味性和实用性,旨在提高学生的小型电子产品设计和开发能力及EDA技术的应用能力。2、设计内容与要求(1)设计内容:1)绘制电子琴的系统框图,确定设计方案;2)了解电路所需芯片的功能、参数和工作原理;3)采用protel完成电子琴的原理图绘制;4)采用VHDL语言和原理图输入完成软件设计;5)采用QuartusII软件完成编译、仿真、下载;6)完成电子琴的硬件设计与制作;7)调试并实现电子琴功能。(2)设计功能要求:设计一个电子琴,支持手动弹奏、自动演奏、弹奏回放等功能,具体要求如下:可通过8个音符键产生8个频率(还可扩展),对应8个音符(中音1,2,3,4,5,6,7和高音1),这些频率输出经放大后驱动喇叭,发出声音。当按下手动弹奏键时,按下音符键后就选通相应的频率输出,若同时打开录音开关,可将所奏音乐记录下来,然后在关掉录音开关后,按下回放键可实现演奏音乐回放;按下自动演奏键时,存储器里事先编写好的音符信息被依次取出,去选通各个频率输出,实现自动奏乐。毕业设计(论文)摘 要电子琴系统应用FPGA器件,在QUARTUS软件进行VHDL编程,实现乐曲的演奏功能。电子琴的基本原理是产生各个音符对应的频率,将内部频率分频后音频送到蜂鸣器发出音响。该电子琴包括手动弹奏、自动演奏和录音回放三种功能。文中叙述了电子琴的设计原理和分模块电路的实现方法,介绍各模块的设计及模块之间的连接组合方法,并在基于FPGA技术描述语言VHDL语言的在Altera公司cyclone系列的 EP1C3T100CN8芯片上编程下载,实现功能.电子琴系统的设计包含三个主模块电路,分别是键盘控制输入电路、FPGA开发板主板电路、扬声器和数码管显示电路。其中FPGA模块的设计是整个电子琴系统设计的核心内容。三个模块电路的有机组合完成了电子琴手动弹奏与自动演奏,录音回放的功能。本产品的特点是成本较低,性能稳定,精度高,有一定的开发价值。文中叙述了利用VHDL设计的电子琴演奏系统的设计思路和分模块实现的方法,详细介绍了各模块的设计方法。关键词: FPGA ; 电子琴 ; VHDL; QUARTUSAbstractAn electronic piano is designed based on FPGA, which consists of core parts that designed by using VHDL hardware description languages, as well as some periphery circuits. The musical performance can be done ,not only by keys but also with automatic type in the electronic piano. The article describes the design and implementation of the blocks, and describe VHDL language use FPGA technical at altera cyclone in the series of ep1c3t100n8 chip in programming. Electronic piano system design contains three main parts: keyboard control over the circuit, the circuit shown in the circuit. Fpga module of the design of system design the electronic organs are core contents of three modules. the organic combination of the circuit through the organ played with automatic hand, the function. this product is characterized by low cost, performance, high precision, a development.The design of quartus ii software the language. the main storage design vhdl module and pressed the button control points, the frequency of the principle of the audio frequency design, make notes in written form to ram the memory socket, with a hardware means to achieve this effect.Keyword: FPGA Electronic Piano VHDL Quartus II目 录摘 要IAbstract第1章 绪论11.1研究背景11.2 研究目的和意义2第2章 方案总体设计与论证32.1总体设计32.2 方案设计与选择32.2.1采用数字逻辑电路制作32.2.2采用现场可编程逻辑门阵列器件(FPGA)制作33.2.3 采用单片机制作42.3设计方案的确定4第3章 硬件电路设计53.1设计原理分析53.2电路设计53.3 FPGA概述63.3.1 FPGA的基本结构83.4 FPGA器件芯片介绍83.5原理图9第4章 软件电路设计104.1 VHDL语言介绍104.1.1 VHDL语言特点104.1.2 VHDL语言优势114.2 Quartus II软件介绍114.2.1 Quartus II软件设计流程124.3 程序模块设计134.3.1 顶层文件原理图144.3.2 按键扫描与模式控制模块154.3.3 录音模块164.3.4自动播放模块164.3.5三选一模块174.3.6音符转换为频率模块184.3.7分频模块194.3.8数码管显示模块19第5章 调试215.1 系统调试215.2调试步骤与现象21结 论23致 谢24参考文献25附录26附录A:26附录B27附录C27第1章 绪论1.1研究背景自电子产品诞生之日起,电子产品开发流程和方法就随着电子元器件的不断演进而变化,从最早的电子管器件到晶体管再到集成电路,再到软件设计电子电路。总的来说贯穿电子设计的统一思路是:使用印刷电路板上的分立、现成元件、连接器或 IC 创建物理平台实现所需要的功能。例如,在60年代,如果要设计一个收音机,工程师必须通过在PCB板上通过晶体管、电阻、电容、电感、电线、滤波器、二极管等电路搭建出一个物理平台,实现对 RF 信号的调谐、滤波、放大等,最后实现收音机的功能。集成电路出现以后,一些分立器件被集成到一块芯片上,但是总的设计思路没有变化,还是要在一个PCB板上通过无源器件和 IC 搭建出一个物理平台,实现信号的接收、处理和输出。但是,随着 FPGA 等可编程器件的诞生,设计思路正发生着微妙的变化随着更多功能从分立器件移到可编程领域,各种不同的设计流程交汇到了一起。现在,有效的电子设计是将板卡设计、可编程逻辑设计和软件开发融合在一起,未来,随着FPGA融合处理、存储于一体,板卡设计将融合进可编程逻辑设计中,电子产品设计将演变为可编程逻辑设计和嵌入式软件设计,那时,电子设计将更体现一种“软”设计,一种通过开发语言和工具实现的设计,而FPGA将成为这种“软”设计的载体,以 FPGA 形式存在的低成本、大规模可编程器件可以随时随地获得,这使设计者有可能将所有系统核心功能都转移到软设计中,并利用这种设计的优势,可完成各种电子设计,并且在资金投入可以大大减少。它的突出优点是:第一,仅占用FPGA中很少的资源,因此成本低,甚至不增加成本。这是因为某个产品选定某型号FPGA芯片,只用了其中一部分资源,还有相当一部分资源闲置没用;第二,更改乐曲非常方便;第三,可作为IP core实现设计重用。另外,近些年,在电子产品的设计方面,我们可以看到基于FPGA器件的电子产品已经越来越多了。我们乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。大多数的电子琴设计都有弹奏和播放功能,但能自动对弹奏的乐曲进行录音并可改变回放快慢可调的设计却很少。要实现录音和回放功能,就必须将弹奏的音符值在相应的写控制信号控制下存储到FPGA芯片内部的随机存储器(RAM)中,而在相应的读控制信号控制下,将RAM中存储的音符值读出来,送给相应的发声控制等模块。进入20 世纪90 年代以后,EDA 技术得到了飞速的发展,电子系统的设计方法发生了很大的变化,传统的设计方法正逐步退出历史舞台,而基于EDA 技术的可编程逻辑芯片设计成为电子系统设计的主流。本设计基于Quartus开发平台,采用VHDL语言在FPGA芯片上成功地实现了电子琴手动弹奏、自动演奏和动态录音与回放功能。1.2 研究目的和意义我们知道电子琴,以键盘形态出现的一种乐器。由音色、自动节奏,自动和弦三大部分组成。 电子琴的演奏有较大一部分是通过自动和弦伴奏来配合完成的,在音乐中和弦的连接推动了旋律地进行,不同的和声连接,形成了不同的音乐色彩。我们常见的电子琴是普及型的,或业余型的。事实上,还有专业型的电子琴:立式,上面两排手键盘,下面一排大号的双脚掌或和脚跟弹的键盘,还有一两个踏板和一个膝盖靠垫。家用的电子琴属中低端的“编曲键盘”。中高端的编曲键盘在现代的流行乐队里起着重要作用。而侧重于音乐制作的电子琴类成员叫做“电子合成器”。对于好的编曲键盘和电子合成器来说,人们可以自己编辑修改音色和节奏风格,甚至可以传到电脑里通过网络和别人分享这些音色节奏。而运用了电子技术做成的手感像钢琴那样的乐器叫“电钢琴”或“数码钢琴”。只是由于它目前比较贵,所以还不普及。中国有关企业正在努力地研制高性能低成本的电子琴。我们也知道电子琴因其操作简单,且能模拟各种传统乐器的音色,而深受消费者喜爱。设计人员可以选用芯片,再配以适当的外围电路,可从琴键上进行演奏也可自动进行乐曲演奏,可模拟传统乐器笛、风琴、小号、单簧、双簧等音色。 根据市场的需求,设计具有集成度高、性能稳定可靠、保密性高、支持乐曲更新的多功能电子琴,具有很好的趣味性和实用性,从目前现在的电子产品要求生产低成本化的要求,市场的大多电子琴很难具备支持乐曲更新的特点,我们发现这个可以具有很大的市场,而且现在的学生以及一些音乐爱好者对电子琴有种偏爱。但是国内外的电子琴要么是很好的价格太贵,让很多人望“琴”心叹,另外电子琴也可用于孩童的学前音乐教育,但是电子琴行业找不到一个标杆,因此对于电子琴爱好者以及需求者来说研究一种可行的电子琴是我们的目的。其意义是在于让电子琴爱好者们能如愿以偿的追求自己喜欢的东西,并让产品的成本最低化,及服务大众,也让公司受益。第2章 方案总体设计与论证2.1总体设计 根据课题的要求,电子琴的设计方法种类繁多,所需核心芯片不一,有LDQ852集成块、有单片机、FPGA等,但各种设计方法的实现方式及过程各有不同。其实本质上还是输入电路,配合主要模块电路,驱动扬声器发声电路。2.2 方案设计与选择本课题设计选择三种方案经行选择:第一种是采用数字逻辑电路;第二种是采用现场可编程逻辑器件设计;第三种是采用单片机原理设计来实现。那么下面我将方案的设计论证。2.2.1采用数字逻辑电路制作采用数字逻辑电路制作,用IC 拼凑焊接实现,这种电路很直观,简单方便。但应用数字逻辑电路制作的话,使用的器件较多,连接复杂,体积大,功耗大。电路中焊点和线路较多会,使成品的稳定度和精度大大降低,另外采用数字逻辑不能达到音频输出的效果。2.2.2采用现场可编程逻辑器件(FPGA)制作显示值采用现场可编程逻辑器件(FPGA)制作电子琴,利用EDA软件中的VHDL硬件描述语言编程进行控制,然后烧制实现.采用FPGA来设计的原理图如图2.4.1所示.它由控制输入电路、FPGA、显示电路和扬声器电路组成。控制信号显示电路FPGA控制输入电路脉冲扬声电路图2.2.2 采用FPGA设计的电子琴原理方框图 控制输入电路主要是为用户设计的,起到一个输入控制的作用。FPGA是现场可编程逻辑门阵列,也是本设计方案的核心内容,它是实现电子琴运作的主要控制模块.由设计人员把编好的VHDL程序烧制到现场可编程逻辑器件FPGA中,然后通过控制输入电路把乐谱输入到FPGA,产生不同的频率驱动扬声器,发出不同的乐谱.同时也把发出的乐谱符号通过显示器输出。3.2.3 采用单片机制作单片机设计的电子琴,现在已经达到很成熟的阶段了,它的应用也十分广泛. 采用单片机来实现电子琴,它的原理方框图与用FPGA来实现的原理方框图类似,如图3.2.3所示。显示电路控制输入电路MCU(单片机)扬声器电路图3.2.3采用单片机实现电子琴的原理方框图 图2.2.2和图2.2.3的基本原理都相同,唯一不同的是一个是它们选用的主要控制部件不同,一个用FPGA来制作,一个是用单片机来实现.采用单片机来实现电子琴,主要的核心是单片机的设计,而FPGA器件主要是VHDL语言以及各模块的设计。2.3设计方案的确定对于电子琴的设计,三个方案均可以实现。但是,对于多功能电子琴的话第一个方案中采用的是数字逻辑电路来制作,该电路硬件所需的器材多,体积庞大,比较复杂,而且精度和稳定度都不是很高。此方案不可取。第二个方案采用的是现场可编程逻辑门阵列器件来实现, 它的优点是所有电路集成在一块芯片上,此方案所需的外围电路简单,这样它的体积就减少了,同时还提高了系统的稳定度。还可以用编程软件Quartus II经行进行仿真和调试等。设计人员可以充分利用VHDL硬件描述语言很方便的编程,提高开发效率,缩短研发周期,降低研发成本;而且易于进行功能的扩展,实现方法灵活,调试方便,修改容易。第三个方案也有它的优点,但同时也存在缺点.它对设计者的要求比较高,设计者对软硬件必须十分熟悉.和方案二来比它的实验仿真没有方案二简单直观,调试也有一定的难度.在外界环境相同的条件下,方案三设计出来的产品精度和稳定度要比方案二稍微差一些.因此,综合考虑,基于多功能电子琴的设计我们选择方案二来实现。第3章 硬件电路设计3.1设计原理分析根据电子琴系统的三大功能:支持手动弹奏、自动演奏、弹奏回放可将其分成音频转换模块,键盘扫描和模式控制模块和存储器模块三部分,加显示模块配合音符的显示及功能模式选择的显示,其中存储器模块包括自动播放模块和录音回放模块。功能的实现,其工作原理是这样的:我们知道,手动弹奏最根本的目的是将按键的信号在FPGA器件中选择相应的乐曲频率,然后输出发声。也就是说我们设计的时候需要想到的是组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,问题是如何来获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果,另外设计人员还需将原本设计好的乐曲存储在FPGA器件中,当按键选择时能自动把音乐播放出来。3.2电路设计本设计主要是实现通过按8个不同的琴键,模拟电子琴发音。那么就通过可编程逻辑门阵列器件(FPGA)和VHDL硬件描述引言来实现电子琴的设计。FPGA8按键输入EPCS1AS接口数码管显示蜂鸣器电源图3.2 电子琴硬件框图设计的主体是按键控制(扫描)模块电路,FPGA主板电路和显示模块电路。对输入的频率进行分频,得到各个音阶相对应的频率作为输出并具有录音的功能。再在原设计的基础上,增加一个乐曲存储模块,代替了键盘输入,产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。电子琴的硬件框图如上图3.2所示.3.3 FPGA概述FPGA 是英文 Field Programmable Gate Array 的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。它是当今数字系统设计的主要硬件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。在修改和升级时,不需额外地改变PCB电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本,因此获得了广大硬件工程师的青睐。 FPGA它采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA 的可编程实际上是改变了 CLB 和 IOB 的触发器状态,这样,可以实现多次重复的编程由于 FPGA 需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流 FPGA 都采用了基于 SRAM 工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。通过烧写文件改变查找表内容的方法来实现对 FPGA 的重复配置。 根据数字电路的基本知识可以知道,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在2n种结果。所以如果事先将相应的结果存放于一个存贮单元,就相当于实现了与非门电路的功能。FPGA的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。查找表 (Look-Up-Table) 简称为 LUT,LUT 本质上就是一个 RAM。目前FPGA中多使用 4 输入的 LUT,所以每一个LUT可以看成一个有4位地址线的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。从表中可以看到,LUT 具有和逻辑电路相同的功能。实际上,LUT 具有更快的执行速度和更大的规模。 由于基于LUT的FPGA具有很高的集成度,其器件密度从数万门到数千万门不等,可以完成极其复杂的时序与逻辑组合逻辑电路功能,所以适用于高速、高密度的高端数字逻辑电路设计领域。其组成部分主要有可编程输入,输出单元、基本可编程逻辑单元、内嵌 SRAM、丰富的布线资源、底层嵌入功能单元、内嵌专用单元等,主要设计和生产厂家有赛灵思、Altera、Lattice、Actel、Atmel 和 QuickLogic 等公司,其中最大的是美国赛灵思公司,占有可编程市场 50% 以上的市场份额,比其他所有竞争对手市场份额的总和还多。FPGA器件集成度高、体积小,具有通过用户编程实现专门应用的功能,特别适合于产品的样机开发和小批量生产。现场可编程门阵列FPGA是一种新型的高密度PLD,采用CMOSSRAM工艺制作,与门阵列PLD不同,其内部由许多独立的可编程逻辑模块(CLB)组成(如下图3.3所示),逻辑块之间可以灵活地相互连接。 图3.3 FPGA内部芯片的结构图现场可编程门阵列FGPA的结构一般分为三部分:可编程逻辑块、可编程I/O模块和可编程内部连线。CLB的功能很强,不仅能够实现逻辑函数,还可以配置成RAM等复杂的形式,配置数据存放在片内的SRAM或者熔丝图上。基于SRAM的FPGA器件工作前需要从芯片外部加载配置数据,配置后的数据可以存储在片外的EPROM上或者计算机上。现场可编程门阵列FPGA允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直接达到预期的结果。使用FPGA器件可以大大缩短系统的研制周期,减少资金的投入。更吸引人的是,采用FPGA器件可以将原来的电路板级产品集成为芯片级产品,从而降低了功耗,提高了可靠性,同时还可以很方便地对设计进行在线修改。因此,FPGA的出现受到了电子设计师的普遍欢迎,发展十分迅速。3.3.1 FPGA的基本结构FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC电路的中试样片。3)FPGA内部有丰富的触发器和IO引脚。4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。3.4 FPGA器件芯片介绍我们选择是Altera公司Cyclone系列中的EP1C3T100C8芯片。1、EP1C3T100C8芯片具有如下特点:(1)可编程体系结构,实现低成本设计; (2)嵌入式存储器资源支持多种存储器应用和数字信号处理(DSP)实现;(3)专用外部存储器接口电路,支持与DDR FCRAM和SDRAM器件以及SDR SDRAM存储器的连接; (4)支持串行总线和网络接口以及多种通信协议;(5)片内和片外系统时序管理使用嵌入式PLL;(6)支持单端I/O标准和差分I/O技术,LVDS信号数据速率高达640Mbps; (7)处理功耗支持Nios II 系列嵌入式处理器 ;(8)采用新的串行配置器件的低成本配置方案。2、EP1C3T100C8具体参数见表3.4: 表3.4 FPGA 芯片EP1C3T100C8参数FeatureEP1C3T100C8LEs2,910M4K RAM blocks(128*36 bits)13M4K RAM Columns1LAB Columns24LAB Rows13Total RAM bits59,904PLLs1Maximum user I/O pins(1)104100-pin TOFP653.5原理图原理图见附录A。第4章 软件电路设计4.1 VHDL语言介绍VHDL全名Very-High-Speed Integrated Circuit HardwareDescription Language,翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。4.1.1 VHDL语言特点VHDL 具有如下特点:(1)功能强大、设计灵活VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。 (2)支持广泛、易于修改:由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。 (3)强大大的系统硬件描述能力:VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。 (4)独立于器件的设计、与工艺无关:设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。 (5)很强的移植能力:VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。 (6)易于共享和复用:VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。4.1.2 VHDL语言优势与其他硬件描述语言相比,VHDL具有以下优势:(1)VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 (2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。 (3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。 (4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。 (5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。4.2 Quartus II软件介绍QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。4.2.1 Quartus II软件设计流程设计输入编写程序编译编译仿真与定时分析系统测试修改设计图4.2.1 Quartus II软件设计流程图(1)设计输入:可以采用原理图输入、HDL语言描述、EDIF网表输入及波形输入等几种方式。(2)编译:先根据设计要求设定编译参数和编译策略,如器件的选择、逻辑综合方式的选择等。然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合和器件适配,并产生报告文件、延时信息文件及编程文件,供分析仿真和编程使用。(3)仿真:仿真包括功能仿真、时序仿真和定时分析,可以利用软件的仿真功能来验证设计项目的逻辑功能是否正确。(4)编程与验证:用经过仿真确认后的编程文件通过编程器(Programmer)将设计下载到实际芯片中,最后测试芯片在系统中的实际运行性能。在设计过程中,如果出现错误,则需重新回到设计输入阶段,改正错误或调整电路后重复上述过程。4.3 程序模块设计 VHDL采用的是自顶向下的设计方式,顶层模块由按键和模式选择模块,三选一模块,音頻转化模块和储存模块,显示模块五个模块主要模块组成,其中存储模块包括自动播放模块和录音模块。如图4.3.1所示是顶层设计原理图。各模块的程序详细见附录C。4.3.1 顶层文件原理图图4.3.1 顶层文件原理图4.3.2 按键扫描与模式控制模块1、按键扫描与模式控制模块,如图4.3.2所示。图4.3.2 按键扫描与模式控制模式(1)Clk引脚外接25MHZ时钟频率;(2)Keyin引脚外接8个按键(S1S8)。它实现的功能是:当只有S1按下时 YinFu=1,CON保持不变;当只有S2按下时 YinFu=2,CON保持不变;依次类推当只有S8按下时 YinFu=8,CON保持不变;(3)模式选择:当有S1与S2同时按下时 YinFu=0,CON=0(手动弹奏模式);第一个数码管显示为0;当有S1与S3同时按下时 YinFu=0,CON=1(录音模式);第一个数码管显示为1;当有S1与S4同时按下时 YinFu=0,CON=2(录音播放模式);第一个数码管显示为2;当有S1与S5同时按下时 YinFu=0,CON=3(自动播放模式)。第一个数码管显示为3。4.3.3 录音模块图4.3.3 录音模块软件框图 (1)CLK,clock接25MHZ时钟频率(2)录音模块实现功能如下:当INCON=0时(手动弹奏模式) address清零;当INCON=1时(录音模式) address 以1200,000/25,000,000s的速度自加;wren=1;保存data端的数据到对应地址;当INCON=2时(录音播放模式) address 清零同时以1200,000/25,000,000s的速度自加;wren=0;读取对应地址的数据于q端输出;当INCON=3时(录音模式) address清零。4.3.4自动播放模块自动播放模块如下图4.3.4所示:图4.3.4 自动播放模块软件框图(1)CLK接25MHZ时钟频率。(2)YINFU 接ROM输出端q端反馈。(3)ROM中存放自动播放的歌曲,其ROM.mif文件存放的歌曲如表4.3.4所示。(4)自动播放模块实现的功能有:当INCON=3且YINFU/=30时address以0.25s的速度自加;q端输出对应地址音符;当INCON=3且YINFU=30时address以1/5000s的速度自加;q端输出对应地址音符;当INCON/=3时 address清零。表4.3.4 ROM.mif文件中存放的歌曲:Addr0000000100100011010001010110011180000003516305553667248308686553255353055540366760664858888308656869999121264301212123012109728866686880993098981088999910103010963010998830810498655505112659108000120128(5)ROM 中的音符是根据歌曲童年编写过来的,歌曲见附录B所示。4.3.5三选一模块(1)三选一模块是选择功能的执行模式,也就是通过按键控制模块连接于三选一模块。(2)实现的功能有:当INCON=0时(手动弹奏模式) YINFU=YINFU1;当INCON=1时(录音模式) YINFU=YINFU1;当INCON=2时(录音播放模式) YINFU=YINFU2;当INCON=3时(自动播放模式) YINFU=YINFU3;图4.3.5 三选一模块软件4.3.6音符转换为频率模块 图4.3.6 音符转换为频率模块此模块用于将音符转换成与音符对应的频率值输出。如:输入为低音1,则输出值为131。(131是频率的四舍五入值)。详细音频频率情况见下表4-3-6。表4-3-6 音符频率对照表音调CDEFGAB唱名1234567低音131147165175196221248中音262294330350393441496高音525589661700786882990根据组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的2个基本要素,首先让我们来了解音符与频率的关系。乐曲的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音,每2个半音的频率比为。另外,音符A(简谱中的低音6)的频率为440 Hz,音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音1至高音1之间每个音符的频率,产生各音符所需的频率可用分频器实现,由于各音符对应的频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低,则由于分频系数过小, 四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但会增加分频器的分频级数。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取合适的时钟频率。实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会“走调”。4.3.7分频模块图4.3.7 分频模块分频模块用于产生8个音符对应当频率,因此需使用8个不同分频数的分频器。CLK2接25MHZ时钟脉冲时,输入端frequency的值即为输出端的频率脉冲值。表4.3.7给出了音符,频率的对应关系。分频器直接对25MHz晶振分频,可减少计算误差,得到较好的音质。表4.3.7 音符,频率及分频数对应关系音符C(中央)DEFGABC(高音)(简谱)12345671频率 (Hz)261.63293.66329.63349.23392.00440.00493.88523.25对25MHz晶振的分频数9555585132758437158663776568185062047778例如:中央C的频率是161.63Hz,如果先将25MHz频率降到1MHz,再进行1000000/261.63=3822(只取整数)次分频,得到的将是261.643Hz,而直接进行25000000/261.6395555次分频,则得到的是261.6302Hz,可见,频率更加准确,音响效果更好。通过实际测试,也证明了这一现象。4.3.8数码管显示模块此模块用来显示当前处于何种模式下以及播放的音符代码,第一个数码管显示输入端YANZHENG_A的值,第八个数码管用来显示YANZHENG_h的值。也就是说通过手动弹奏控制按键模块,键值输入到主模块后在数码管上显示,第一个数码管显示当前操作的功能模式,第八个显示当前的弹奏音符代码。 图4.3.8 数码管显示模块第5章 调试5.1 系统调试正确的调试系统才能使各模块电路正常工作,实现高稳定性的功能。本次课题的调试是用系统测试在我们买的FPGA实验版上进行,外加部分电路,使用其25MHz晶振,喇叭及一个LED数码显示器。分配引脚后将程序下载到目标FPGA芯片cyclone系列的EP1C3T100C8上,通过设置不同的工作模式,测试手动演奏,录音,录音回放和自动演奏各个功能,都能正常完成,且有较好音质。各模式之间的切换也正确无误。5.2调试步骤与现象调试步骤现象现象判断操作蜂鸣器左边数码管显示播放模式右边数码管显示当前播放音符值正常按下S8与S7无声00按下S1键发出中音 101按下S2键发出中音 202按下S3键发出中音 303按下S4键发出中音 404按下S5键发出中音 505按下S6键发出中音 606按下S7键发出中音 707按下S8键发出高音 10A按下S8与S6无声10按下S1键发出中音 111按下S2键发出中音 212按下S3键发出中音 313按下S4键发出中音 414按下S5键发出中音 51
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职业教育学生创新创业项目管理实施细则
- 农学中的乡村旅游业发展策略探讨
- 通过技术创新持续提升
- 2025年锻压设备制作安装行业研究报告及未来行业发展趋势预测
- 秋天是最佳园艺的季节
- 中国邮政2025信阳市秋招人力资源管理岗位面试模拟题及答案
- 互联网应用用户反馈规程策略制度
- 客房送餐服务规定方案
- 制定创意广告吸引消费者目光
- 消费者反馈处理流程规定
- 2024年度海南省高校教师资格证之高等教育学题库与答案
- 9.4静电的防止与利用“教学评”一体化教学设计
- ASTM-D3359-(附著力测试标准)-中文版
- 2024年铝材购销的合同范本
- T-CACM 1560.1-2023 中医养生保健服务(非医疗)技术操作规范推拿
- 护理美学-第三章 护士审美修养
- 篮球教学活动设计方案
- 大学生生涯发展展示 (修改版)
- DB32T4062-2021城市轨道交通工程质量验收统一标准
- (正式版)JBT 14897-2024 起重磁铁安全技术规范
- 西方节日-英文介绍
评论
0/150
提交评论