基于FPGA的音乐播放器课程设计.docx

上传人:李医生 文档编号:11745411 上传时间:2021-09-03 格式:DOCX 页数:32 大小:172.60KB
返回 下载 相关 举报
基于FPGA的音乐播放器课程设计.docx_第1页
第1页 / 共32页
基于FPGA的音乐播放器课程设计.docx_第2页
第2页 / 共32页
基于FPGA的音乐播放器课程设计.docx_第3页
第3页 / 共32页
基于FPGA的音乐播放器课程设计.docx_第4页
第4页 / 共32页
基于FPGA的音乐播放器课程设计.docx_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《基于FPGA的音乐播放器课程设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的音乐播放器课程设计.docx(32页珍藏版)》请在三一文库上搜索。

1、唐山学院EDA技术 课程设计题 目 音乐播放器系(部)智能与信息工程学院班级 姓名学号 指导教师2016年12 月2 日至J2 月0 日共 2 周2016年12月31日课程设计成绩评定表出勤情况出勤天数缺勤天数成出勤情况及设计过程表现(20分)绩课设答辩(20分)评设计成果(60分)士 7E总成绩(100分)提问(答辩)问题情况综合评士 7E指导教师签名:年 月 日EDA技术课程设计任务书一、设计题目、内容及要求设计题目:音乐播放器设计内容:1 .使用蜂鸣器播放音乐2 .三首音乐以上3 .数码管上显示当前播放的歌曲位置(第几首歌曲)4 .能够暂停和开始5 .能够选择上一首和下一首歌曲设计要求:

2、(1)根据任务要求确定电路各功能模块(2)设计程序(3)时序仿真结果(4)设计总结二、设计原始资料Quartus II软件;ED骸验箱;计算机一台;三、要求的设计成果(课程设计说明书、设计实物、图纸等)课程设计说明书1份,不少于2000字,应包含设计原理分析、相关软件介绍、仿真 波形分析,实验箱下载验证等。四、进程安排设计思路代码实现实验验证五、主要参考资料2001徐志军,徐光辉,CPLD/FPGA勺开发与应用,电子工业出版社,谭会生,EDAK术基础,湖南大学出版社,2004李岩,黄夫海,基于FPGA勺MIDI音乐发生器设计,2010指导教师(签名):教研室主任(签名)1.设计目的与要求1.1

3、.课程设计目的.1.2课程设计要求.2.应用工具介绍2.1.EDA 技术介绍2.2.Verilog HDL 语言介绍3.基本原理3.1.音调的控制3.2音长的控制.4.方案实现5.总结6.参考文献目录错误!.未定义书签。.错误!.未定义书签。.错误!.未定义书签。.错误!.未定义书签。.错误!.未定义书签。.2.错误!.未定义书签。.4.4.5.1.3.1.4.1 .设计目的与要求1.1 课程设计目的:1)加深对 EDA 技术的理解,掌握音乐播放器的工作原理2)了解怎样控制音调的高低变化和音长,从而完成乐曲的自动循环演奏。3)培养自主学习、正确分析和解决问题的能力1.2 课程设计要求:1)使用

4、蜂鸣器播放音乐2)三首音乐以上3)数码管上显示当前播放的歌曲位置(第几首歌曲)4)能够暂停和开始5)能够选择上一首和下一首歌曲2 .应用工具介绍作为当今最流行的计算机软件系统, EDA 技术是以计算机为工作平台,融合了应用电子技术、 计算机技术、 信息处理及智能化技术的最新成果, 进行电子产品的自动设计。EDA 可提供文本输入以及图形编辑的方法将设计者的意图用程序或者图形方式表达出来,而我们经常用到的 VHDL 语言便是用于编写源程序所需的最常见的硬件描述语言( HDL )之一。2.1 EDA 技术介绍EDA是电子设计自动化(Electronic Design Automation)的缩写,在

5、20世纪90 年代初从计算机辅助设计(CAD) 、 计算机辅助制造(CAM)、 计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来。EDA技术是在电子CAD技术基础上 发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。EDA 技术就是以计算机为工具, 设计者在 EDA 软件平台上, 用硬件描述语言 HDL 完成设计文件,然后由计算机自动地完成逻辑编译、化简、 分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。典型的 EDA 工具中必须包含两个特殊的软

