分享
分销 收藏 举报 申诉 / 34
播放页_导航下方通栏广告

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

  • 上传人:丰****
  • 文档编号:4419870
  • 上传时间:2024-09-20
  • 格式:DOCX
  • 页数:34
  • 大小:173.15KB
  • 下载积分:12 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    基于 FPGA 音乐 播放 课程设计
    资源描述:
    基于FPGA的音乐播放器课程设计 26 2020年4月19日 文档仅供参考 唐 山 学 院 EDA技术 课 程 设 计 题 目 音乐播放器 系 (部) 智能与信息工程学院 班 级 姓 名 学 号 指导教师 年 12 月 22 日至 12 月 30 日 共 2 周 12 月 31 日 课程设计成绩评定表 出勤 情况 出勤天数 缺勤天数 成 绩 评 定 出勤情况及设计过程表现(20分) 课设答辩(20分) 设计成果(60分) 总成绩(100分) 提问 (答辩) 问题 情况 综 合 评 定 指导教师签名: 年 月 日 EDA技术 课程设计任务书 一、设计题目、内容及要求 设计题目:音乐播放器 设计内容: 1. 使用蜂鸣器播放音乐 2. 三首音乐以上 3. 数码管上显示当前播放的歌曲位置(第几首歌曲) 4. 能够暂停和开始 5. 能够选择上一首和下一首歌曲 设计要求: (1) 根据任务要求确定电路各功能模块 (2) 设计程序 (3) 时序仿真结果 (4) 设计总结 二、 设计原始资料 QuartusⅡ软件;EDA实验箱;计算机一台; 三、 要求的设计成果(课程设计说明书、设计实物、图纸等) 课程设计说明书1份,不少于 字,应包含设计原理分析、相关软件介绍、仿真波形分析,实验箱下载验证等。 四、 进程安排 设计思路 代码实现 实验验证 五、主要参考资料 徐志军,徐光辉,CPLD/FPGA的开发与应用,电子工业出版社, 谭会生,EDA技术基础,湖南大学出版社,   李岩,黄夫海,基于FPGA的MIDI音乐发生器设计,   指导教师(签名): 教研室主任(签名): 目录 1.设计目的与要求 1 1.1.课程设计目的. 1 1.2.课程设计要求 1 2.应用工具介绍 1 2.1.EDA技术介绍 1 2.2.Verilog HDL 语言介绍 2 3.基本原理 3 3.1.音调的控制 4 3.2.音长的控制 4 4.方案实现 5 5.总结 13 6.参考文献 14 1.设计目的与要求 1.1课程设计目的: 1)加深对EDA技术的理解,掌握音乐播放器的工作原理 2)了解怎样控制音调的高低变化和音长,从而完成乐曲的自动循环演奏。 3)培养自主学习、正确分析和解决问题的能力 1.2课程设计要求: 1)使用蜂鸣器播放音乐 2)三首音乐以上 3)数码管上显示当前播放的歌曲位置(第几首歌曲) 4)能够暂停和开始 5)能够选择上一首和下一首歌曲 2.应用工具介绍 作为当今最流行的计算机软件系统,EDA技术是以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。EDA可提供文本输入以及图形编辑的方法将设计者的意图用程序或者图形方式表示出来,而我们经常见到的VHDL语言便是用于编写源程序所需的最常见的硬件描述语言(HDL)之一。 2.1 EDA技术介绍 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来。EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。 EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。也就是说,综合器是软件描述与硬件实现的一座桥梁。综合过程就是将电路的高级语言描述转换低级的、可与目标器件FPGA/CPLD相映射的网表文件。 在今天,EDA技术已经成为电子设计的普遍工具,无论设计芯片还是设计系统,没有EDA工具的支持,都是难以完成的。EDA工具已经成为设计师必不可少的武器,起着越来越重要的作用。从当前的EDA技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。EDA技术发展迅猛,完全能够用日新月异来描述。EDA技术的应用广泛,现在已涉及到各行各业。EDA水平不断提高,设计工具趋于完美的地步。 2.2 Verilog HDL语言介绍 Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性能够介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。 作为一种通用化的硬件描述语言,Verilog HDL语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。另外,Verilog HDL语言提供了编程语言接口,经过该接口能够在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。 Verilog HDL语言不但定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。可是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语句足以对从最复杂的芯片到完整的电子系统进行描述。 Verilog HDL语言已经成为一种标准的硬件描述语言。它具有以下特点: (1)作为一种多用途的硬件描述语言,它具有很好的易学性和易用性。 (2)Verilog HDL语言允许在同一个模块中进行不同抽象层次的描述。 (3)大多数逻辑综合工具都支持Verilog HDL,使得它成为设计人员的一个很好的选择。 (4)所有的制造厂商都提供了Verilog HDL的工艺库,用以支持仿真。 (5)Verilog HDL的程序语言接口拥有强大的功能,允许用户用C语言对内部 数据结构进行描述。 正是以上优点,使得Verilog HDL语言广泛流行。 下面是verilog的设计流程: Verilog的设计流程图 3. 基本原理 音乐播放器的原理是这样的:组成乐曲的每个音符的频率值(音调)及其持续的时间(音长)是乐曲能连续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号频率的高低和持续的时间,就能够使扬声器发出连续的乐曲声。 3.1音调的控制 频率的高低决定了音调的高低。音乐的十二平均率规定:每两个8度音(如 简谱中的中音1与高音1)之间的频率相差一倍。在两个8度音之间,又可分为12个半音,每两个半音的频率比为12:2。 另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F之间为半音,其余为全音。由此能够计算出简谱中从低音1至高音1之间每个音名对应的频率,如表3.11所示: 表3.11 简谱中的音名与频率的关系 音名 频率/Hz 音名 频率/Hz 音名 频率/Hz 低音1 261.6 中音1 523.3 高音1 1046.5 低音2 293.7 中音2 587.3 高音2 1174.7 低音3 329.6 中音3 659.3 高音3 1318.5 低音4 349.2 中音4 698.5 高音4 1396.9 低音5 392 中音5 784 高音5 1568 低音6 440 中音6 880 高音6 1760 低音7 493.9 中音7 987.8 高音7 1975.5 3.2音长的控制 音符的持续时间必须根据乐曲的速度及每个音符的节拍数来确定。 4.方案实现 1、div_freq module div_freq(clk,rst_n,freq,clk_out); input clk; //50MHZ input rst_n; input [25:0] freq; output reg clk_out; `define NUM 25_000_000/freq-1 reg[25:0] cnt; always @(posedge clk or negedge rst_n) begin if(!rst_n) begin cnt<=26'd0; clk_out<=1'b0; end else begin if(cnt<`NUM) begin cnt<=cnt+1'b1; clk_out=clk_out; end else begin clk_out=~clk_out; cnt=26'd0; end end end endmodule 2、sel module 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) begin if(!rst_n) begin sel <= 3'b000; end else begin if(sel < 3'b101) sel <= sel + 1'b1; else sel <= 3'b000; end end always @ (*) begin case(sel) 3'b000 :show_data = data[23:20]; 3'b001 :show_data = data[19:16]; 3'b010 :show_data = data[15:12]; 3'b011 :show_data = data[11:8]; 3'b100 :show_data = data[7:4]; 3'b101 :show_data = data[3:0]; default : show_data = 4'hf; endcase end endmodule 3、seg module seg(show_data,seg); input [3:0] show_data; output reg [7:0] seg; always @ (*) begin case(show_data) 0 :seg = 8'b1100_0000; 1 :seg = 8'b1111_1001; 2 :seg = 8'b1010_0100; 3 :seg = 8'b1011_0000; 4 :seg = 8'b1001_1001; 5 :seg = 8'b1001_0010; 6 :seg = 8'b1000_0010; 7 :seg = 8'b1111_1000; 8 :seg = 8'b1000_0000; 9 :seg = 8'b1001_0000; 10 :seg = 8'b1000_1000; 11 :seg = 8'b1000_0011; 12 :seg = 8'b1100_0110; 13 :seg = 8'b1010_0001; 14 :seg = 8'b1000_0110; 15 :seg = 8'b1000_1110; default : seg = 8'b1000_1110; endcase end endmodule 4、controller module controller (clk,rst_n,addr); input clk; input rst_n; output reg [8:0] addr; parameter T=12_500_000; reg [25:0] cnt; always @(posedge clk or negedge rst_n) begin if(!rst_n) begin cnt<=26'd0; addr<=8'd0; end else begin if(cnt<T-1) cnt<=cnt+1'b1; else begin cnt<=26'd0; if(addr<255) addr<=addr+1'b1; else addr<=8'd0; end end end endmodule 5、translate module translate(clk,rst_n,music_data,music_freq); input clk; input rst_n; input [21:0] music_data; output reg [25:0] music_freq; always @(posedge clk or negedge rst_n) begin if(!rst_n) music_freq<=26'd0; else case(music_data) 1:music_freq<=26'd523;//zhongyin 2:music_freq<=26'd587; 3:music_freq<=26'd659; 4:music_freq<=26'd699; 5:music_freq<=26'd392; 6:music_freq<=26'd880; 7:music_freq<=26'd987; 8:music_freq<=26'd261;//diyin 9:music_freq<=26'd293; 10:music_freq<=26'd329; 11:music_freq<=26'd349; 12:music_freq<=26'd391; 13:music_freq<=26'd440; 14:music_freq<=26'd493; 15:music_freq<=26'd1046;//gaoyin 16:music_freq<=26'd1174; 17:music_freq<=26'd1318; 18:music_freq<=26'd1396; 19:music_freq<=26'd1567; 20:music_freq<=26'd1760; 21:music_freq<=26'd1975; default:music_freq<=26'd0; endcase end endmodule 6、shumaguan module 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 sel_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) ); endmodule 5.总结 其实,音乐播放器用FPGA来实现是很简单的。核心部分就是抓住了乐曲的两个要点:音调的控制和音长的控制。因此,涉及到两个频率,一个用来控制产生相应的音调,一个是用来控制该音调持续的时间(即节拍)。不过因为看不太懂乐谱,因此做得不是太好。其实,能够做的完善和人性化一点,因为声音不只21个音,还有升半调#和降调b,能够加些按键控制,选中某一首歌曲播放。或者还能够经过按键调整模式,能够有自己弹奏乐曲的模式,和音乐自动播放模式,两种模式进行切换。 6.参考文献 1.《EDA技术与VHDL》清华大学出版社 潘松 黄继业; 2.《数字电路EDA入门 VHDL程序实例集》北京邮电大学出版社 张亦华; 3.《VHDL/FPGA应用开发技术与工程实践》科学出版社 甘历; 4.《FPGA系统设计与实践》电子工业出版社 黄智伟。
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:基于FPGA的音乐播放器课程设计.docx
    链接地址:https://www.zixin.com.cn/doc/4419870.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork