ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:168KB ,
资源ID:11142542      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11142542.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的音乐播放器设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、基于FPGA的音乐播放器设计唐 山 学 院 EDA技术 课 程 设 计 题 目 音乐播放器 系 (部) 智能与信息工程学院 班 级 14电信2班 姓 名 张洪达 学 号 指导教师 魏明哲 张银蒲 2016 年 12 月 19 日至 12月 30 日 共 2 周2016年 12 月 30 日EDA技术 课程设计任务书一、设计题目、内容及要求1. 设计题目:音乐播放器设计内容:1. 使用蜂鸣器播放音乐2. 三首音乐以上3. 数码管上显示当前播放的歌曲位置(第几首歌曲)2. 设计要求:(1) 根据任务要求确定电路各功能模块; (2) 写出设计程序;(3) 给出时序仿真结果; (4) 最后要有设计总结

2、。二、设计原始资料Quartus软件;EDA实验箱;计算机一台;三、要求的设计成果(课程设计说明书、设计实物、图纸等)课程设计说明书1份,不少于2000字,应包含设计原理分析、相关软件介绍、仿真波形分析,实验箱下载验证等。四、进程安排周一、二:查找资料,进行方案论证;周三、四:编写程序、完成模块仿真; 周五、一:硬件调试与完善; 周二、三:设计说明书的撰写与修改;周四、五:答辩。五、主要参考资料1 潘松,黄继业,潘明.EDA技术实用教程Verilog HDL版(第五版).科学出版社,2013.112 潘松,黄继业.EDA技术实用教程(第二版).科学出版社,2005.23 焦素敏.EDA应用技术

3、.清华大学出版社,2002.4指导教师(签名):教研室主任(签名): EDA技术成绩评定表出勤情况出勤天数 缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)说明书(20分)设计成果(40分)总成绩(100分)提问(答辩)问题情况综合评定 指导教师签名: 年 月 日前言.11设计原理分析.21.1设计任务.21.2设计要求.22 软件介绍.32.1 Verilog HDL相关介绍.32.2 Quartus相关介绍.3 3 总体设计.53.1总体结构.53.2设计原理.54主要模块功能的设计.74.1 顶层模块.74.2数码管显示模块.74.3 蜂鸣器块.95 程序调试运行.12

4、5.1 seg7_drive的验证.125.2:beep的软件验证.136 硬件仿真.156.1引脚设置.156.2硬件调试.157 总结.17参考文献.18附录.19前言随着电子技术的飞速发展,微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,使得本征半导体的工艺水平的线宽已经达到了60nm,并在不断地缩小,面在硅片单位面积上,集成了更多的晶体管。集成电路设计正在不断地向超大规模,极低功耗和超高速的方向发展,电子产品的功能越来越强大,体积越来越小,功耗越来越低。?顺应电子技术的发展趋势,可编程逻辑器件和EDA?技术使设计方法发生了质的变化。把以前“电路设计+硬件搭试+

5、调试焊接”转化为“功能设计+软件模拟+仿真下载”。利用EDA?开发平台,采用可编程逻辑器件FPGA?使硬件的功能可通过编程来实现,这种新的基于芯片的设计方法能够使设计者有更多机会充分发挥创造性思维,实现多种复杂数字逻辑系统的功能,将原来由电路板设计完成的工作放到芯片的设计中进行,减少了连线和体积,提高了集成度,降低了干扰,大大减轻了电路设计和PCB设计的工作量和难度,增强了设计的灵活性,有效地提高了工作效率,增加了系统的可靠性和稳定性,提高了技术指标。?这些技术使得各种电子产品迅速的进入了我们的生活,我们处在一个被电子产品深度包围的时代,在一个普通老百姓的家里,衣食住行,每一个产品的诞生都离不

6、开EDA技术,从彩色电视机,到智能冰箱,到全自动洗衣机,电饭煲,到微波炉,电磁炉,电子琴,再到个人随身用的手机,MP3音乐播放器都需要EDA技术提供支持。?本文应用Verilog HDL硬件描述语言,设计一个音乐播放器,它能将预先设置存储好的乐曲自动播放出来,下面对乐曲播放电路的设计与实现中涉及的EDA技术,以及EDA技术中常用的开发器件FPGA可编程逻辑器件,开发语言Verilog HDL以及开发软件Quartus 作简单介绍。1 设计原理分析1.1设计任务本课题要求设计音乐播放器,能实现基本的播放音乐的功能。1.2设计要求设计一个简易的音乐播放系统,使其下载到电路板上使,能使蜂鸣器播放音乐