6、件包,即综合器和适配器。 综合器的功能就是将设计者在EDA 平台上完成的针对某个系统项目的 HDL 、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合, 最终获得我们欲实现功能的描述文件。 综合器在工作前, 必须给定所要实现的硬件结构参数, 它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。 也就是说, 综合器是软件描述与硬件实现的一座桥梁。 综合过程就是将电路的高级语言描述转换低级的、可与目标器件 FPGA/CPLD 相映射的网表文件。在今天, EDA 技术已经成为电子设计的普遍工具,无论设计芯片还是设计系统,没有EDA 工具的支持, 都是难以完成的。 ED

7、A 工具已经成为设计师必不可少的武器,起着越来越重要的作用。从目前的 EDA 技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。 EDA 技术发展迅猛,完全可以用日新月异来描述。 EDA 技术的应用广泛,现在已涉及到各行各业。 EDA 水平不断提高,设计工具趋于完美的地步。2.2 Verilog HDL 语言介绍Verilog HDL 是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。作为一种通用化的硬件描述语

8、言, Verilog HDL 语言具有下述描述能力:设计的行为特性、 设计的数据流特性、 设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外, VerilogHDL 语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。Verilog HDL 语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用 Verilog 仿真器进行验证。语言从 C 编程语言中继承了多种操作符和结构。 Verilog HDL 提供了扩展的建模能力,其中许多扩展最初很难理解。但是

9、, Verilog HDL 语言的核心子集非常易于学习和使用, 这对大多数建模应用来说已经足够。 当然, 完整的硬件描述语句足以对从最复杂的芯片到完整的电子系统进行描述。Verilog HDL 语言已经成为一种标准的硬件描述语言。它具有以下特点:编辑版 word(1)作为一种多用途的硬件描述语言,它具有很好的易学性和易用性。(2) Verilog HDL语言允许在同一个模块中进行不同抽象层次的描述。(3)大多数逻辑综合工具都支持 Verilog HDL,使得它成为设计人员的一个很好 的选择。(4)所有的制造厂商都提供了 Verilog HDL的工艺库,用以支持仿真。(5) Verilog HD

10、L的程序语言接口拥有强大的功能,允许用户用C语言对内部数据结构进行描述。正是以上优点,使得 Verilog HDL语言广泛流行。下面是verilog的设计流程:Verilog的设计流程图编辑版word3 . 基本原理音乐播放器的原理是这样的: 组成乐曲的每个音符的频率值 (音调) 及其持续的时间 (音长) 是乐曲能连续演奏所需的两个基本数据, 因此只要控制输出到扬声器的激励信号频率的高低和持续的时间,就可以使扬声器发出连续的乐曲声。3.1 音调的控制频率的高低决定了音调的高低。音乐的十二平均率规定:每两个8 度音(如简谱中的中音1 与高音 1)之间的频率相差一倍。在两个8度音之间,又可分为12

11、个半音,每两个半音的频率比为12: 2。另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音1 至高音 1 之间每个音名对应的频率,如表3.11所示:表3.11简谱中的音名与频率的关系音名频率/Hz音名频率/Hz音名频率/Hz 1261.6中音1523.3高音11046.5 2293.7中音2587.3高音21174.7 3329.6中音3659.3高音31318.5 4349.2中音4698.5高音41396.9 5392中音5784高音51568 6440中音6880高音61760 7493.9中音7987.8高音719

12、75.53.2 音长的控制音符的持续时间必须根据乐曲的速度及每个音符的节拍数来确定。编辑版word4 .方案实现1、 div_freqmodule div_freq(clk,rst_n,freq,clk_out);input clk; /50MHZinput rst_n;input 25:0 freq;output reg clk_out;define NUM 25_000_000/freq-1reg25:0 cnt;always (posedge clk or negedge rst_n)beginif(!rst_n)begincnt=26d0;endendelseendmoduleclk_

13、out=1b0;beginif(cntNUM)beginelseendendcnt=cnt+1b1;clk_out=clk_out;beginendclk_out=clk_out;cnt=26d0;编辑版 word2、selmodule sel(data,clk,rst_n,sel,show_data);input 23:0 data;input clk;input rst_n;output reg 2:0 sel;output reg 3:0 show_data;always (posedge clk or negedge rst_n)beginif(!rst_n)beginsel = 3b

14、000;endelsebeginif(sel 3b101)sel = sel + 1b1;elsesel = 3b000;endendalways (*)begincase(sel)3b000 :show_data = data23:20;3b001 :show_data = data19:16;3b010 :show_data = data15:12;3b011 :show_data = data11:8;3b100 :show_data = data7:4;3b101 :show_data = data3:0;default : show_data = 4hf;endcaseendendm

15、odule3、segmodule seg(show_data,seg);input 3:0 show_data;output reg 7:0 seg;always (*)begincase(show_data)0 :seg = 8b1100_0000;1 :seg = 8b1111_1001;2 :seg = 8b1010_0100;3 :seg = 8b1011_0000;4 :seg = 8b1001_1001;5 :seg = 8b1001_0010;6 :seg = 8b1000_0010;7 :seg = 8b1111_1000;8 :seg = 8b1000_0000;9 :seg

16、 = 8b1001_0000;10 :seg = 8b1000_1000;11 :seg = 8b1000_0011;12 :seg = 8b1100_0110;13 :seg = 8b1010_0001;14 :seg = 8b1000_0110;15 :seg = 8b1000_1110;default : seg = 8b1000_1110;endcaseendendmodule4、controllerO w wA1MH3module controller (clk,rst_n,addr);input clk;input rst_n;output reg 8:0 addr;paramet

17、er T=12_500_000;reg 25:0 cnt;always (posedge clk or negedge rst_n)beginif(!rst_n)begincnt=26d0;addr=8d0;endelsebeginif(cntT-1)cnt=cnt+1b1;elsebegincnt=26d0;if(addr255)addr=addr+1b1;elseaddr=8d0;endendendendmodule5、translatemodule translate(clk,rst_n,music_data,music_freq);input clk;input rst_n;input

18、 21:0 music_data;output reg 25:0 music_freq;always (posedge clk or negedge rst_n)beginif(!rst_n)music_freq=26d0;elsecase(music_data)1:music_freq=26d523;/zhongyin2:music_freq=26d587;3:music_freq=26d659;4:music_freq=26d699;5:music_freq=26d392;6:music_freq=26d880;7:music_freq=26d987;8:music_freq=26d261

19、;/diyin9:music_freq=26d293;10:music_freq=26d329;11:music_freq=26d349;12:music_freq=26d391;13:music_freq=26d440;14:music_freq=26d493;15:music_freq=26d1046;/gaoyin16:music_freq=26d1174;17:music_freq=26d1318;18:music_freq=26d1396;19:music_freq=26d1567;20:music_freq=26d1760;21:music_freq=26d1975;default

20、:music_freq=26d0;endcaseendendmodule。瞿:一回朝乂画-B-fi_=忸,_Hi一Ri泰里一一!=!=6、shumaguanmodule shumaguan(data,clk,rst_n,sel,seg);input 23:0 data;input clk;input rst_n;output 2:0 sel;output 7:0 seg;wire clk_1k;wire 3:0 show_data;div_freq div_freq_dut(.clk(clk),.rst_n(rst_n),.freq(1_000),.clk_out(clk_1k);sel se

21、l_dut(.data(data),.clk(clk_1k),.rst_n(rst_n),.sel(sel),.show_data(show_data);seg seg_dut(.show_data(show_data),.seg(seg);endmodule5.总结其实, 音乐播放器用 FPGA 来实现是很简单的。 核心部分就是抓住了乐曲的两个要点:音调的控制和音长的控制。因此,涉及到两个频率,一个用来控制产生相应的音调,一个是用来控制该音调持续的时间(即节拍) 。不过因为看不太懂乐谱,所以做得不是太好。其实,可以做的完善和人性化一点,因为声音不只21 个音,还有升半调 # 和降调b ,可以加些按键控制,选中某一首歌曲播放。或者还可以通过按键调整模式, 可以有自己弹奏乐曲的模式, 和音乐自动播放模式,两种模式进行切换。编辑版 word6 参考文献1 . EDA 技术与 VHDL 清华大学出版社潘松 黄继业;2 数字电路EDA 入门 VHDL 程序实例集北京邮电大学出版社 张亦华;3 . VHDL/FPGA 应用开发技术与工程实践科学出版社 甘历;4 .FPGA 系统设计与实践电子工业出版社黄智伟。如有侵权请告知删除, 文档可自行编辑修改内容,供参考,感谢您的配合和支持)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1