




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于FPGA的MP3音乐播放器设计预置乐曲播放器设计摘要:本次课程设计的主题是基于FPGA的MP3播放器,这是一个发展空间很大的课题,研究者可以根据自己的能力水平和兴趣爱好自由发展。我们组实现的功能是预置乐曲的播放。本次设计是在BASYS2实验开发板上实现,使用xinlinx13.1软件,利用VHDL硬件描述言语设计数控分频器电路,利用数控分频原理设计音乐硬件播放数字电路,将音乐数据存放在程序中,利用时钟驱动音符输出,通过集成运放调节音量,达到了乐曲播放的效果。程序中存放的音符数据易修改,只要修改程序中所放的的音符数据,将其转换为其他乐曲的音符数据,就可以实现不同乐曲的播放。关键字:FPGA;xilinx;VHDL;预置音符;音乐播放目录摘要- 1 -一、绪论- 3 -1.1研究背景- 3 -1.2基本技术简介- 3 -1.2.1可编程逻辑器件FPGA- 3 -1.2.2硬件描述语言VHDL- 3 -1.2.3开发软件xilinx- 4 -二、需求分析和研究思路- 4 -2.1需求分析- 4 -2.2研究思路- 5 -三、系统设计- 5 -3.1系统原理- 5 -3.1.1音调控制- 6 -3.1.2音长控制- 6 -3.1.3乐谱发生器- 7 -3.1.4音量控制- 7 -3.2系统结构- 8 -3.2.1各功能模块概述- 8 -3.2.2系统整体原理框图- 9 -四、详细的程序实现和仿真分析- 9 -4.1时钟分频模块- 9 -4.2乐谱码发生模块- 10 -4.3乐谱码查表模块- 11 -4.4数控分频模块- 11 -4.5音量放大模块- 12 -4.6顶层模块- 12 -五、结论- 12 -六、个人感想- 13 -一、绪论1.1研究背景在电子技术的飞速发展的今天,电子产品的种类越来越多,功能越来越强大,体积越来越小,功耗越来越低。随着经济的快速发展,人们对生活质量的要求也越来越高,在越来越高效率的生活条件下,人们需要来音乐来释放压力,而体型庞大的随身听已经满足不了人们的需求。在此背景下,MP3应运而生。MP3播放器,顾名思义也就是可播放MP3格式的音乐播放工具。MP3发展到今天,其功能越来越多,外观越来越精致,受到了广大消费者的喜爱。但是传统的Flash存储器的成本居高不下,设计者创意受限,造成MP3播放器卖价不菲但功能单一,而利用FPGA实现的MP3播放器可以用尽可能低的成本提供尽可能多的附加性能。可编程逻辑器件和EDA技术的发展也为本次课程设计提供了一定的研究背景。EDA技术,即电子设计自动化,是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。这样,将原来的“电路设计+硬件搭试+调试焊接”转化为“功能设计+软件模拟+仿真下载”,在芯片的设计中完成对电路板的设计,减少了电路板连线,提高了系统集成度,降低了可能的干扰,增加了系统的可靠性和稳定性,提高了设计的灵活性和效率,大大提升了技术指标。1.2基本技术简介1.2.1可编程逻辑器件FPGAFPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA 在结构上主要分为三个部分,即可编程逻辑单元,可编程输入/输出单元和可编程连线三个部分。它采用专用的集成电路,用户不需要投片生产就可以得到合用的芯片。FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一,功耗低,是小批量系统提高系统集成度、可靠性的最佳选择之一。本次课程设计使用的是BASYS2开发板,是一个基于xinlinx Spartan-3E 可编程逻辑器件和Atmel AT90USB2 USB 控制器的电路设计和实现的平台,USB电缆提供电源和编程接口,所以他没有其他的电源供应器和编程电缆。BASYS2开发板向用户提供完整的,准备使用的,硬件适合托管范围的,基本的逻辑器件复杂控制器的电路,开发板上包括I/O设备和所必须的FPGA支持电路,不需要任何其他组件就可以实现无数的电路设计。1.2.2硬件描述语言VHDLVHDL语言是一种超高速集成电路硬件描述语言,是用于电路设计的高级语言,事实上已成为通用的硬件描述语言。VHDL主要用于描述数字系统的结构、行为、功能和接口,他的语言形式十分类似于一般的计算机高级语言。他的程序特点是将一个设计实体分成外部和内部,外部又称可视部分,或者端口,同理,内部又称不可视部分,涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。与其他硬件描述语言相比,VHDL语言具有很多优势。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。他支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。由于VHDL语言易读和结构化,所以易于修改设计,在硬件电路的设计过程中主要的设计文件使用VHDL来编写源代码。VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。本次课程设计用的就是VHDL语言编写程序,实现整体模块中的各种功能。1.2.3开发软件xilinxXilinx(赛灵思)公司是全球领先的可编程逻辑完整解决方案的供应商。Xilinx研发、制造并销售范围广泛的高级集成电路、软件设计工具以及作为预定义系统级功能的IP(Intellectual Property)核。客户使用Xilinx及其合作伙伴的自动化软件工具和IP核对器件进行编程,从而完成特定的逻辑操作。目前Xilinx满足了全世界对 FPGA产品一半以上的需求。Xilinx产品线还包括复杂可编程逻辑器件(CPLD)。Xilinx产品已经被广泛应用于从无线电话基站到DVD播放机的数字电子应用技术中。传统的半导体公司只有几百个客户,而Xilinx在全世界有7,500多家客户及50,000多个设计开端。本次课程设计中使用的Spartan-3E开发板就是由xilinx公司最新推出的低成本FPGA,是基于Spartan-3/3L的,对其性能和成本进一步优化。这款产品成本低廉,总体性能指标不是很优秀,适合低成本应用场合,是Xilinx未来几年在低端FPGA市场上的主要产品。本次课程设计使用xilinx ISE是Xilinx公司集成开发的工具,我们使用的版本是Xilinx ISE Design Suite 13.1,利用它编写VHDL程序,仿真,综合编译并生成后缀为.bit的数据文件。二、需求分析和研究思路2.1需求分析MP3播放器的功能可以有很多,基本功能就有从SD卡读取文件,通过扬声器播放音乐,通过调节按钮调节音量等。还可以有多个扩展功能,如通过LED显示歌曲的歌曲名、演唱者、播放时间等相关信息,快进后退,暂停等。甚至可以实现一些较高级别的创新功能,如通过语音识别实现MP3的密码保护功能。这是一个发展空间很大的课题,研究者可以根据自己的能力水平和兴趣爱好自由发展。本次课程设计中,我完成了预置音乐的播放,暂停,音符显示和音量调节功能。 预置音乐的播放:把音乐的曲谱写在程序里面,通过对不同音符的发音频率进行分析,把不同的音符以不同频率的脉冲形式输出,接到扬声器发出声音。 暂停:音乐是通过不断输送的时钟脉冲一个一个连续不断的实现输出的,使时钟脉冲停止就达到了是音乐播放暂停的功能。 音符显示:把音符的简谱代码存放在程序中,在音符频率输出的同时也通过LDE灯把音符的简谱代码显示出来。 音量调节:把输出的声音经过一个集成运算放大电路,通过可调电阻对音量进行调节。2.2研究思路按照EDA开发流程,采用VHDL硬件描述语言开发,从系统的整体出发对硬件演奏电路的功能进行分析并划分为多个功能模块,完成各个功能模块的设计以及实现,最后通过系统结构的整体设计实现预先设置乐曲的播放功能。再把播放功能模块的输出经过一个集成运算放大电路实现音量调节功能。需要完成的设计如下: 找出不同音符的发音频率,寻找最佳待分频频率,计算分频数和分频预置数,制作乐谱查找表。乐谱查找表里应当有:不同音符的发音频率,该发音频率相对于基准频率的分频系数和分频预置数。 预置曲谱。定义一个转换规则,将音乐音符转换为代码预置在程序里。 对预置的曲谱码在乐谱查表码里进行查找,找出相应音符对应频率的分频预置数。 根据查找到的分频预置数对待分频频率进行分频并输出。 通过集成运放电路实现音量调节。 将输出连接到扬声器,播放音乐。使用Xilinx ISE Design Suite 13.1编写程序和仿真,使用Xilinx PlanAhead 13.1综合布线,综合编译并生成.bit下载文件,使用digilent adept下载到BASYS2实验开发板上进行功能验证。三、系统设计3.1系统原理如果单纯以纯硬件的电路来实现乐曲演奏电路会复杂很多,比较难以实现。本次课程设计采用强大的EDA工具和硬件描述语言来实现乐曲演奏。我们知道,一首乐曲是由很多个音符组成的,而每个音符又包括音符的发音频率和发音持续时间两个基本因素。如何把音符一个一个播放出来,就要看怎么获得音符的发音频率和发音持续时间,并利用这些数值以硬件软件相结合的方式实现乐曲的演奏。如果我们现在知道每个音符的发音频率,利用程序使FPGA开发板上的某个引脚输出一定频率的脉冲,再连接到扬声器,就可以发出相应音符对应的声音了。然后再控制每个音符的发音持续时间,这样就输出了一个完整的音符。乐曲是由一个又一个的音符组成的,利用时钟信号使音符一个接着一个输出,就完成了一首乐曲的播放。因此,我们需要编写程序来控制FPGA引脚输出不同音符对应的不同的音调和音长。从FPGA引脚输出的不同频率的信号具有一定的峰值,改变这些峰值的大小可以控制音量的大小。因此,我们需要一个调节音量的外接电路来调节音量。3.1.1音调控制声音是发音体震动的次数,在规定的频率数字范围内波动产生的。因此,频率的高低决定了发出声音音调的高低。我们一般使用的数字简谱以可动唱名法为基础,用1、2、3、4、5、6、7代表音阶中的7个基本音级,读音为do、re、mi、fa、sol、la、si,每个音级又有低音、中音和高音三种不同的音级,这些再加上休止符,一共有22个不同音符。查阅相关资料可得到不同的音符的发音频率。查阅资料得到音符与发音频率之间的对应关系如表3-1所示。表3-1数字简谱中的音符与频率的对应关系音符名频率/Hz音符名频率/Hz音名符频率/Hz低音1261.525中音1523.329高音11046.502低音2293.664中音2587.329高音21147.659低音3329.627中音3656.255高音31318.510低音4349.228中音4698.465高音41396.919低音5391.995中音5783.990高音51567.981低音6440中音6880高音61760低音7493.883中音7987.766高音71975.53722个不同的音符就有22种不同的频率,这些频率可以由一个基准频率进行分频得到。只要找到一个合适的基准频率,计算得出每个音符的分频数,就可以对基准频率进行分频,得到不同的音符频率。由于各个音符频率大多数为非整数,所以计算得到的分频系数也大多是非整数。我们采用四舍五入的方法,可以获得为整数的分频数。如何选择基准频率很关键。若基准频率比较小,用他除以音符频率得到的分频系数也就比较小,这样的话进行四舍五入后误差相对而言会比较大。若基准频率偏大,分频系数也就偏大,这会增加系统的负担。综合考虑分频系数的准确性和大小,查阅相关资料可知,基准频率为750 khz是比较合适的。我们使用的BASYS2开发板自带50 mhz的时钟频率,对50mhz的时钟频率进行分频可得到750 khz的频率信号。由于得到的750 khz的频率信号是脉宽极窄的尖脉冲信号,为了提高扬声器有足够的功率发音,我们对尖脉冲信号再进行二分频,得到对称方波后再输出。因此,在表3-2中,就是以375 khz为基准频率计算了各个音符的分频数和分频预置数。3.1.2音长控制音符的持续时间是由乐曲的速度及每个音符的节拍数来确定。想要控制音符的持续时间,就要知道乐曲的速度和每个音符的节拍数。现在一般乐曲中,最小的节拍为1/4拍。若定义1拍的持续时间为1秒,那么1/4拍的持续时间就为1/4秒,即0.25秒。其他的节拍数位1/4拍得整数倍,因此他们的持续时间就为0.25秒的整数倍。若将乐曲中每个音符的持续节拍数写进程序,我们再定义一个4hz的时钟频率,每当时钟上升沿来临时就输出1/4拍音符,若是其他1/4拍整数倍的音符就连续输出整数倍的次数。这样,音符的发音持续时间久得到了控制。表3-2 各个音符的频率及其对应的分频系数(基准频率375KHz)音符名频 率(Hz)分频系数计数初值音符名频 率(Hz)分频系数计数初值休止符37500002047中音4698.4565371510低音1261.5251435513中音5783.9904781569低音2293.6641277770中音68804261621低音3329.6271138909中音7987.7663801667低音4349.22810221025高音11046.5023581689低音5391.9959571090高音21147.6593271720低音64408521195高音31318.5102841763低音7493.8837591288高音41396.9192681799中音1523.2517171330高音51567.9812391808中音2587.3296381409高音617602131834中音3656.2555711476高音71975.53719018573.1.3乐谱发生器根据一定的规则将乐谱的音符转换为代码预置在程序中,利用一个乐谱码计数器做标注,每1/4拍计数一次,若一个音符占有多个1/4拍,就连续多次计数。计数器指向当前的音符,当4hz时钟频率的上升沿来临时,计数器就加1,指向下一个1/4拍音符。音符转为为代码按照如下规则:休止符转换为代码0,低音1-低音7转换为代码1-7,中音1-中音7转换为代码8-14,高音1-高音7转换为15-21。3.1.4音量控制FPGA中没有控制频率峰值大小的功能,因此音量控制电路需要外接一个电路来完成。音量控制电路可以是一个集成运放电路。从本质上来看,集成运放是一种高性能的多级直接耦合放大电路。尽管集成运放的品种繁多,内部结构各不相同,但是他们的组成原则基本一致。组成主要包括差分输入级、中间放大级、偏置电路和输出级四个部分。差分输入级使运放具有尽可能高的输入电阻及共模抑制比;中间放大级由多级直接耦合放大器组成,以获得足够高的电压增益;输出级可使运放具有一定幅度的输出电压、输出电流和尽可能小的输出电阻。在输出过载时有自动保护作用以免损坏集成块;偏置电路为各级电路提供合适的静态工作点,一般采用恒流源电路为各级提供合适的静态工作点。本次采用的电路原理图如图3-1所示,使用的芯片是NE5532。这是一个同相放大器。同相放大器具有输入阻抗非常高,输出阻抗很低的特点,广泛用于前置放大级。该电路的缺点是易受干扰和精度低,所以使用的时候输出波形容易失真。这个电路的放大倍数为AV=1+R2/R1通过调节滑动变阻器R2可以改变放大倍数。将从FPGA输出的声音信号接到Vin,在从Vout输出,Vout=AVVin,通过调节滑动变阻器,改变AV,就达到了调节音量的目的。图3-1 集成运放电路3.2系统结构整个系统的主要功能是实现预置乐谱的播放,按照功能进行细分,又可以把系统分为以下五个模块:时钟分频模块、乐谱发生模块、乐谱码查表模块、数控分频模块和音量调节模块。3.2.1各功能模块概述时钟分频模块:在乐谱发生模块和数控分频模块分别用到了4 hz和750 khz的时钟频率。BASYS2开发板内部时钟为50 mhz,因此我们需要一个时钟分频模块对开发板的内部时钟进行分频,经过分频后得到4 hz和750 khz的时钟频率,再分别送到乐谱发生模块和数控分频模块。他的输入为50 mhz时钟频率和reset信号,输出为4 hz和750 khz的时钟频率。乐谱码发生模块:主要完成乐谱发生器的功能。该模块内存放了乐曲中的音符数据,通过一个4 hz时钟频率将音符数据一个一个地输出到下一个模块,即乐谱码查表模块。他的输入为4 hz的时钟频率,输出为乐谱码。乐谱码查表模块:该模块从乐谱码发生模块得到当前音符所对应的乐谱码,然后对乐谱码根据表2-3进行查表,找到相应的分频预置数,并送到下一个模块,即数控分频模块。他的输入为乐谱码,输出为音符的分频预置数、简谱代码和高/低音。数控分频模块:根据从乐谱码查表模块得到的分频预置数对750 khz进行分频,得到当前音符所对应的频率,把该频率从FPGA的一个引脚输出。若把输出信号连接到扬声器,可以知道输出的是音符。在这里,我们需要把他送到音量调节模块。他的输入为待分频的750 khz的时钟频率和音符的分频预置数,输出为音符所对应的频率脉冲。音量调节模块:这完全是一个外接模块,由集成运放和一些电阻电容组成。对从开发板的引脚输出的声音进行音量调节。他的输入为音符所对应的频率脉冲,输出的不同音量的声音。3.2.2系统整体原理框图系统的整体原理框图如图3-2所示。当一个4Hz的时钟脉冲上升沿来到时,乐谱发生器模块输出一个音符数据给乐谱码查表模块,乐谱码查表模块输出此音符相应的分频系数,将分频系数送给数控分频器模块,当750 mhz的时钟脉冲上升沿来到时,数控分频器就根据分频系数输出相应的频率(即此音符所对应的发生频率),把该时钟频率送给音量控制模块。音量控制模块的输出连接到扬声器,通过调节相应的按钮,就可以得到当前音符的不同音量的声音,通过扬声器播放出出来。连续的4Hz的时钟脉冲就将乐谱发生器里所存放的音符数据一个接一个的送给了乐谱码查表模块,再经过数控分频模块和音量控制模块,最后扬声器一个接一个的发出音符数据所对应的声音来。曲子也就流畅的播放出来了。图3-2 系统整体原理框图一、二、四、详细的程序实现和仿真分析4.1时钟分频模块时钟分频模块对开发板的内部时钟进行分频,经过分频后得到4 hz和750 khz的时钟频率,再分别送到乐谱发生模块和数控分频模块。经过计算分析,50,000,000除以750,000不能得到整数,而12,000,000除以750,000可以得到整数,而且除以4也可以整除。因此,不能直接对50 mhz进行分频得到750 khz,我们先得到12 mhz,再对12 mhz进行分频。xinlinx FPGA中有丰富的时钟管理资源,他的时钟管理IP核成为数字时钟管理器DCM(Digital Clock Manager)。Xilinx FPGA器件中最多可以有12个DCM,分布在晶片的上下两端,靠近BUFGMUX的位置,这些DCM的输入引脚可以直接连接外部时钟输入。DCM按功能划分可以分为三个部分:数字锁相环DDL、数字频率综合器DFS和数字相移器DPS。DDL可以去除输入时钟信号的偏移,修正时钟的占空比完成相移、倍频和分频等功能。DFS可以按照用户的配置产生任意M/D倍频和分频的时钟信号。DPS可以对所有的输出时钟信号做相移。在这里我们用到了DCM模块,先使用DCM模块把50 mhz分频为12mhz。再经过计算后对12 mhz分别进行16倍分频和3,000,000倍分频,得到750 khz和4hz的时钟频率,以供其他模块使用。在该模块中定义了一个reset时钟复位信号,用他来实现暂停的功能。当reset信号为0时,时钟正常输出,所以扬声器中源源不断的输出音乐。当reset信号为1时,所有的时钟信号停止,没有了时钟信号的驱动,乐谱码发生模块就无法把音符数据送出来,因此音乐的输出也就停止了,扬声器中暂时没有音乐输出。对该模块进行仿真,定义输入时钟为的1和0周期均为10 ns,reset信号的0周期为10000 ms,1周期为10 us,得到的仿真波形如图4-1和图4-2所示。从仿真波形可以看出,的确是得到了750 khz和4 hz的时钟频率。图4-1 时钟分频模块仿真输出的750 khz时钟频率图4-2 时钟分频模块仿真输出的4hz时钟频率4.2乐谱码发生模块该模块从乐谱码发生模块得到当前音符所对应的乐谱码,然后对乐谱码根据表2-3进行查表,找到相应的分频预置数,并送到下一个模块,即数控分频模块。该模块有一个clk时钟输入,输入从时钟分频模块分频得到的4 hz时钟。在该模块中,定义了一个counter信号量作为乐谱码计数器。Counter的数值指向对应的乐曲中的第counter个音符。利用4 hz时钟频率的上升沿触发counter,每一个时钟上升沿来临的时候,counter值加1,即指向了乐谱中的下一个音符。程序中利用一个case语言存储乐曲中的音符,用toneindex记录相应音符的代码并输出,我们称这个音符代码为乐谱码。Counter值等于case中的选择值时,toneindex就等于相应的乐谱码。当counter值达到最大值,即达到了该乐曲中音符数的最大值时,就立即变为0 。变为0后又继续不停的在时钟的上升沿加1,达到了循环播放乐曲的目的。部分功能代码如下:if Counter = 130 then counter =0;-counter达到最大值后又立即变为0elsif (clkevent and clk=1) -时钟上升沿触发then Counter Tone=2047;CODE=0;HIGHTone=513;CODE=1;HIGHTone=770;CODE=2;HIGHTone=1834;CODE=6;HIGHTone=1857;CODE=7;HIGHNULL;end case;4.4数控分频模块该模块输入一个clk待分频时钟,这个时钟为从时钟分频模块出来的750 khz的时钟频率。还有一个输入是从乐谱码查表模块出来的分频预置数。定义一个counter信号量作为计数值,对750 khz作相应的分频。Counter值从tone(分频预置数)开始计数,当counter值不等于2047(分频数的最大值)时,输出spks为低电平0,当counter值等于2047时,输出spks为高电平1,然后counter重新从tone开始计数。不停的循环下去,所以输出端才有了源源不断的音乐输出。从上面的分析可知,输出的spks信号是一个个的尖脉冲信号,由于每时每刻的tone值都不一样,输出的尖脉冲信号的频率在不断的变化。部分功能代码部分如下:if clkevent and clk=1 then时钟上升沿触发if Count1=2047 then Count1:=Tone;-若计数已满在时钟的上升沿将预数锁入11 位计数器Spks1=1;-使spks 输出高电平else Count1:=Count1+1;-否则继续计数spks输出低电平Spks1clkout_4hz , ToneIndex =ToneIndex1 ) ;u2: ToneTaba PORT MAP(Index=ToneIndex1,Tone=Tone1,CODE=CODE1, HIGH=HIGH1 ) ;u3 : DCM_12MHZ PORT MAP (clkin=clock,rst=rst,clk_750khz=clkout_750khz,clk_4hz=clkout_4hz);u4 : Speakera PORT MAP (clk=clkout_750khz,Tone=Tone1, SpkS1=SPKOUT );对顶层模块进行仿真,定义输入时钟为的1和0周期均为10 ns,reset信号的0周期为10000 ms,1周期为10 us,得到的仿真波形如图4-3所示。从仿真波形我们可以观察到,code1和high1输出为二进制码,spkout输出为一定频率的尖脉冲信号。图4-3 顶层模块仿真结果五、结论本文介绍了本次课程设计的相关背景,实现的功能以及具体的实现过程,详细描述了整个播放电路的工作原理、设计思路及实现方法和实现过程。本次课程设计的主题是基于FPGA的MP3播放器的,我完成了预置乐曲的播放电路的设计和实现,实现了一个乐曲播放器,整个的设计经过了需求分析,整体功能分析、功能模块化分析、整体与模块的仿真分析和硬件电路的调试这样几个步骤,最后再硬件上实现了循环播放乐曲和LED灯显示乐曲乐谱、播放开关控制暂停和可调电阻控制音量的功能。对于这种预置音符播放器,只要有乐曲的乐谱,更改乐曲容易,可根据需要和爱好修改存放在程序中的音符数据,从而使电路实现任一个乐曲的播放。这种基于FPGA的音乐播放数字电路的设计与实现,不仅通过VHDL层次化和模块化设计方法,同时采用数控分频和在程序中固化乐谱的设计思想,更好的优化了音乐播放数字电路的设计,在此基础上不必变化顶层文件架构可随意变更乐曲,有效缩短了产品开发周期、减少了设计芯片的数量、降低了功耗、提高了设计的灵活性、可靠性和可扩展性。本次设计虽然没有达到MP3播放器的要求,但是实现了简单的播放功能,勉强达到了部分设计要求,但还是有很多需要改进的地方。随着乐谱的复杂程度加大,如果依然在乐谱发生器的程序中通过时钟计数来驱动音符的输出,会加大编程的繁杂度,这是一个问题等着去改善。在之前实现的基本功能的基础上,我们还可以实现更多的功能,例如切歌,快进,后退,数码管显示播放时间等等。一、二、六、个人感想参考文献【1】xilinx FPGA设计基础(VHDL版),李云松 宋锐 雷杰 杜建超 编著,西安电子科技大学出版社【2】电子线路设计实验测试(第四版),罗杰 谢自美 主编,电子工业出版社 26附件1: 大学本科毕业论文(设计)工作程序要求阶段工作程序及要求完成时间第一阶段(准备阶段)(一)确定题目和指导教师1.学院(系)成立毕业论文(设计)领导小组;2.学院(系)向教师(具有讲师以上职称或具有研究生学历的助教)分派指导论文(设计)任务,院(系)公布备选题目一览表;3.学院(系)召开指导教师和学生参加的毕业论文(设计)布置大会;4.学生根据自己的专业兴趣、学术特长选定论文题目,确定指导教师,也可与指导教师协商后确定论文题目;5.学院(系)将选题结果汇总成表,报教务处实践教学科备案。每学年第一学期第8周前(二)做好论文开题、写作的准备工作1.指导教师向学生传达毕业论文(设计)要求及有关管理规定,师生沟通交流课题任务,使学生正确理解课题,为开题做准备;2.学生确定论文题目后,应在指导教师的指导下进行文献检索、实习调研以及实验等论文前期准备工作。每学年第一学期第8周以后第二阶段(开题及写作阶段)(三)做好开题报告教研室组织教师指导学生做好开题报告,院(系)检查开题情况,教务处抽查。每学年第二学期第2周前(四)认真进行毕业论文(设计)指导、检查工作。1指导教师做好指导工作,定期检查学生的工作进度和质量,及时解答和处理学生提出的有关问题;2学院(系)要随时了解、检查论文写作进展情况,及时研究协调处理毕业论文写作过程中的有关问题。每学年第二学期(五)毕业论文中期检查教研室组织中期毕业论文检查工作,做好记录,学生须向指导教师汇报工作进度和工作质量,并填写中期检查表。每学年第二学期第8周第三阶段(评审答辩阶段)(六)指导教师评定毕业论文答辩前一周,学生将毕业论文交指导教师,指导教师需认真审阅,写出评语和评分。每学年第二学期第13-14周(七)评阅老师评阅毕业论文学院(系)或教研室安排有关教师,详细评阅每个学生的毕业论文,给出评分。(八)组织答辩学院(系)成立答辩委员会,组织答辩小组对学生进行论文答辩,答辩日程安排通知教务处,并做好答辩记录,给出答辩成绩。每学年第二学期第15周前(九)综合评定成绩学院(系)组织专门人员检查评分标准执行情况,进行成绩汇总和统计;毕业论文成绩及时报送教务处。每学年第二学期第15周前(十)毕业论文归档管理学院(系)收集并整理归档毕业论文有关材料,包括鉴定表(2份)、开题报告(1份)、中期检查表(1份)、评分表(1份)、论文(设计)(1份)及相应电子文档,填写本科生毕业论文(设计)工作总结表,一份交教务处实践教学科。每学年第二学期第16周前(十一)校级优秀毕业论文评选每学年第二学期第17周前注:1.提前或推延进行毕业论文(设计)的,各阶段要求相同,日程自定;2.毕业论文(设计)工作三个阶段时间安排,可根据各专业特点适当调整。 附件2: 大学本科毕业论文(设计)撰写规范一、毕业论文(设计)文本结构毕业论文(设计)主要由8个部分组成:封面;目录;题目;中外文摘要;正文;参考文献;谢辞;附录。二、毕业论文(设计)各部分规范1. 封面封面按学校规定的格式填写,包括论文(设计)题目、作者姓名、指导教师姓名、学科专业等内容。2. 目录目录由毕业论文(设计)各部分内容的顺序号、名称和页码组成,目次中的内容一般列出二级标题即可。目录应该用“”连接名称与页码。3. 题目论文(设计)题目要恰当、简明、凝练,能够反映论文的主题及其内容,做到文、题贴切。题目中不使用非规范的缩略词、符号、代号和公式,通常不采用问话的方式。题目所使用的词语应当考虑到有助于选择关键词和编制题录、索引等。题目的中文字数一般不超过20个字,外文题目不超过10个实词,中外文标题应一致,居中编排格式。4. 中外文摘要及关键词摘要是对毕业论文(设计)内容不加注释和评论的简短陈述。摘要主要是说明研究工作的目的、方法、结果和结论。摘要应具有独立性和自含性,即不阅读全文,就能获得毕业论文(设计)必要的信息,使读者确定有无必要阅读全文。摘要中应用第三人称的方法记述论文的性质和主题,不使用“本文”、“作者”等作为主语,应采用“对进行了研究”、“报告了现状”、“进行了调查”等表达方式。排除在本学科领域已成为常识的内容,不得重复题目中已有的信息。语句要合乎逻辑关系,尽量同正文的文体保持一致。结构要严谨,表达要简明,语义要确切,一般不再分段落。对某些缩略语、简称、代号等,除了相邻专业的读者也能清楚理解的以外,在首次出现处必须加以说明。摘要中通常不用图表、化学结构式以及非公知公用的符号和术语。毕业论文(设计)的摘要包含中文摘要和外文摘要。中文摘要字数约为200300字,外文摘要约为200300个实词。关键词(Keywords)是为了文献标引,从汉语主题词表或论文中选取出来,用以表示全文主题内容信息的词语或术语。关键词不宜用非通用的代号和分子式。关键词一般为36个。关键词的排序,通常应按研究的对象、性质(问题)和采取的手段排序。中文关键词两词之间应留出一个汉字的空间,不加任何标点符号;外文关键词之间用分号隔开。5. 正文毕业论文(设计)的正文包括前言(引言)、正文、结论三个部分。外语类专业毕业生必须用所学专业外语撰写。毕业论文(设计)的篇幅一般6000字左右。(1)前言(引言)前言(引言)主要说明研究工作的目的、范围,对前人的研究状况进行评述分析,阐明研究设想、研究方法、实验设计、预期结果、成果的意义等。(2)正文正文是对研究工作与研究内容的详细表述,一般由标题、文字、表格或公式等部分组成。该部分要运用选定的研究方法分析问题、论证观点,尽量反映出研究能力和学术水平。正文是毕业论文(设计)的核心部分,占据主要篇幅。正文是论文的主体,要求观点清晰、论点正确、论据可靠、论证严密、层次清楚。正文中的图表和计量单位要规范。图须有序号、图题、图例、量和单位,图序号须用阿拉伯数字,与图题空 1 格,写在图下方;表格采用 3线表,表头线和表尾线为粗黑线,表两边不要串写文字,表序号须用阿拉伯数字,与标题空 1格,写在表上方;一律使用法定计量单位。(3)结论结论是对整个研究工作进行归纳和总结。结论应当准确、完整、明确、精练。如不可能导出应有的结论,也可以没有结论而进行必要的讨论,阐述本课题研究中存在的问题及进一步开展研究的建议。6. 谢辞(致谢)谢辞(致谢)是对给予各类资助、指导和协助完成科研工作,以及提供各种条件的单位和个人表示的感谢。谢辞应实事求是。7. 参考文献文后参考文献,是论文的重要组成部分,按顺序和规定的格式列在正文之后。所列出的文献,应当是作者亲自阅读或引用过的,出处要翔实,要进行核实查对。所引用的文献应是公开出版的刊物或著作,内部刊物一般不引用。正文中参考文献的标注方法,是在引用文字(即所引用的词组、句子、段落等)结束处的右上角标出参考文献序号。全文参考文献的序号要按照从小到大的次序排列,某一文献多次引用时,要用同一序号标出。文后参考文献的编写方式,是依正文中参考文献序号的次序排列所有的参考文献,且一个参考文献只能出现一次。8. 附录凡不宜收入正文中而又有价值的内容,可编入毕业论文的附录中。附录内容主要包括:正文中所使用公式的推导与证明过程;使用的主要符号、单位、缩写、程序全文及其说明等;在正文中无法列出的实验数据;重复性数据图表;调查问卷等。附件3: 大学本科毕业论文(格式)格式(理科)(说明:本表供理工科专业学生用,以下所有红色、蓝色文字仅供参考,学生在写作论文时请保留字体、字号,改写或删除掉文字,黑色文字请保留。每一页的上方(天头)和左侧(订口)分别留边25mm,下方(地脚)和右侧(切口)应分别留边20mm,装订线5 mm,页眉和页脚为0。论文题目使用黑体三号字,正文使用宋体小四号字,行距为单倍行距;一级标题段前段后为0.5行,正文段前段后为0,字符间距为标准。为保证打印效果,学生在打印前,请将全文字体的颜色统一设置成黑色。以上说明参阅后请自行删除,包括本文本框!)(顶头空2行)目 录(4号黑体,居中)摘要1关键词1Abstract1Key words1引言(或绪论)11材料与方法Y1.1材料 Y1.2方法 Y1.2.1Y1.2.2Y1.2.3Y1.2.4Y2Y2.1Y3 Y(略)X (正文第X章)Y致谢Y参考文献Y附录A (必要时)Y附录B (必要时)Y图1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公立医院能源管理及医疗废物处理一体化服务合同
- 2025年度智能设备钣金件精加工及售后服务保障合同范本
- 2025年度冷链仓储物流场地租赁及服务管理合同
- 2025年常平瑜兴织造厂关厂环保验收合规性评估合同
- 2025版地下室防水工程分包合同(含防水材料检测)
- 2025年北京别墅买卖合同高端市场风险管理与防控版
- 2025年校园环保教育主题活动策划与执行服务合同
- 二零二五年度生态保护区绿化苗木种植与生态修复合同
- 2025年高效离婚协议书:财产分割与子女抚养方案制定合同
- 二零二五版公司针对员工个人旅游借款合同
- 肝胆外科专科知识题库及答案
- 滁州市珠龙广卫绢云母粉厂滁州市南谯区将军山绢云母矿1万吨-年露天采矿工程项目环境影响报告书
- 人民医院心血管外科临床技术操作规范2023版
- 2023年江苏小高考历史试卷
- 主要组织相容性复合体及其编码分子
- 优化物理教学策略的思考(黄恕伯)
- 中国移动-安全-L1,2,3(珍藏版)
- 2017年全国大学生数学建模A题
- 2023年专升本计算机题库含答案专升本计算机真题
- scratch3.0编程校本课程
- GB/T 1685-2008硫化橡胶或热塑性橡胶在常温和高温下压缩应力松弛的测定
评论
0/150
提交评论