7、。在可以使蜂鸣器播放音乐的基础上,增加播放音乐的数量,要求播放的音乐在三首以上。在数码管上显示当前播放的音乐是第几首,并使播放的音乐在数码管显示屏上进行滚动(例如,当播放第一首歌曲使,数码管显示000001,并且1由右向左依次显示,其余位置为0),当蜂鸣器播放下一首歌时,数码管的显示可以立即加一,并且仍然由右向左滚动。2 软件介绍2.1 Verilog HDL相关介绍Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种用文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成

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

9、此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。Verilog HDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。现在,随着系统级FPGA以及片上系统的出现,软硬件协同设计和系统设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计和软件设计相结合。2.2 Q

10、uartus相关介绍 Quartus II 是Alera公司推出的一款功能强大,兼容性最好的EDA工具软件。该软件界面友好、使用便捷、功能强大,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言及有多种高级编程语言接口等特点。Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片平面布局连线编辑;功能

11、强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。Quanus设计的主要流程有:创建工程、设计输入、编译、仿真验证、下载,其进行数字电路设计的一般流程如图1-1所示。 图1-1 Quanus一般流程图当我们安装

12、完成Quartus后,双击桌面上的Quartus图标,迎接我们的就是图1-2所示的开发环境。图1-2 Quartus开发环境这个环境包含了几部分内容:最上面的菜单项和工具栏,左边的两个窗口为工程浏览窗口和进度窗口,下面的窗口为信息窗口。利用Quartus进行原理图设计的优点是,设计者不必具有许多诸如编译技术、硬件语言等新知识就能迅速入门,完成较大规模的电路系统设计3 总体设计3.1总体结构音乐播放器的系统方框图如图3-1所示,本设计是一种采用FPGA芯片进行音乐播放器,主要由蜂鸣器模块、数码管显示控制模块、译码器模块、存储器模块等模块组成。图3-1 设计框图3.2设计原理根据设计要求,系统的输

13、入信号:时钟脉冲clk,复位信号rst_n;输出信号:音乐播放器播放的音乐beep,控制数码管的seg和sel。声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA某个引脚输出一定频率的矩形波,接上蜂鸣器就能发出相应频率的声音。乐曲中的每一音符对应着一个确定的频率,要想FPGA发出不用音符的音调,实际上只要控制它输出相应音符的频率即可。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让扬声器能够发声是不够的,还必须准确地控制乐曲的节奏,即乐曲中每个音符的发生频率及其持续时间是乐曲能够连续

14、演奏的两个重要因素。每个音符对应的频率如下图3-2所示:图3-2 每个音符对应的频率4主要模块功能的设计4.1 顶层模块顶层模块只要是实现通过FPGA中的结构建模,把每个模块例化过来,将每个模块连接起来。其产生原理是:命名顶层文件名为beep,通过例化把选址模块controller,存储器模块my_rom,乐谱产生模块translate,分频模块dir_freq,显示控制模块show_controller,数码管seg7_drive连接起来,以实现让蜂鸣器播放三首以上音乐,且数码管循环显示当前所播放音乐为第几首。4.2数码管显示模块数码管是一种发光的半导体器件,其基本单元式发光二极管。数码管可

15、分为七段数码管和八段数码管,八段数码管比七段数码管多一个用于显示小数点的发光二极管单元DP。数码管特点:1.一个数码管可表示任意一个4位二进制;2.可分共阴和共阳且本开发板上低电平有效 3.可动态,静态显示; 4.动态扫描频率为1KHZ; 5.根据视觉暂留效果可显示数字。数码管的实现原理:输入信号为:时钟脉冲clk,复位信号rst_n,位选信号sel,段码seg.依次经过分频器模块,滚动模块,位选模块,转换模块来实现。下图为共阴极数码管的电路图和引脚图:图4-1 共阴极数码管分频器模块的功能为产生所需要的频率。其原理是系统输入信号时钟脉冲clk,复位信号rst_n。例如:频率是1MHZ,则周期

16、是1000ns,如果占空比为50%,则高低电平每500ns 变反一次。如果设所需脉冲频率为freq,则得到所要脉冲的计数个数NUM为:实现框图如图4-2所示:4-2 分频器模块实现框图位选模块的功能是用来控制那个数码管亮灭。要使数码管同时亮,可以先让第一个数码管亮,在让第一个数码管灭,第二个数码管亮,因为人眼视觉暂留效果,只要每个数码管灭的时间足够短,我们就可以看到六个数码管是同时亮着的。其产生原理:系统的输入信号有:时钟脉冲clk,复位信号rst_n,6个数码管可显示的24位数data;系统输出信号有:控制那个数码管亮灭的位选信号sel,每个数码管显示的4位二进制数show_data。当每个

