欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:16491978       资源大小:135.74KB        全文页数:18页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、基于某FPGA的音乐播放器课程设计 唐 山 学 院 EDA技术 课 程 设 计 题 目 音乐播放器 系 (部) 智能与信息工程学院 班 级 姓 名 学 号 指导教师 2016 年 12 月 22 日至 12 月 30 日 共 2 周 2016年 12 月 31 日课程设计成绩评定表出勤情况出勤天数 缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)设计成果(60分)总成绩(100分)提问(答辩)问题情况综合评定 指导教师签名: 年 月 日 EDA技术 课程设计任务书一、设计题目、容及要求设计题目:音乐播放器设计容:1. 使用蜂鸣器播放音乐2. 三首音乐以上3. 数码管上显示当前

    2、播放的歌曲位置(第几首歌曲)4. 能够暂停和开始5. 能够选择上一首和下一首歌曲设计要求:(1)根据任务要求确定电路各功能模块(2)设计程序(3)时序仿真结果(4)设计总结2、设计原始资料 Quartus软件;EDA实验箱;计算机一台;3、要求的设计成果(课程设计说明书、设计实物、图纸等) 课程设计说明书1份,不少于2000字,应包含设计原理分析、相关软件介绍、仿真波形分析,实验箱下载验证等。4、进程安排设计思路代码实现实验验证五、主要参考资料 徐志军,徐光辉,CPLD/FPGA的开发与应用,电子工业,2001 谭会生,EDA技术基础,大学,2004 岩,黄夫海,基于FPGA的MIDI音乐发生

    3、器设计,2010 指导教师(签名):教研室主任(签名):1.设计目的与要求 1.1课程设计目的:1)加深对EDA技术的理解,掌握音乐播放器的工作原理2)了解怎样控制音调的高低变化和音长,从而完成乐曲的自动循环演奏。3)培养自主学习、正确分析和解决问题的能力 1.2课程设计要求:1)使用蜂鸣器播放音乐2)三首音乐以上3)数码管上显示当前播放的歌曲位置(第几首歌曲)4)能够暂停和开始5)能够选择上一首和下一首歌曲2.应用工具介绍作为当今最流行的计算机软件系统,EDA技术是以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。EDA可提供文本输入

    4、以及图形编辑的方法将设计者的意图用程序或者图形方式表达出来,而我们经常用到的VHDL语言便是用于编写源程序所需的最常见的硬件描述语言(HDL)之一。2.1 EDA技术介绍EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来。EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。EDA技术就是以计算机为工具

    5、,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。也就是说,综合器是软件描述与硬件实现的一座桥梁。综合过程就

    6、是将电路的高级语言描述转换低级的、可与目标器件FPGA/CPLD相映射的网表文件。 在今天,EDA技术已经成为电子设计的普遍工具,无论设计芯片还是设计系统,没有EDA工具的支持,都是难以完成的。EDA工具已经成为设计师必不可少的武器,起着越来越重要的作用。从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。EDA技术发展迅猛,完全可以用日新月异来描述。EDA技术的应用广泛,现在已涉及到各行各业。EDA水平不断提高,设计工具趋于完美的地步。2.2 Verilog HDL语言介绍Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计

    7、层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。 作为一种通用化的硬件描述语言,Verilog HDL语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型

    8、能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语句足以对从最复杂的芯片到完整的电子系统进行描述。Verilog HDL语言已经成为一种标准的硬件描述语言。它具有以下特点:(1)作为一种多用途的硬件描述语言,它具有很好的易学性和易用性。(2)Verilog HDL语言允许在同一个模块中进行不同抽象层次的描述。(3)大多数逻辑综合工具都支持Verilog HDL,使得它成为设计人员的

    9、一个很好的选择。(4)所有的制造厂商都提供了Verilog HDL的工艺库,用以支持仿真。(5)Verilog HDL的程序语言接口拥有强大的功能,允许用户用C语言对部 数据结构进行描述。正是以上优点,使得Verilog HDL语言广泛流行。下面是verilog的设计流程:Verilog的设计流程图3.基本原理 音乐播放器的原理是这样的:组成乐曲的每个音符的频率值(音调)及其持续的时间(音长)是乐曲能连续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号频率的高低和持续的时间,就可以使扬声器发出连续的乐曲声。3.1音调的控制频率的高低决定了音调的高低。音乐的十二平均率规定:每两个8度音

    10、(如 简谱中的中音1与高音1)之间的频率相差一倍。在两个8度音之间,又可分为12个半音,每两个半音的频率比为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高音5

    11、1568低音6440中音6880高音61760低音7493.9中音7987.8高音71975.53.2音长的控制音符的持续时间必须根据乐曲的速度及每个音符的节拍数来确定。 4.方案实现1、div_freqmodule 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 reg25:0 cnt; always (posedge clk or negedge rst_n) begin if(

    12、!rst_n) begin cnt=26d0; clk_out=1b0; end else begin if(cntNUM) begin cnt=cnt+1b1; clk_out=clk_out; end else begin clk_out=clk_out; cnt=26d0; 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; al

    13、ways (posedge clk or negedge rst_n) begin if(!rst_n) begin sel = 3b000; end else begin if(sel 3b101) sel = sel + 1b1; else sel = 3b000; end end always (*) begin case(sel) 3b000 :show_data = data23:20; 3b001 :show_data = data19:16; 3b010 :show_data = data15:12; 3b011 :show_data = data11:8; 3b100 :sho

    14、w_data = data7:4; 3b101 :show_data = data3:0; default : show_data = 4hf; endcase end endmodule3、segmodule seg(show_data,seg); input 3:0 show_data; output reg 7:0 seg; always (*) begin case(show_data) 0 :seg = 8b1100_0000; 1 :seg = 8b1111_1001; 2 :seg = 8b1010_0100; 3 :seg = 8b1011_0000; 4 :seg = 8b1

    15、001_1001; 5 :seg = 8b1001_0010; 6 :seg = 8b1000_0010; 7 :seg = 8b1111_1000; 8 :seg = 8b1000_0000; 9 :seg = 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; endcase enden

    16、dmodule 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=26d0; addr=8d0; end else begin if(cntT-1) cnt=cnt+1b1; else begin cnt=26d0; if(addr255) addr=ad

    17、dr+1b1; else addr=8d0; 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=26d0; else case(music_data) 1:music_freq=26d523;/zh

    18、ongyin 2: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;/diyin 9: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_

    19、freq=26d1046;/gaoyin 16:music_freq=26d1174; 17:music_freq=26d1318; 18:music_freq=26d1396; 19:music_freq=26d1567; 20:music_freq=26d1760; 21:music_freq=26d1975; default:music_freq=26d0; endcase end endmodule6、shumaguan module shumaguan(data,clk,rst_n,sel,seg); input 23:0 data; input clk; input rst_n;

    20、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.总

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


    注意事项

    本文(基于某FPGA的音乐播放器课程设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开