EDA 简易音乐播放器设计文档格式.docx
- 文档编号:13896836
- 上传时间:2022-10-14
- 格式:DOCX
- 页数:22
- 大小:111.43KB
EDA 简易音乐播放器设计文档格式.docx
《EDA 简易音乐播放器设计文档格式.docx》由会员分享,可在线阅读,更多相关《EDA 简易音乐播放器设计文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
4.5.1模块引脚11
4.5.2模块功能11
4.5.3VHDL程序12
4.6数字显示模块13
4.6.1模块引脚13
4.6.2模块功能13
4.6.3VHDL程序13
4.7音谱与音高输出模块14
4.7.1模块引脚14
4.7.2模块功能14
4.7.3VHDL程序15
5总电路设计16
5.1总体原理图16
5.2总体功能介绍16
6设计调试体会与总结16
6.1各模块调试仿真16
6.1.1音频编码模块17
6.1.2乐曲储存模块17
6.1.3控制模块17
6.1.4小灯控制模块18
6.1.5数字显示模块18
6.1.6音谱与音高输出模块19
6.2总体硬件验证19
6.2.1管脚锁定19
6.2.2硬件验证20
6.2.3分析20
6.3体会总结20
参考文献22
1引言
《EDA课程设计》(注:
EDA即电子设计自动化,ElectronicsDesignAutomation)是继《模拟电子技术基础》、《数字电子技术基础》、《电子技术基础实验》课程后,电气类、自控类和电子类等专业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一个部分,其目的和任务是通过一周的时间,让学生掌握EDA的基本方法,熟悉一种EDA软件,并能利用EDA软件设计一个电子技术综合问题,并在实验箱上成功下载,为以后进行工程实际问题的研究打下设计基础。
1.通过课程设计使学生能熟练掌握一种EDA软件的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。
2.通过课程设计使学生能利用EDA软件进行至少一个电子技术综合问题的设计,设计输入可采用图形输入法或AHDL硬件描述语言输入法。
3.通过课程设计使学生初步具有分析寻找和排除电子电路中常见故障的能力。
4.通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。
2设计任务及设计要求
设计一个简易硬件播放器并能播放多首音乐(最少四首),可通过按键手动控制音乐播放。
在播放音乐的同时可实现音谱与音高的显示,并通过16个LED小灯显示不同音调的变化。
使用VHDL语言设计音调发生模块,音调编码模块,乐曲存储模块,控制模块,小灯控制模块,数字显示模块,音谱与音高输出模块等各个模块。
3设计原理及总体思路
产生音乐的两个因素是音乐频率和音乐的持续时间,以纯硬件完成演奏电路比利用微处理器(CPU)来实现乐曲演奏要复杂的多如果不借助于功能强大的EDA工具和硬件描述语言,凭借传统的数字逻辑技术,即使最简单的演奏电路也难以实现。
根据设计要求,乐曲硬件演奏电路系统主要由音频发生模块和乐曲存储模块组成。
音频发生模块对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。
乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。
3.1音名与频率的关系
音乐的十二平均率规定:
每两个八度音(如简谱中的中音1与高音1)之间的频率相差一倍.在两个八度音之间,又可分为十二个半音,每两个半音的频率比为4。
另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间,E到F之间为半音,其余为全音,由此可以计算出简谱中从低音1到高音1之间每个音名的频率如表3-1所示。
表3-1简谱中的音名与频率的关系
音名
频率/Hz
低音1
261.63
中音1
532.25
高音1
1046.50
低音2
293.67
中音2
587.33
高音2
1174.66
低音3
329.63
中音3
659.25
高音3
1318.51
低音4
349.23
中音4
698.46
高音4
1396.92
低音5
391.99
中音5
783.99
高音5
1567.98
低音6
440.00
中音6
880.00
高音6
1760.00
低音7
493.88
中音7
987.76
高音7
1975.52
由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频数四舍五入取整。
若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大,若基准频率过高,虽然误码差变小,但分频结构将变大。
实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取舍合适的基准频率。
本例中选取12MHz的基准频率,若无12MHz的时钟频率,实际上,只要各个音名间的相对品频率关系不变,C作1与D作1演奏出的音乐听起来都不会“走调”。
各音阶频率及相应的分频系数如表2所示。
为了减少输出的偶次谐波分量,最后输出到扬声器的波形应为对称方波,因此在到达扬声器之前,有一个二分频的分频器。
表3-2中的分频系数就是从500KHZ频率二分频得到的250KHZ频率基础上计算得出的。
表3-2各音阶频率对应的分频值
初始值
分频系数
773
1274
1410
637
912
1135
1480
567
1036
1011
1542
505
1197
850
1622
425
1290
757
1668
379
1372
675
1728
319
由于最大的分频系数为1274,故采用13位二进制计数器已能满足分频要求。
在表3-2,除给出了分频比以外,给出了对应于各个音阶频率时计数器不同的初始值,对于乐曲中的休止符,要将分频系数设为0,即初始值为2047即可,此时扬声器将不会发声。
对于不同的分频系数,加载不同的初始值即可。
3.2节拍控制原理
该演奏电路演奏的乐曲是“梁祝”等片段,其最小的节拍为1拍。
将1拍的时长定为0.25秒,则需要再提供一个4Hz的时钟频率即可产生1拍的时长,演奏的时间控制通过音符的多次重复的方式来完成。
对于占用时间较长的节拍,如全音符为4拍(重复4),2/4音符为2拍(重复2),1/4音符为1拍(重复1)。
由于乐理规律对于任何一首音乐都是普遍适用的,所以以上原理对于其他三首乐曲同样适用。
4各单元模块的设计
4.1音频发生模块
4.1.1模块引脚
图4-1speaker模块
4.1.2模块功能
如图4-1,en为使能引脚,当en引脚接高电平时speaker模块使能可正常工作。
clk为时钟信号引脚,为speaker模块提供时钟信号。
tone[10..0]为11位的音调初始值信号并行总线,可快速的为speaker模块输送音调初始值信号,保证乐曲演奏的流畅性。
spks为电信号输出引脚,连接蜂鸣器将电信号转化为声信号。
该模块中有一个4位的计数器用于将12MHz时钟信号进行十二分频产生1MHz的基准信号。
一个11位的递增计数器用于赋音调初始值对基准信号进行频,最后进行二分频产生对称方波。
初始值D=计数最大值N-分频系数n
(1)
4.1.3VHDL程序
libraryieee;
useieee.std_logic_1164.all;
entityspeakeris
port(
en:
instd_logic;
clk:
tone:
inintegerrange0to16#7ff#;
--"
2047"
spks:
outstd_logic);
endspeaker;
architecturebehavofspeakeris
signalpreclk:
std_logic;
signalfullspks:
begin
divideclk:
process(clk)--12分频
variablecount4:
integerrange0to15;
begin
preclk<
='
0'
;
ifcount4>
11then
preclk<
1'
count4:
=0;
elsifclk'
eventandclk='
then
count4:
=count4+1;
endif;
endprocess;
genspks:
process(preclk,tone)--"
preclk=1MHZ"
variablecount11:
integerrange0to16#7ff#;
begin
ifpreclk'
eventandpreclk='
then--频率控制
ifcount11=16#7ff#then--b"
111,1111,1111"
count11:
=tone;
--初始值D=计数最大值N-分频系数n
fullspks<
elsecount11:
=count11+1;
endif;
delay:
process(fullspks)--"
fullspks=488.2815HZ"
二分频
variablecount2:
iffullspks'
eventandfullspks='
count2:
=notcount2;
ifen='
then
spks<
--gaile
elsifcount2='
else
spks<
spks=244.14075HZ"
endbehav;
4.2音频编码模块
4.2.1模块引脚
图4-2tonetaba模块
4.2.2模块功能
如图4-2,index[3..0]为4位的音符输入并行总线,用于为tonetaba模块输送音符信号。
tone[10..0]为11位的音调初始值信号输出并行总线,为speaker模块提供音调初始值信号。
code[3..0]为4位的音谱输出并行总线,为SELTIME模块提供音谱信号。
high[1..0]为2位的音高输出并行总线,为SELTIME模块提供音高信号。
该模块将输入的音符信号转化为音调初始值(tone),对应的音谱(code)及音高(high)并
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 简易音乐播放器设计 简易 音乐 播放 设计