基于vhdl的音乐播放器的设计终稿.docx
- 文档编号:8213001
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:18
- 大小:58.26KB
基于vhdl的音乐播放器的设计终稿.docx
《基于vhdl的音乐播放器的设计终稿.docx》由会员分享,可在线阅读,更多相关《基于vhdl的音乐播放器的设计终稿.docx(18页珍藏版)》请在冰豆网上搜索。
基于vhdl的音乐播放器的设计终稿
摘要
在EDA开发工具QuartusII6.0平台上,采用VHDL语言层次化和模块化的设计方法,通过音符编码的设计思想,预先定制乐曲,实现动态显示乐曲演奏电路的设计,并在此基础上,基于同一原理,使此电路同时具备了简易电子琴的功能,使基于CPLD/FPGA芯片的乐曲播放数字电路得到了更好的优化,提高了设计的灵活性和可扩展性。
关键字:
EDA;QuartusII;VHDL;CPLD/FPGA;乐曲演奏电路;简易电子琴
ABSTRACT
BasedontheQuartusII-theEDAdevelopmenttool,thisdesignhasadoptedthemethodofclassificationandmodularizationofVHDLlevel.Throughtheconceptofnotecoding,thedesignofdynamicmusic-displayingcircuitisrealizedafterthemusicalcompositionhasbeenmadeinadvance.Onthebasisoftheaboveandthesameprinciple,thiselectriccircuithasthesamefunctionofasimpleelectronicorgan.ThedesignofCPLD/FPGAchip-basedmusic-displayingdigitalcircuitisgreatlyimproved,andtheflexibilityandexpansibilityofthedesignareimprovedaswell.
KeyWords:
EDA;QuartusII;VHDL;CPLD/FPGA;music-displayingcircuit;simpleelectronicorgan
目录
第1章绪论1
1.1研究背景1
1.2电子设计自动化发展史2
1.2.1EDA技术的涵义2
1.2.2EDA技术的发展史2
1.3EDA技术发展动态3
1.4研究思路及主要工作4
第2章可编程技术简介5
2.1可编程逻辑器件FPGA/CPLD5
2.2硬件描述语言VHDL7
2.3开发软件QUARTUSⅡ9
第3章系统设计13
3.1系统原理13
3.1.1音调的控制14
3.1.2音长的控制14
3.2系统结构15
3.3各模块分析与设计16
3.3.1定制《万水千山总是情》音符数据ROM16
3.3.2音符数据地址发生器模块 NOTETABS17
3.3.3预置数查表电路电路模块 TONETABA17
3.3.4发声频率产生模块 SPEAKERA17
3.3.5简易电子琴功能模块 ELECLOCK18
第4章系统程序实现与仿真分析19
4.1各部分程序实现19
4.1.1在QUARTUSII6.0下定制的LPM_ROM19
4.1.2乐曲硬件演奏电路顶层设计VHDL实现19
4.1.3音符数据地址发生器模块NOTETABS程序与说明21
4.1.4预置数查表电路模块TONETABA程序与说明22
4.1.5发声频率产生模块SPEAKERA程序与说明25
4.1.6简易电子琴功能模块ELECLOCK程序与说明27
4.2仿真结果分析29
4.2.1Speakera仿真29
4.2.2顶层文件仿真(包括电子琴部分)结果31
4.2.3顶层文件仿真(不包括电子琴)结果32
4.2.4简易电子琴单独仿真33
第5章硬件验证35
第六章 结束语39
参考文献39
致谢40
第1章绪论
1.1研究背景
随着电子技术的飞速发展,微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,使得表征半导体的工艺水平的线宽已经达到了60nm,并在不断地缩小,面在硅片单位面积上,集成了更多的晶体管。
集成电路设计正在不断地向超大规模,极低功耗和超高速的方向发展,电子产品的功能越来越强大,体积越来越小,功耗越来越低。
同时,利用可编程逻辑器件和EDA技术使设计方法发生了质的变化。
把以前“电路设计+硬件搭试+调试焊接”转化为“功能设计+软件模拟+仿真下载”。
利用EDA开发平台,采用可编程逻辑器件CPLD/FPGA使硬件的功能可通过编程来实现,这种新的基于芯片的设计方法能够使设计者有更多机会充分发挥创造性思维,实现多种复杂数字逻辑系统的功能,将原来由电路板设计完成的工作放到芯片的设计中进行,减少了连线和体积,提高了集成度,降低了干扰,大大减轻了电路设计和PCB设计的工作量和难度,增强了设计的灵活性,有效地提高了工作效率,增加了系统的可靠性和稳定性,提高了技术指标。
这些技术使得各种电子产品迅速的进入了我们的生活,我们处在一个被电子产品深度包围的时代,在一个普通老百姓的家里,衣食住行,每一个产品的诞生都离不开EDA技术,从彩色电视机,到智能冰箱,到全自动洗衣机,电饭煲,到微波炉,电磁炉,电子琴,再到个人随身用的手机,MP3音乐播放器都需要EDA技术提供支持。
本文应用VHDL硬件描述语言,设计一个乐曲硬件演奏电路,它能将一首预先设置存储好的乐曲自动播放出来,除此之外,也能够通过按键的方式输入音符,使其具备简易电子琴的功能。
通过此项研究,能够深切的体会利用EDA工具开发的优越性,在此基础上,对乐曲硬件演奏电路功能进行丰富,具体一定的社会实用性。
下面对乐曲演奏电路的设计与实现中涉及的EDA技术,以及EDA技术中常用的开发器件CPLD/FPGA可编程逻辑器件,开发语言VHDL以及开发软件QuartusⅡ作简单介绍。
1.2电子设计自动化发展史
1.2.1EDA技术的涵义
什么叫EDA技术?
EDA是ElectronicDesignAutomation(电子设计自动化)的缩写。
EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言HDL(HardwareDescriptionLanguage)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、优化和仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC芯片中,实现既定的电子电路设计功能。
1.2.2EDA技术的发展史
EDA技术伴随着计算机、集成电路和电子系统设计的发展,经历了计算机辅助设计(ComputerAssistDesign,CAD)、计算机辅助工程设计(ComputerAssistEngineeringDesign,CAED)和电子设计自动化(ElectronicDesignAutomation,EDA)三个发展阶段。
●20世纪70年代的计算机辅助设计(CAD)阶段;
早期的电子系统硬件设计采用的是分立元件,随着集成电路的出现和应用,硬件设计进入到发展的初级阶段。
初级阶段的硬件设计大量选用中小规模标准集成电路,人们将这些器件焊接在电路板上,做成初级电子系统,对电子系统的调试是在组装好的PCB(PrintedCircuitBoard)板上进行的,由于设计师对图形符号使用数量有限,传统的手工布图方法无法满足产品复杂性的要求,更不能满足工作效率的要求。
可编程逻辑技术及其器件问世,计算机作为一种工具在科研领域得到广泛应用。
而在后期,CAD的概念已见雏形,这一阶段人们开始利用计算机取代手工设计,辅助进行集成电路版图编辑、PCB布线等工作。
●20世纪80年代的计算机辅助工程设计(CAED)阶段;
20世纪80年代,集成电路进入了CMOS(互补场效应管)时代,复杂可编程逻辑器件进入商业应用,相应的辅助设计软件投入使用;而在80年代末,出现了FPGA;CAE和CAD技术的应用更为广泛,它们在PCB设计方面的原理图输入、自动布局布线及PCB分析,以及逻辑设计、仿真、综合和简化等方面担任了重要的角色。
特别是各种硬件描述语言的出现、应用和标准化方面的重大进步,为电子设计自动化必须解决的电路建模、标准文档及仿真测试奠定了基础。
●20世纪90年代电子系统设计自动化(EDA)阶段;
为了满足千差万别的系统用户提出的设计要求,最好的办法是由用户自己设计芯片,让他们把想设计的电路直接设计在自己的专用芯片上。
微电子技术的发展,特别是可编程逻辑器件的发展,使得微电子厂家可以为用户提供各种规模的可编程逻辑器件,使设计者通过设计芯片实现电子系统功能。
EDA工具的发展,又为设计师提供了全线EDA工具。
这个阶段发展起来的EDA工具,目的是在设计前期将设计师从事的许多高层次设计由工具来完成,如可以将用户要求转换为设计技术规范,有效的处理可用的设计资源与理想的设计目标之间的矛盾,按具体的硬件、软件和算法分解设计等。
由于电子技术和EDA工具的发展,设计师可以在不太长的时间内使用EDA工具,通过一些简单标准化的设计过程,利用微电子厂家提供的设计库来完成数万门ASIC和集成系统的设计与验证。
20世纪90年代,设计师逐步从使用硬件转向设计硬件,从单个电子产品开发转向系统级电子产品开发(即片上系统集成,SystemonAChip)。
因此,EDA工具是以系统机设计为核心,包括系统行为级描述与结构综合,系统仿真与测试验证,系统划分与指标分配,系统决策与文件生成等一整套的电子系统设计自动化工具。
这时的EDA工具不仅具有电子系统设计的能力,而且能提供独立于工艺和厂家的系统级设计能力,具有高级抽象的设计构思手段。
例如,提供方框图、状态图和流程图的编辑能力,具有适合层次描述和混合信号描述的硬件描述语言(如VHDL、AHDL或Verilog-HDL),同时含有各种工艺的标准元件库。
只有具备上述功能的EDA工具,才可能是电子设计工程师在不熟悉各种半导体工艺的情况下,完成电子系统的设计。
1.3EDA技术发展动态
未来的EDA技术将向广度和深度两个方向发展,EDA将会超越电子设计的范畴进入其他领域,随着基于EDA的SOC(单片系统)设计技术的发展,软硬核功能库的建立,以及基于VHDL所谓自顶向下设计理念的确立,未来的电子系统的设计与规划将不再是电子工程师们的专利。
有专家认为,21世纪将是EDA技术快速发展的时期,并且EDA技术将是对21世纪产生重大影响的十大技术之一。
1.4研究思路及主要工作
本文按照EDA开发流程,采用VHDL硬件描述语言开发,将乐曲硬件演奏电路设计进行模块化分解,层次化设计,分成几个单独的结构体,每个结构体实现部分功能,最后,经顶层文件将各单独结构体进行综合,实现乐曲硬件演奏。
主要工作:
根据硬件演奏电路的功能进行全局分析,采用自上至下的设计方法,从系统总体要求出发,逐步将设计内容细化,最后完成系统结构的整体设计。
将功能分成两部分,功能一:
实现预先设置乐曲的播放功能;功能二:
实现乐曲按键输入,实现简易电子琴功能。
实现功能一乐曲播放,需要完成以下设计:
①.预置乐曲,本文选取了《万水千山总是情》的一段作预置,作预置时,需要将乐曲音符转换成相应的代码,通过计算逐一将音符转换成代码,通过EDA开发平台quartusii6.0进行乐曲定制;
②.为了提供乐曲发音所需要的发音频率,编写数控分频器程序,对单一输入高频,进行预置数分频,生成每个音符发音的相应频率;
③.为了给分频提供预置数,需要计算分频预置数;
④.对每部分结构单元逐一进行编译,生成相应的元器件符号,并对独立结构单元功能进行仿真;
实现功能二按键输入简易电子琴,需要完成以下设计;
①.同样利用数控分频原理,通过公式预先计算分频预置数;
②.编写简易电子琴源程序VHDL文件;
启动quartusii6.0全程编译,生成具体输入,输出端口的图形文件。
启动全程功能仿真,生成仿真波形文件。
生成下载文件,在EPM7128实验开发板上利用Altera公司的EPM7128—SLC84—10芯片进行功能验证。
第2章可编程技术简介
2.1可编程逻辑器件FPGA/CPLD
在数字化道路上,我国电子设计技术的发展经历了并将继续经历很多重大的变革与飞跃。
从应用SSI通用数字电路芯片构成电路系统,到广泛应用MCU(微控制器或单片机),在电子系统设计上发生了一个具有里程碑意义的飞跃,这一飞跃不但克服了纯SSI数字电路系统许多不可逾越的困难,同时也为电子设计技术的应用开拓了更广阔的前景,使得电子系统的智能化水平在广度和深度上产生了质的飞跃。
MCU的广泛应用并没有抛弃SSI的应用,而是为它们在电子系统中找到了更合理的地位。
随着社会经济发展的延伸,电子设计技术的应用为我们提出了许多全新的课题和更高的要求,因此也拓宽了更大的应用空间。
不言而喻,我国的电子设计技术发展到今天,又将面临一次更大意义上的突破。
从某种意义上来说,这种突破的实现是历史抉择性的,而非技术性的。
即CPLD/FPGA在EDA中的广泛应用。
可编程逻辑器件(简称PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。
FPGA和CPLD分别是现场可编程门阵列和复杂可编程逻辑器件的简称,现在,FPGA和CPLD器件的应用已十分广泛,它们将随着EDA技术的发展而成为电子设计领域的重要角色。
从本质上说,新的电子系统运转的物理机制又将回到原来的纯数字电路结构上,但却是一次更高层次的循环。
它在更高层次上容纳了过去数字技术的优秀部分,对MCU系统将是一种扬弃,但在电子技术的设计操作和系统构成的整体上却发生了质的飞跃。
如果说MCU在逻辑的实现上是无限的话,那么CPLD/FPGA不但包括了MCU这一特点,而且还可触及硅片电路线度的物理极限,并兼有串并行方式、高速、高可靠性以及宽口径实用性等诸多方面的特定。
不但如此,随着EDA技术的发展和CPLD/FPGA在深亚微米级领域的进军,它们与MCU、MPU、DSP、A/D、RAM和ROM等独立器件间的物理与功能界限将日益模糊。
特别是软/硬IP芯核产业的迅猛发展,嵌入式通用与标准FPGA器件呼之欲出,片上系统(SOC)已近在咫尺。
CPLD/FPGA其不可替代的地位及其伴随而来的极具知识经济特征的IP核产业的崛起越来越受到业内人士的密切关注。
国际上生产FPGA/CPLD的主流公司,并且在国内占有市场份额较大的主要是Xilinx,Altera,Lattice三家公司。
Xilinx公司的FPGA器件有XC2000,XC3000,XC4000,XC4000E,XC4000XLA,XC5200系列等,可用门数为1200~18000;Altera公司的CPLD器件有FLEX6000,FLEX8000,FLEX10K,FLEX10KE系列等,提供门数为5000~25000;Lattice公司的ISP-PLD器件有ispLSI1000,ispLSI2000,ispLSI3000,ispLSI6000系列等,集成度可多达25000个PLD等效门。
FPGA在结构上主要分为三个部分,即可编程逻辑单元,可编程输入/输出单元和可编程连线三个部分。
CPLD在结构上主要包括三个部分,即可编程逻辑宏单元,可编程输入/输出单元和可编程内部连线。
高集成度、高速度和高可靠性是FPGA/CPLD最明显的特点,其时钟延时可小至ns级,结合其并行工作方式,在超高速应用领域和实时测控方面有着非常广阔的应用前景。
在高可靠应用领域,如果设计得当,将不会存在类似于MCU的复位不可靠和PC可能跑飞等问题。
FPGA/CPLD的高可靠性还表现在几乎可将整个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽。
由于FPGA/CPLD的集成规模非常大,可利用先进的EDA工具进行电子系统设计和产品开发。
由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用器件的硬件结构没有关系,因而设计开发成功的各类逻辑功能块软件有很好的兼容性和可移植性。
它几乎可用于任何型号和规模的FPGA/CPLD中,从而使得产品设计效率大幅度提高。
可以在很短时间内完成十分复杂的系统设计,这正是产品快速进入市场最宝贵的特征。
美国IT公司认为,一个ASIC80%的功能可用于IP核等现成逻辑合成。
而未来大系统的FPGA/CPLD设计仅仅是各类再应用逻辑与IP核(Core)的拼装,其设计周期将更短。
与ASIC设计相比,FPGA/CPLD显著的优势是开发周期短、投资风险小、产品上市速度快、市场适应能力强和硬件升级回旋余地大,而且当产品定型和产量扩大后,可将在生产中达到充分检验的VHDL设计迅速实现ASIC投产。
对于一个开发项目,究竟是选择FPGA还是选择CPLD呢?
主要看开发项目本身的需要。
对于普通规模,且产量不是很大的产品项目,通常使用CPLD比较好。
对于大规模的逻辑设计ASIC设计,或单片系统设计,则多采用FPGA。
另外,FPGA掉电后将丢失原有的逻辑信息,所以在实用中需要为FPGA芯片配置一个专用ROM。
我们深刻体会到,CPLD/FPGA的学习与应用已不仅仅是一种单纯的基于某种特定器件的应用开发过程,而是一种极富挑战性和创造性的开拓性活动。
它打破了软硬件之间最后的屏障,使软硬件工程师们有了真正的共同语言,它使目前一切仍处于计算机辅助性设计和规划的纯软件活动变成了实实在在的设计和实体。
在1997年全国大学生电子设计竞赛组委会专家组的一次会议上,一位专家指出:
我国的单片机时代已经结束,未来的电子设计将是EDA的时代。
这是极具深刻洞察力的明世之言。
2.2硬件描述语言VHDL
VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage)是非常高速集成电路硬件描述语言,是可以描述硬件电路的功能、信号连接关系及定时关系的语言。
它能比电路原理图更有效地表示硬件电路的特性。
使用VHDL语言,可以就系统的总体要求出发,自上至下地将设计内容细化,最后完成系统硬件的整体设计。
VHDL语言作为IEEE标准的硬件描述语言和EDA的重要组成部分,经过十几年的发展、应用和完善,以其强大的系统描述能力、规范的程序设计结构、灵活的语句表达风格和层次的仿真测试手段,受到业界的普遍认同和广泛的接受,从数十种国际流行的硬件描述语言中脱颖而出,成为现代EDA领域的首选硬件设计计算机语言,而且目前流行的EDA工具软件全部支持VHDL。
除了作为电子系统设计的主选硬件描述语言外,VHDL在EDA领域的仿真测试、学术交流、电子设计的存档、程序模块的移植、ASIC设计源程序的交付、IP核(IntelligdencePropertyCore)的应用等方面担任着不可或缺的角色。
目前,它还不能应用于模拟电路的设计,但已有人投入研究。
VHDL程序结构包括:
实体(Entity)、结构体(Architecture)、配置(Configuration)、包集合(Package)及库(Library)。
其中,实体是一个VHDL程序的基本单元,由实体说明和结构体两部分组成:
实体说明用于描述设计系统的外部接口信号;结构体用于描述系统的行为、系统数据的流程或系统组织结构形式。
配置用语从库中选取所需的单元来组成系统设计的不同规格的不同版本,使被设计系统的功能发生变化。
包集合存放各设计模块能共享的数据类型、常数、子程序等。
库用于存放已编译的实体、构造体、包集合及配置:
一种是用户自己开发的工程软件,另一种是制造商提供的库。
VHDL语言的主要特点是:
①功能强大,灵活性高:
VHDL语言是一种功能强大的语言结构,可用简洁明确的代码来进行复杂控制逻辑的设计。
同时VHDL语言还支持层次化的设计,支持设计库和可重复使用的元件生成。
目前,VHDL语言已成为一种设计、仿真、综合的标准硬件描述语言。
②器件无关性:
VHDL语言允许设计者在生成一个设计时不需要首先选择一个具体的器件。
对于同一个设计描述,可以采用多种不同器件结构来实现其功能。
因此设计描述阶段,可以集中精力从事设计构思。
当设计、仿真通过后,指定具体的器件综合、适配即可。
③可移植性:
VHDL语言是一种标准的语言,故采用VHDL进行的设计可以被不同的EDA工具所支持。
从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。
在一个EDA工具中采用的技术技巧,在其它工具中同样可以采用。
④自顶向下的设计方法:
传统的设计方法是,自底向上的设计或平坦式设计。
自底向上的设计方法是先从底层模块设计开始,逐渐由各个模块形成功能复杂的电路。
这种设计方法优点是很明显的,因为它是一种层次设计电路,一般电路的子模块都是按照结构或功能划分,因此这种电路层次清楚,结构明确,便于多人合作开发,同时设计文件易于存档,易于交流。
自底向上设计方法的缺点也很明显,往往由于整体设计思路不对而使的花费几个月的低层设计付之东流。
平坦式设计是整个电路只含有一个模块,电路的设计是平铺直叙的,没有结构和功能上的划分,因此不是层次电路的设计方式。
优点是小型电路设计时可以节省时间和精力,但随着电路复杂程度的增加,这种设计方式的缺点变的异常突出。
自顶向下的设计方法是将要设计的电路进行最顶层的描述(顶层建模),然后利用EDA软件进行顶层仿真,如果顶层设计的仿真结果满足要求,则可以继续将顶层划分的模块进行低一级的划分并仿真,这样一级一级设计最终将完成整个电路的设计。
自顶向下的设计方法与前面两种方法相比优点是很明显的。
⑤数据类型丰富:
作为硬件描述语言的一种VHDL语言的数据类型非常丰富,除了VHDL语言自身预定义的十种数据类型外,在VHDL语言程序设计中还可以由用户自定义数据类型。
特别是std_logic数据类型的使用,使得VHDL语言能最真实模拟电路中的复杂信号。
⑥建模方便:
由于VHDL语言中可综合的语句和用于仿真的语句齐备,行为描述能力强,因此VHDL语言特别适合信号建模。
目前VHDL的综合器能对复杂的算术描述进行综合(如:
QuartusⅡ2.0以上的版本都能对std_logic_vector类型的数据进行加、减、乘、除),因此对于复杂电路的建模VHDL语言无论仿真还是综合都是非常合适的描述语言。
⑦运行库和程序包丰富:
目前支持VHDL语言的程序包很丰富,大多以库的形式存放在特定的目录下,用户可随时调用。
如IEEE库收集了std_logic_1164、std_logic_arith、std_logic_unsigned等程序包。
在CPLD/FPGA综合时,还可以使用EDA软件商提供的各种库和程序包。
而且用户利用VHDL语言编写的各种成果都可以以库的形式存放,在后续的设计中可以继续使用。
⑧VHDL语言是一种硬件电路的建模描述语言,因此与普通的计算机语言有较大差别,普通计算机语言是CPU按照时钟的节拍,一条指令执行完后才能执行下一条指令,因此指令执行是有先后顺序的,也即是顺序执行,而每条指令的执行占用特定的时间。
而与VHDL语言描述结果相对应的是硬件电路,它遵循硬件电路的特点,语句的执行没有先后顺序,是并发的执行的;而且语句的执行不像普通软件那样每条指令占用一定的时间,只是遵循硬件电路自身的延迟时间。
2.3开发软件QUARTUSⅡ
Altera公司是世界三大CPLD/FPGA厂家之一,它的器件能达到最高的性能和集成度,不仅仅因为采用了先进的工艺和全新的逻辑结构,还在于它提供了现代化的设计工具之一QUARTUSⅡ可编程逻辑开发软件,该软件是MAX+plusⅡ的升级版本,Alt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 vhdl 音乐 播放 设计