17、时钟上升沿到来时,位选信号初始为3b000,位选信号每到上升沿来时加一,直到位选信号等于5。且第零个数码管输出show_data为data的23:20位,第一个数码管输出show_data为data的19:16位,第二个数码管输出show_data为data的15:12位,第三个数码管输出show_data为data的11:8位,第四个数码管输出show_data为data的7:4位,第五个数码管输出show_data为data的3:0位。实现框图如图4-3所示:4-3 位选模块实现框图滚动模块功能是使音乐播放器所播放的第几首歌的数字在数码管上显示,并由右向左滚动,且其余位置显示0。其产生原理

18、:该模块输入信号:时钟脉冲clk,复位信号rst_n,要输出的当前歌曲位置data2;输出信号:6个数码管要显示的24位数data.当要输出第一首歌位置时,应使初始data=24h000001,下一秒使data=24000010。即每增加一秒让data输出的1左移一位。实现框图如图4-4所示:4-4 滚动模块实现框图转换模块功能为把数码管要显示的四位二进制数转换成七段数码管的段码。其产生原理:该模块的输入信号:数码管要显示的四位二进制数show_data;输出信号:七段数码管的段码seg。例:当show_data=0时seg=8b1100_0000;实现框图如图4-5所示:4-5 转换模块实现

19、框图4.3 蜂鸣器模块蜂鸣器模块功能是实现让蜂鸣器播放三首以上的乐曲。其实现原理:输入信号为时钟信号clk和复位信号rst_n,中间经过选址模块,存储器模块,乐谱产生模块,显示控制模块,以及数码管显示模块,输出信号为音符对应的频率信号beep(clk_out)和数码管显示信号seg和sel。选址模块功能为程序存储器rom中所存储的数据分配地址。其实现原理:输入信号clk,rst_n;输出信号addr。每一个时钟上升沿到来时,先判断时间是否已经记满到12.5ms,若已记满,再判断地址是否小于255,若小于,则地址加1,直到加到255,反复循环。实现模块如图4-6所示:图4-6 选址模块实现框图存

20、储器模块功能式实现对音乐音符的存储,每个音符对应一个地址,地址来源于选址模块的地址。其实现原理:输入信号clk,addr,输出信号为q,将所需要的乐谱音符存入到存储器my_rom中,然后将存储音符输出。例如在存储器的0-64存储两只老虎的音符:图4-7 存储器的0-64存储两只老虎的音符实现模块如图4-8所示:4-8 存储器模块实现框图译码器模块功能为将存储器输出的音符译码成每个音符所对应的频率输出给分频器模块。其实现原理:输入信号为时钟信号clk,复位信号rst_n,音符信号music_data。输出信号为music_freq信号。在每一个时钟上升沿到来之后,经过一个case,endcase

21、选择语句,对music_data进行选择,输出一个对应音符的频率。实现模块如图4-9所示:4-9 译码器模块实现框图显示控制模块功能为将显示的歌曲数目对应的显示在七段数码管,让七段数码管的数据循环显示。其实现原理:输入信号为时钟信号clk,复位信号rst_n, 地址信号addr。输出信号为输入到数码管的数据显示信号data1。在每一个时钟信号到来之后,通过if语句的嵌套语句来判断输入信号的地址addr来决定输出给数码管的数据data1,再通过例化与数码管显示模块连接起来。实现模块如图4-10所示:4-10 显示控制模块实现框图5 程序调试运行5.1 seg7_drive的验证激励程序如下:ti

22、mescale 1ns/1ps module seg7_drive_tb; reg clk; reg rst_n; reg 23:0 data; wire 2:0 sel; wire 7:0seg;initial begin clk=1b1; rst_n=1b0; data=24h234567; #200.1 rst_n=1b1; #10_000 $stop; end always #10 clk=clk;seg7_drive seg7_drive_dut( .clk(clk), .rst_n(rst_n), .data(data), .sel(sel), .seg(seg) );endmodule仿真图如图5-1所示:5-1 seg7_drive仿真框图5.2:beep的软件验证激励程序程序如下:timescale 1ns/1psmodule controller_tb; reg clk; reg rst_n; reg en; wire 7:0 addr; initial begin clk=1b1; rst_n=1b0; en=1b0; #200.1 rst_n=1b1; #234 en=1b1; #3000 en=1b0; #2000 en=1b1; #4000 $stop; end always #10 clk=clk; controller

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1