《音乐盒的实现》实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《EDA技术与应用》实验8——课程设计
音乐盒的实现
摘要(简要介绍设计目的,方法及实验完成情况)
现在的很多装饰品上都会用到八音盒,八音盒的种类也越来越多,但是基本原理都是相同的,音乐盒的实现也给我们的生活带来了很多乐趣。
EDA在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。在教学方面,几乎所有理工科类的高校都开设了EDA课程。主要是让学生了解EDA的基本概念和基本原理、掌握用HDL语言编写规范、掌握逻辑综合的理论和算法、使用EDA工具进行电子电路课程的实验验证并从事简单系统的设计。一般学习电路仿真工具和PLD开发工具,为今后工作打下基础。
本实验是使用verillog HDL设计的一个可以演奏梁祝的音乐盒,程序经过调试和下载后,可在实验箱上实现开始和复位功能。
一设计任务与要求
1.1设计任务
(1)使用Verilog HDL 设计一个可以演奏梁祝的音乐盒;
(2)输入为2 个按键,实现复位和开始;
(3)输出为GW48 实验箱的扬声器;
(4)查阅相关资料,明确音符和频率的对应关系,根据梁祝的乐谱设计Verilog 程序,完成音乐盒的制作。
1.2 设计要求
1、设计正确,方案合理。界面友好,使用方便。程序精炼,结构清晰。
2、有详细的文档。包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。
二系统方案设计
2.1工作原理
组成乐曲的每个音符的频率值(音调)及其持续的时间(音长)是乐曲能连续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号频率的高低和持续的时间,就可以使扬声器发出连续的乐曲声。
2.2 基本设计思想
(1)根据系统的设计要求,系统采用自顶向下的设计方法系统由数控分频器、节拍控制器以及音阶发生器组成。数控分频器对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。节拍控制器产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。由音阶发生器产生音符对应的频率的信号来使扬声器发音。
(2)音乐盒的实现:由实验箱上的扬声器实现
(3)根据层次化设计理论,改程序问题自顶向下可以分为分频模块、节拍控制器模块、音节发生器模块和数控分频器模块,其西戎框图如下图所示:
三具体模块实现
3.11节拍控制器模块 NoteTabs
用于产生节拍控制盒音阶选择信号,即在NoteTabs模块中放置所要演奏的乐曲,由一个计数器的计数值来控制此乐谱的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号。输出的信号为3个4位2进制数,分别表示高、中、低三个音阶的1~7的音
当12位发声控制输入{high,med,low}中某一位为高电平时,则对应某一音阶的数值将从端口tone输出,作为该音阶的分频初始值。
3.13数控分频器speakera
它由一个初值可预置的加法计数器构成,当模块speakera由端口tone获得一个2进制数后,将以此值为计数器的初始值,对端口Clk12.5MHZ输入的频率进行分频,之后由speaker 向扬声器输出发声。在模块内部需要将时钟再进行分频产生基准频率f0=1MHZ。为得到对称方波,需先进行分频系数n的分频,得到不对称方波,而占空比很小的方波将很难使扬声器有效的发出声响,需再2分频得到对称方波。
3.14分频模块clkdiv
对时钟50MHz进行分频,需要的是12.5MHz给数控分频器模块和4Hz给节拍控制器模块。
。
3.2 总模块
音乐盒的原理图:将各模块的原理图对应的端口连接
四程序调试及局部仿真结果
4.1分频模块仿真结果:
clk为基本时钟输入50MHZ,clr为复位信号,低电平有效,当clr为1时开始工作。分频模块输出分别为12.5MHZ和4HZ。4HZ的周期偏大,无法在界面上显示。
仿真出现的问题:
该程序中节拍控制模块notetabs中的时钟脉冲为4HZ,周期偏大,在界面中不宜显示。所以未进行波形仿真。
4.2引脚图
4.3实验结果描述:
按下复位键让其保持高电平,扬声器开始发声,播放的音乐为《梁祝》的高潮部分。若将复位键置0,则扬声器停止播放音乐。再将复位键置1,则扬声器重新开始播放音乐。
实验中唯一的不足就是没有加入START按键实现“开始”和“暂停”的功能。
五课程设计的心得与体会
这次的课程设计我们用了十天左右的时间,从中我们学到了很多,也对EDA的知识进行了巩固。我们团队是两个人,做的是音乐盒的设计,我们经过选题,查找资料,整理资料写课题报告,然后编写程序,直到实验结果的成功,过程中我们遇到过很多的困难,程序编写中出现过很多错误,但是在我们的细心检查和查找资料后终于解决了。音乐盒的实现,达到了预期的效果,能够实现开始和复位的功能。但是由于能力的不足,这次设计中还存在着一些没有解决的问题,希望老师予以指正。
这次课程的设计让我们队EDA课程有了更深层次的认识,我们收获了很多,体会深刻。本来觉得EDA编程语言比较麻烦,但是解除之后发现它还是有很多方便的地方,尤其是和图形编程结合的特点,让实验看起来很简洁明白。这次课程也让我们对VHDL语言有了更深的了
这次课程也让我们明白理论与实践的结合是十分重要的,只有理论知识根本是不够的,只有把理论知识用于实践,才能更高的把这门课程所学的知识用于服务社会。这次课程中也让我们发现很多的不足,对所学过的知识勒戒的不够深刻,掌握的不够牢固。这次课程也锻炼了我们的独立思考能力和动手能力,这对我们来说是一次很好的锻炼。这是我们第一次独立完成一个课程,自己设计,大家分工合作,一起努力,一起完成。这个过程中也促进我们同学之间的相互沟通,也让我们在自己专业知识的学习过程中,更多的,更好的学习一门知识。
做这个音乐盒的设计中包含了很多个不同功能的程序,让我们学到了一些思考问题的方法,也学到了一些程序中的思路,在我们一点点的把错误的程序改到成功的过程让我们很有成就感。这次试验也激发了我们对EDA课程的兴趣,也对这门课程有了更深的了解,对EDA 设计软件quarters的使用也更加熟练。这门课程给我们最大的收获就是,只要全身心的投入到一件事中去,持之以恒,那么一定会有收获。
总的来说,这次的设计还算成功。虽然这门课程就要结束了,但是我们不能放弃对这门课程的探索。因此在以后的学习过程中,我们会更加努力的学习它。这次课程的设计,也让我们觉得平时所学的知识终于有了实用价值,达到了理论与实际结合的目的,不仅学到了知识,而且锻炼了自己的能力。最后,很衷心的感谢那些对我们有过帮助的老师和同学们。
六参考资料
1.邹其洪.《EDA技术实验教程》.中国电力出版社,2009
2.曹昕燕等.《EDA技术实验与课程设计》.清华大学出版社,2006
3.沈明山.《EDA技术及可编程器件应用实训》.科学出版社.2004
附件
1.分频模块clkdiv的程序如下:
module clkdiv(
input wire clk,
input wire clr,
output wire clk1,
output wire clk2
);
reg [24:0] q;
always @(posedge clk or negedge clr)
begin
if (!clr)
q <= 0;
else
q <= q+1;
end
assign clk1 = q[1];
assign clk2 = q[23];
endmodule
2.节拍控制器模块notetabs程序如下:
module NoteTabs(