基于FPGA的音乐播放器设计.docx
- 文档编号:6041948
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:35
- 大小:383.25KB
基于FPGA的音乐播放器设计.docx
《基于FPGA的音乐播放器设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的音乐播放器设计.docx(35页珍藏版)》请在冰豆网上搜索。
基于FPGA的音乐播放器设计
唐山学院
欧阳歌谷(2021.02.01)
《EDA技术》课程设计
题目音乐播放器
系(部)智能与信息工程学院
班级14电信2班
姓名张洪达
学号
指导教师魏明哲张银蒲
12月19日至12月30日共2周
12月30日
《EDA技术》课程设计任务书
一、设计题目、内容及要求
1.设计题目:
《音乐播放器》
设计内容:
1.使用蜂鸣器播放音乐
2.三首音乐以上
3.数码管上显示以后播放的歌曲位置(第几首歌曲)
2.设计要求:
(1)根据任务要求确定电路各功能模块;
(2)写出设计法度;
(3)给出时序仿真结果;
(4)最后要有设计总结。
二、设计原始资料
QuartusⅡ软件;EDA实验箱;计算机一台;
三、要求的设计功效(课程设计说明书、设计实物、图纸等)
课程设计说明书1份,很多于2000字,应包含设计原理阐发、相关软件介绍、仿真波形阐发,实验箱下载验证等。
四、进程安插
周一、二:
查找资料,进行计划论证;
周三、四:
编写法度、完成模块仿真;
周五、一:
硬件调试与完善;
周二、三:
设计说明书的撰写与修改;
周四、五:
辩论。
五、主要参考资料
[1]潘松,黄继业,潘明.《EDA技术实用教程》——VerilogHDL版(第五版).科学出版社,.11
[2]潘松,黄继业.《EDA技术实用教程》(第二版).科学出版社,.2
[3]焦素敏.《EDA应用技术》.清华年夜学出版社,.4
指导教师(签名):
教研室主任(签名):
《EDA技术》成果评定表
出勤
情况
出勤天数
缺勤天数
成
绩
评
定
出勤情况及设计过程表示(20分)
课设辩论(20分)
说明书(20分)
设计功效(40分)
总成果(100分)
提问
(辩论)
问题
情况
综
合
评
定
指导教师签名:
年月日
前言................................................................................................................................1
1设计原理阐发.............................................................................................................2
1.1设计任务.................................................................................................................2
1.2设计要求.................................................................................................................2
2软件介绍....................................................................................................................3
2.1VerilogHDL相关介绍...........................................................................................3
2.2QuartusⅡ相关介绍.............................................................................................3
3总体设计....................................................................................................................5
3.1总体结构.................................................................................................................5
3.2设计原理.................................................................................................................5
4主要模块功能的设计.................................................................................................7
4.1顶层模块................................................................................................................7
4.2数码管显示模块.....................................................................................................7
4.2.1分频器模块........................................................................................................7
4.2.2位选模块............................................................................................................8
4.2.3滚动模块............................................................................................................8
4.2.4转换模块............................................................................................................9
4.3蜂鸣器块................................................................................................................9
4.3.1选址模块............................................................................................................9
4.3.2存储器模块......................................................................................................10
4.3.3译码器模块......................................................................................................10
4.3.4显示控制模块..................................................................................................11
5法度调试运行..........................................................................................................12
5.1seg7_drive的验证.................................................................................................12
5.2:
beep的软件验证................................................................................................13
6硬件仿真..................................................................................................................15
6.1引脚设置...............................................................................................................15
6.2硬件调试...............................................................................................................15
7总结..........................................................................................................................17
参考文献......................................................................................................................18
附录..............................................................................................................................19
前言
随着电子技术的飞速成长,微电子技术的进步主要表示在年夜规模集成电路加工技术即半导体工艺技术的成长上,使得本征半导体的工艺水平的线宽已经达到了60nm,并在不竭地缩小,面在硅片单位面积上,集成了更多的晶体管。
集成电路设计正在不竭地向超年夜规模,极低功耗和超高速的标的目的成长,电子产品的功能越来越强年夜,体积越来越小,功耗越来越低。
顺应电子技术的成长趋势,可编程逻辑器件和EDA 技术使设计办法产生了质的变更。
把以前“电路设计+硬件搭试+调试焊接”转化为“功能设计+软件模拟+仿真下载”。
利用EDA 开发平台,采取可编程逻辑器件FPGA 使硬件的功能可通过编程来实现,这种新的基于芯片的设计办法能够使设计者有更多机会充分阐扬创作创造性思维,实现多种庞杂数字逻辑系统的功能,将原来由电路板设计完成的工作放到芯片的设计中进行,减少了连线和体积,提高了集成度,降低了干扰,年夜年夜减轻了电路设计和PCB设计的工作量和难度,增强了设计的灵活性,有效地提高了工作效率,增加了系统的可靠性和稳定性,提高了技术指标。
这些技术使得各种电子产品迅速的进入了我们的生活,我们处在一个被电子产品深度包抄的时代,在一个普通老苍生的家里,衣食住行,每一个产品的出生都离不开EDA技术,从黑色电视机,到智能冰箱,到全自动洗衣机,电饭煲,到微波炉,电磁炉,电子琴,再到个人随身用的手机,MP3音乐播放器都需要EDA技术提供支持。
本文应用VerilogHDL硬件描述语言,设计一个音乐播放器,它能将预先设置存储好的乐曲自动播放出来,下面对乐曲播放电路的设计与实现中涉及的EDA技术,以及EDA技术中经常使用的开发器件FPGA可编程逻辑器件,开发语言VerilogHDL以及开发软件QuartusⅡ作简单介绍。
1设计原理阐发
1.1设计任务
本课题要求设计音乐播放器,能实现基本的播放音乐的功能。
1.2设计要求
设计一个简易的音乐播放系统,使其下载到电路板上使,能使蜂鸣器播放音乐。
在可以使蜂鸣器播放音乐的基础上,增加播放音乐的数量,要求播放的音乐在三首以上。
在数码管上显示以后播放的音乐是第几首,并使播放的音乐在数码管显示屏上进行滚动(例如,当播放第一首歌曲使,数码管显示000001,并且1由右向左依次显示,其余位置为0),当蜂鸣器播放下一首歌时,数码管的显示可以立即加一,并且仍然由右向左滚动。
2软件介绍
2.1VerilogHDL相关介绍
VerilogHDL是一种硬件描述语言(HDL:
HardwareDiscriptionLanguage),是一种用文本形式来描述数字系统硬件的结构和行为的语言,用它可以暗示逻辑电路图、逻辑表达式,还可以暗示数字逻辑系统所完成的逻辑功能。
用于从算法级、门级到开关级的多种笼统设计条理的数字系统建模。
被建模的数字系统对象的庞杂性可以介于简单的门和完整的电子数字系统之间。
数字系统能够按条理描述,并可在相同描述中显式地进行时序建模。
VerilogHDL语言具有下述描述能力:
设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。
所有这些都使用同一种建模语言。
另外,VerilogHDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部拜访设计,包含模拟的具体控制和运行。
VerilogHDL语言不但界说了语法,并且对每个语法结构都界说了清晰的模拟、仿真语义。
因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。
语言从C编程语言中继承了多种操纵符和结构。
VerilogHDL提供了扩展的建模能力,其中许多扩展最初很难理解。
可是,VerilogHDL语言的核心子集很是易于学习和使用,这对年夜大都建模应用来说已经足够。
固然,完整的硬件描述语言足以对从最庞杂的芯片到完整的电子系统进行描述。
VerilogHDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开收回来的。
现在,随着系统级FPGA以及片上系统的呈现,软硬件协同设计和系统设计变得越来越重要。
传统意义上的硬件设计越来越倾向于与系统设计和软件设计相结合。
2.2QuartusⅡ相关介绍
QuartusII是Alera公司推出的一款功能强年夜,兼容性最好的EDA工具软件。
该软件界面友好、使用便捷、功能强年夜,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言及有多种高级编程语言接口等特点。
QuartusII是Altera公司推出的CPLD/FPGA开发工具,QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包含:
可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保管为设计实体文件;芯片平面规划连线编辑;功能强年夜的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;按时/时序阐发与关键路径延时阐发;可使用SignalTapII逻辑阐发工具进行嵌入式的逻辑阐发;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方法可一次完成整体设计流程;自动定位编译毛病;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
QuanusⅡ设计的主要流程有:
创建工程、设计输入、编译、仿真验证、下载,其进行数字电路设计的一般流程如图11所示。
图11QuanusⅡ一般流程图
当我们装置完成QuartusⅡ后,双击桌面上的QuartusⅡ图标,迎接我们的就是图12所示的开发环境。
图12QuartusⅡ开发环境
这个环境包含了几部额外容:
最上面的菜单项和工具栏,左边的两个窗口为工程浏览窗口和进度窗口,下面的窗口为信息窗口。
利用QuartusⅡ进行原理图设计的优点是,设计者不必具有许多诸如编译技术、硬件语言等新知识就能迅速入门,完成较年夜规模的电路系统设计
3总体设计
3.1总体结构
音乐播放器的系统方框图如图31所示,本设计是一种采取FPGA芯片进行音乐播放器,主要由蜂鸣器模块、数码管显示控制模块、译码器模块、存储器模块等模块组成。
图31设计框图
3.2设计原理
根据设计要求,系统的输入信号:
时钟脉冲clk,复位信号rst_n;输出信号:
音乐播放器播放的音乐beep,控制数码管的seg和sel。
声音的频谱规模约在几十到几千赫兹,若能利用法度来控制FPGA某个引脚输出一定频率的矩形波,接上蜂鸣器就能收回相应频率的声音。
乐曲中的每一音符对应着一个确定的频率,要想FPGA收回不必音符的音调,实际上只要控制它输出相应音符的频率即可。
乐曲都是由一连串的音符组成,因此依照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地收回各个音符的音调。
而要准确地演奏出一首乐曲,仅仅让扬声器能够发声是不敷的,还必须准确地控制乐曲的节奏,即乐曲中每个音符的产生频率及其继续时间是乐曲能够连续演奏的两个重要因素。
每个音符对应的频率如下图32所示:
图32每个音符对应的频率
4主要模块功能的设计
4.1顶层模块
顶层模块只要是实现通过FPGA中的结构建模,把每个模块例化过来,将每个模块连接起来。
其产生原理是:
命名顶层文件名为beep,通过例化把选址模块controller,存储器模块my_rom,乐谱产生模块translate,分频模块dir_freq,显示控制模块show_controller,数码管seg7_drive连接起来,以实现让蜂鸣器播放三首以上音乐,且数码管循环显示以后所播放音乐为第几首。
4.2数码管显示模块
数码管是一种发光的半导体器件,其基本单位式发光二极管。
数码管可分为七段数码管和八段数码管,八段数码管比七段数码管多一个用于显示小数点的发光二极管单位DP。
数码管特点:
1.一个数码管可暗示任意一个4位二进制;
2.可分共阴和共阳且本开发板上低电平有效
3.可静态,静态显示;
4.静态扫描频率为1KHZ;
5.根据视觉暂留效果可显示数字。
数码管的实现原理:
输入信号为:
时钟脉冲clk,复位信号rst_n,位选信号sel,段码seg.依次经过分频器模块,滚动模块,位选模块,转换模块来实现。
下图为共阴极数码管的电路图和引脚图:
图41共阴极数码管
4.2.1分频器模块
分频器模块的功能为产生所需要的频率。
其原理是系统输入信号时钟脉冲clk,复位信号rst_n。
例如:
频率是1MHZ,则周期是1000ns,如果占空比为50%,则高低电平每500ns变反一次。
如果设所需脉冲频率为freq,则获得所要脉冲的计数个数NUM为:
实现框图如图42所示:
42分频器模块实现框图
4.2.2位选模块
位选模块的功能是用来控制那个数码管亮灭。
要使数码管同时亮,可以先让第一个数码管亮,在让第一个数码管灭,第二个数码管亮,因为人眼视觉暂留效果,只要每个数码管灭的时间足够短,我们就可以看到六个数码管是同时亮着的。
其产生原理:
系统的输入信号有:
时钟脉冲clk,复位信号rst_n,6个数码管可显示的24位数data;系统输出信号有:
控制那个数码管亮灭的位选信号sel,每个数码管显示的4位二进制数show_data。
当每个时钟上升沿到来时,位选信号初始为3’b000,位选信号每到上升沿来时加一,直到位选信号即是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]位。
实现框图如图43所示:
43位选模块实现框图
4.2.3滚动模块
滚动模块功能是使音乐播放器所播放的第几首歌的数字在数码管上显示,并由右向左滚动,且其余位置显示0。
其产生原理:
该模块输入信号:
时钟脉冲clk,复位信号rst_n,要输出的以后歌曲位置data2;输出信号:
6个数码管要显示的24位数data.
当要输出第一首歌位置时,应使初始data<=24’h000001,下一秒使data<=24’000010。
即每增加一秒让data输出的1左移一位。
实现框图如图44所示:
44滚动模块实现框图
4.2.4转换模块
转换模块功能为把数码管要显示的四位二进制数转换成七段数码管的段码。
其产生原理:
该模块的输入信号:
数码管要显示的四位二进制数show_data;输出信号:
七段数码管的段码seg。
例:
当show_data=0时seg=8'b1100_0000;
实现框图如图45所示:
45转换模块实现框图
4.3蜂鸣器模块
蜂鸣器模块功能是实现让蜂鸣器播放三首以上的乐曲。
其实现原理:
输入信号为时钟信号clk和复位信号rst_n,中间经过选址模块,存储器模块,乐谱产生模块,显示控制模块,以及数码管显示模块,输出信号为音符对应的频率信号beep(clk_out)和数码管显示信号seg和sel。
4.3.1选址模块
选址模块功能为法度存储器rom中所存储的数据分派地址。
其实现原理:
输入信号clk,rst_n;输出信号addr。
每一个时钟上升沿到来时,先判断时间是否已经记满到12.5ms,若已记满,再判断地址是否小于255,若小于,则地址加1,直到加到255,频频循环。
实现模块如图46所示:
图46选址模块实现框图
4.3.2存储器模块
存储器模块功能式实现对音乐音符的存储,每个音符对应一个地址,地址来源于选址模块的地址。
其实现原理:
输入信号clk,addr,输出信号为q,将所需要的乐谱音符存入到存储器my_rom中,然后将存储音符输出。
例如在存储器的064存储两只老虎的音符:
图47存储器的064存储两只老虎的音符
实现模块如图48所示:
48存储器模块实现框图
4.3.3译码器模块
译码器模块功能为将存储器输出的音符译码成每个音符所对应的频率输出给分频器模块。
其实现原理:
输入信号为时钟信号clk,复位信号rst_n,音符信号music_data。
输出信号为music_freq信号。
在每一个时钟上升沿到来之后,经过一个case,endcase选择语句,对music_data进行选择,输出一个对应音符的频率。
实现模块如图49所示:
49译码器模块实现框图
4.3.4显示控制模块
显
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 音乐 播放 设计