基于FPGA的音乐播放器设计(共23页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于FPGA的音乐播放器设计(共23页).doc》由会员分享,可在线阅读,更多相关《基于FPGA的音乐播放器设计(共23页).doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上目录专心-专注-专业第1章 绪论1.1 研究背景随着电子技术的飞速发展,微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,使得本征半导体的工艺水平的线宽已经达到了60nm,并在不断地缩小,面在硅片单位面积上,集成了更多的晶体管。集成电路设计正在不断地向超大规模,极低功耗和超高速的方向发展,电子产品的功能越来越强大,体积越来越小,功耗越来越低。顺应电子技术的发展趋势,可编程逻辑器件和EDA 技术使设计方法发生了质的变化。把以前“电路设计+硬件搭试+调试焊接”转化为“功能设计+软件模拟+仿真下载”。利用EDA 开发平台,采用可编程逻辑器件CPLDF
2、PGA 使硬件的功能可通过编程来实现,这种新的基于芯片的设计方法能够使设计者有更多机会充分发挥创造性思维,实现多种复杂数字逻辑系统的功能,将原来由电路板设计完成的工作放到芯片的设计中进行,减少了连线和体积,提高了集成度,降低了干扰,大大减轻了电路设计和PCB设计的工作量和难度,增强了设计的灵活性,有效地提高了工作效率,增加了系统的可靠性和稳定性,提高了技术指标。这些技术使得各种电子产品迅速的进入了我们的生活,我们处在一个被电子产品深度包围的时代,在一个普通老百姓的家里,衣食住行,每一个产品的诞生都离不开EDA技术,从彩色电视机,到智能冰箱,到全自动洗衣机,电饭煲,到微波炉,电磁炉,电子琴,再到
3、个人随身用的手机,MP3音乐播放器都需要EDA技术提供支持。本文应用VHDL硬件描述语言,设计一个乐曲硬件播放电路,它能将预先设置存储好的乐曲自动播放出来,下面对乐曲播放电路的设计与实现中涉及的EDA技术,以及EDA技术中常用的开发器件CPLDFPGA可编程逻辑器件,开发语言VHDL以及开发软件MAX+PLUSII作简单介绍。1.2 可编程逻辑控件FPGA本设计中选用FPGA,主要是因为它与传统的MCU相比有以下几个方面的优点:编程方式简便先进。FPGA产品中部分是采用菊花链在系统编程方式的。这种先进的编程方式已成为当今世界上各类可编程器件发展的趋势。因为它省却了价格昂贵,操作不便的专用编程器
4、,只需要一个十分简单的下载编程电路和一条PC机的打印机通讯线就行了。它无须编程高压,在TTL电平下随时可进行在线编程,并可进行所谓菊花链式多片串行编程。高可靠性。在高可靠应用领域,MCU的缺憾为FPGA的应用留下了很大的用武之地。这族器件尽管在功能开发上是通过EDA软件实现的。但物理机制却像一片74LS164那样纯属硬件电路,十分可靠。通过合理设计,大多数应用中,无须考虑复杂的复位和初始化。设计中只需利用简单的语句将闲置状态导入同一初始入口,就能有效防止任何可能的“死机”现象。由于是并行工作,它的任一输入脚都可用作类似于MCU的中断监测引脚,且反应速度仅为纳妙级。FPGA的高可靠性还表现在几乎
5、可将整个系统下载于同一芯片中,从而大大缩小了体积,易于管理和屏蔽。高速。FPGA的时钟延迟可达纳秒级,结合其并行工作方式,在超高速应用领域和实时测控方面有非常广阔的应用前景。功能强大,应用广阔。目前,FPGA的可选择范围很大,可根据不同的应用选用不同容量的芯片,如Lattice的ispLSI和AMD公司的MACH,最小芯片的等效逻辑门为1000门,最大达数十万门。ALTERA和XILINX公司推出的百万门的FPGA可实现几乎任何形式的数字电路或数字系统的设计。随着这类器件的广泛应用和成本的大幅下降,以及产品上市速率的提高,FPGA在系统中的直接应用率正直逼ASIC的开发。易学易用,开发便捷。单
6、片机应用系统的设计对于行家里手来说是十分简单的事。然而,对于初学者,诸如CPU的工作方式、众多特殊寄存器的用法、中断概念等等,着实不是一件容易的事。相比之下,FPGA应用的学习却不需要太多的预备知识,只要稍具一点数字电路和计算机软件设计的基础知识,就能在短期内掌握基本的设计方法和开发技巧。而且反过来去学用单片机,就显得轻车熟路多了。这无疑是高技术为我们的学习提供了捷径,站在巨人的肩膀当然能更快地获得成功。可以预言,我国EDA技术的学习热潮和FPGA的应用热潮决不会逊色于过去10年的单片机热潮。开发周期短。由于相应的EDA软件功能完善而强大,仿真能力便捷而实时,开发过程形象而直观,兼之硬件因素涉
7、及甚少,因此可以在很短时间内完成十分复杂的系统设计,这是产品快速进入市场的最宝贵的特征。一些EDA专家预言,未来的大系统的FPGA设计仅仅是各类再应用逻辑与IP核(CORE)的拼装,其设计周期仅以小时计。TI公司认为,一个ASIC百分之八十的功能可用IP核等现成逻辑合成。1.3 开发语言VHDLVHDL是非常高速集成电路硬件描述语言,是可以描述硬件电路的功能、信号连接关系及定时关系的语言它能比电路原理图更有效地表示硬件电路的特性。使用VHDL语言,可以就系统的总体要求出发,自上至下地将设计内容细化,最后完成系统硬件的整体设计。VHDL语言的主要特点是:功能强大,灵活性高:VHDL语言是一种功能
8、强大的语言结构,可用简洁明确的代码来进行复杂控制逻辑的设计。同时VHDL语言还支持层次化的设计,支持设计库和可重复使用的元件生成。目前,VHDL语言已成为一种设计、仿真、综合的标准硬件描述语言。器件无关性:VHDL语言允许设计者在生成一个设计时不需要首先选择一个具体的器件。对于同一个设计描述,可以采用多种不同器件结构来实现其功能。因此设计描述阶段,可以集中精力从事设计构思。当设计、仿真通过后,指定具体的器件综合、适配即可。可移植性:VHDL语言是一种标准的语言,故采用VHDL进行的设计可以被不同的EDA工具所支持。从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工
9、作平台移植到另一个工作平台。在一个EDA工具中采用的技术技巧,在其它工具中同样可以采用。自顶向下的设计方法:传统的设计方法是,自底向上的设计或平坦式设计。自底向上的设计方法是先从底层模块设计开始,逐渐由各个模块形成功能复杂的电路。这种设计方法优点是很明显的,因为它是一种层次设计电路,一般电路的子模块都是按照结构或功能划分,因此这种电路层次清楚,结构明确,便于多人合作开发,同时设计文件易于存档,易于交流。自底向上设计方法的缺点也很明显,往往由于整体设计思路不对而使的花费几个月的低层设计付之东流。平坦式设计是整个电路只含有一个模块,电路的设计是平铺直叙的,没有结构和功能上的划分,因此不是层次电路的
10、设计方式。优点是小型电路设计时可以节省时间和精力,但随着电路复杂程度的增加,这种设计方式的缺点变的异常突出。自顶向下的设计方法是将要设计的电路进行最顶层的描述(顶层建模),然后利用EDA软件进行顶层仿真,如果顶层设计的仿真结果满足要求,则可以继续将顶层划分的模块进行低一级的划分并仿真,这样一级一级设计最终将完成整个电路的设计。自顶向下的设计方法与前面两种方法相比优点是很明显的。数据类型丰富:作为硬件描述语言的一种VHDL语言的数据类型非常丰富,除了VHDL语言自身预定义的十种数据类型外,在VHDL语言程序设计中还可以由用户自定义数据类型。特别是std_logic数据类型的使用,使得VHDL语言
11、能最真实模拟电路中的复杂信号。运行库和程序包丰富:目前支持VHDL语言的程序包很丰富,大多以库的形式存放在特定的目录下,用户可随时调用。如IEEE库收集了std_logic_1164、std_logic_arith、std_logic_unsigned等程序包。在FPGA综合时,还可以使用EDA软件商提供的各种库和程序包。而且用户利用VHDL语言编写的各种成果都可以以库的形式存放,在后续的设计中可以继续使用。建模方便:由于VHDL语言中可综合的语句和用于仿真的语句齐备,行为描述能力强,因此VHDL语言特别适合信号建模。VHDL语言无论仿真还是综合都是非常合适的描述语言。 VHDL语言是一种硬件
12、电路的建模描述语言,因此与普通的计算机语言有较大差别,普通计算机语言是CPU按照时钟的节拍,一条指令执行完后才能执行下一条指令,因此指令执行是有先后顺序的,也即是顺序执行,而每条指令的执行占用特定的时间。而与VHDL语言描述结果相对应的是硬件电路,它遵循硬件电路的特点,语句的执行没有先后顺序,是并发的执行的;而且语句的执行不象普通软件那样每条指令占用一定的时间,只是遵循硬件电路自身的延迟时间。1.4 开发环境MAX+PLUSMAX+PLUS提供了全面的逻辑设计能力,包括电路图、文本和波形的设计输入以及编译、逻辑综合、仿真和定时分析以及器件编程等诸多功能。特别是在原理图输入等方面,MAX+PLU
13、S被公认为是最易使用、人机界面最友好的PLD 开发软件。这样灵活多变的输入方式,给设计使用者带来了极大的方便。1.5 研究思路及主要工作本文按照EDA开发流程,采用VHDL硬件描述语言开发,将乐曲硬件播放电路设计进行模块化分解,层次化设计,分成几个单独的结构体,每个结构体实现部分功能,最后,经顶层文件将各单独结构体进行综合,实现乐曲硬件播放。主要工作:根据硬件播放电路的功能进行全局分析,采用自上至下的设计方法,从系统总体要求出发,逐步将设计内容细化,最后完成系统结构的整体设计,实现预先设置乐曲的播放功能。实现功能乐曲播放,需要完成以下设计:预置乐曲,本文选取了梁祝与欢乐颂作预置,作预置时,需要
14、将乐曲音符转换成相应的代码,通过计算逐一将音符转换成代码,通过EDA开发平台MAX+PLUSII进行乐曲定制;为了提供乐曲发音所需要的发音频率,编写数控分频器程序,对单一输入高频,进行预置数分频,生成每个音符发音的相应频率;为了给分频提供预置数,需要计算分频预置数;对每部分结构单元逐一进行编译,生成相应的元器件符号,并对独立结构单元功能进行仿真;启动MAX+PLUSII全程编译,生成具体输入,输出端口的图形文件。启动全程功能仿真,生成仿真波形文件。生成下载文件,在ZYE1502D实验开发板上利用Altera公司的FLXE10KEPF10K10LC844芯片进行功能验。第2章 系统设计2.1 系
15、统原理传统数字逻辑设计方法相比,本设计借助于功能强大的EDA工具和硬件描述语言来完成,如果只以纯硬件的方法完成乐曲播放电路的设计,将是难以实现的。本设计采用了梁祝与欢乐颂的曲子来完成。表2.1 简谱中的音名与频率的关系表音符名频 率(Hz)音符名频 率(Hz)音符名频 率(Hz)音符名频 率(Hz)休止符低音5394.737中音6989.446高音41609.442低音1294.349低音6495.376中音71136.363高音51802.884低音2330.396低音7555.56高音11175.549高音62027.027低音3370.92中音4796.178高音21353.790高音7
16、2272.727低音4386.598中音5882.353高音31512.097为了便于理解,首先介绍一下硬件电路的发声原理。我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。而乐曲中的每一音符对应着一个确定的频率,因此,要想FPGA发出不用音符的音调,实际上只要控制它输出相应音符的频率即可(音符和频率的关系见表2.1)。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。而要准确地播放出一首乐曲,仅仅让扬声器能够发声是不够的,还必须准确地控制乐曲
17、的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续播放的两个关键因素。2.1.1 音调的控制频率的高低决定了音调的高低。计算出简谱中从低音1到高音1之间每个音名对应的频率,所有不同频率的信号都是从同一个基准频率分频得到的。由于音阶频率多为非整数,而分频系数又不能为小数,因此必须将计算得到的分频数四舍五入取整。若基准频率过低,则由于分频比太小,四舍五入取整后的误差较大;若基准频率过高,虽然误差较小,但分频数将变大。实际的设计应综合考虑这两方面的因素,在尽量减小频率误差的前提下取合适的基准频率。因此,要想FPGA发出不同音符的音调,实际上只要控制它输出相应
18、音符的频率即可。综合考虑各因素,本文中选取12MHZ作为CLK的分频计数器的输入分频信号。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。2.1.2 音长的控制音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。因此,在想控制音符的音长,就必须知道乐曲的速度和每个音符所对应的节拍数,在这个设计中所播放的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s的话,那么一拍所应该持续的时间为0.25秒,则只需要再提供一个4HZ的时钟频率即可产生四分音符的时长。要想让系统知道现在应该播放哪个音符,而这个音符持续的时间应该是
19、多少,就必须编写乐曲文件,在乐曲文件中音符是按地址存放的,当系统工作时就按4Hz的频率依次读取简谱,当系统读到某个音符的简谱时就对应发这个音符的音调,持续时间为0.25秒,而如果在曲谱文件中这个音符为三拍音长,那又该如何控制呢?其实只要将该音符连续书写三遍,这时系统读乐曲文件的时候就会连续读到三次,也就会发三个0.25秒的音长,这时我们听上去就会持续了三拍的时间,通过这样一个简单的操作就可以控制音乐的音长了。2.2 系统结构本系统主要由三个功能模块组成:NOTETABS.VHD,TONETABA.VHD和 SPEAKER.VHD。第一部分NOTETABS,地址发生器,实现按节拍读乐谱的功能;第
20、二部分TONETABA,查表电路,为SPEAKER提供分频预置数,实现乐曲译码输出CODE4:0;第三部分SPEAKERA,产生发音频率,实现乐曲播放;其结构如图2.1所示。图2.1 乐曲播放电路结构方框图第三章 各模块设计与仿真3.1 定制音符数据3.1.1定制音符数据ROM的mif文件为了实现乐曲的播放,首先需要将曲谱定制到音符数据ROM里面,然后才能按照一定的节拍从ROM中读出曲谱。以下定制的是梁祝与欢乐颂的mif 文件(梁祝与欢乐颂的简谱见附录E、F)。WIDTH=5;DEPTH=256;ADDRESS_RADIX=DEC;DATA_RADIX=DEC;CONTENT BEGIN注意:
21、实用文件中是展开以下数据的,每一组占一行;00:3;01:3;02:3;03:3;04:5;05:5;06:5;07:6;08:8;09:8;10:8;11:9;12:6;13:8;14:5;15:5;16:12;17:12;18:12;19:15;20:13;21:12;22:10;23:12;24:9;25:9;26:9;27:9;28:9;29:9;30:9;31:0;32:9;33:9;34:9;35:10;36:7;37:7;38:6;39:6;40:5;41:5;42:5;43:6;44:8;45:8;46:9;47:9;48:3;49:3;50:8;51:8;52:6;53:5;
22、54:6;55:8;56:5;57:5;58:5;59:5;60:5;61:5;62:5;63:5;64:10;65:10;66:10;67:12;68:7;69:7;70:9;71:9;72:6;73:8;74:5;75:5;76:5;77:5;78:5;79:5;80:3;81:5;82:3;83:3;84:5;85:6;86:7;87:9;88:6;89:6;90:6;91:6;92:6;93:6;94:5;95:6;96:8;97:8;98:8;99:9;100:12101:12;102:12;103:10;104:9;105:9;106:10;107:9;108:8;109:8;11
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 音乐 播放 设计 23
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内