《EDA技术基础》【设计】实验总结报告模板及要求

上传人:M****1 文档编号:487702264 上传时间:2024-01-12 格式:DOC 页数:10 大小:58.50KB
返回 下载 相关 举报
《EDA技术基础》【设计】实验总结报告模板及要求_第1页
第1页 / 共10页
《EDA技术基础》【设计】实验总结报告模板及要求_第2页
第2页 / 共10页
《EDA技术基础》【设计】实验总结报告模板及要求_第3页
第3页 / 共10页
《EDA技术基础》【设计】实验总结报告模板及要求_第4页
第4页 / 共10页
《EDA技术基础》【设计】实验总结报告模板及要求_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《《EDA技术基础》【设计】实验总结报告模板及要求》由会员分享,可在线阅读,更多相关《《EDA技术基础》【设计】实验总结报告模板及要求(10页珍藏版)》请在金锄头文库上搜索。

1、EDA技术基础音乐播放器设计性实验2008112020346郭斌电子信息科学与技术物电学院0803班一、任务解析:以前用51单片机制作了一个可演奏的电子琴,学习了EDA技术之后,感觉FPGA与单片机有许多类似的地方。于是,启发我用FPGA做一个可随意演奏的音乐播放器。设计低、中、高21个音,几乎能够实现一般歌曲的演奏。要实现该功能,就必须考虑到一首歌曲的产生应该考虑的两个因素:音符的产生频率和音的节拍(即声音持续的时间)。只要控制输出到扬声器的激励信号频率的高低和持续的时间,就可以使扬声器发声产生优美的歌曲。二、 方案论证:1、 音调的控制:频率的高低决定了音调的高低。通过查阅资料,得到下面的

2、音符名与频率的关系表:音符名频率/hz音符名频率/hz音符名频率/hz低音1262中音1523高音11046低音2294中音2587高音21175低音3330中音3659高音31318低音4349中音4698高音41397低音5392中音5784高音51568低音6440中音6880高音61760低音7494中音7988高音71976分频比预置数的计算:分频比就是从6Mhz基准频率通过二分频得到的3Mhz频率基础上计算得到的。对于乐曲中的休止符,只需将其分频系数设为0,将分频预置数设为16383即可。例如:低音3的频率为330hz,分频比为3M/330hz=3000000/330=9091,则

3、其分频预置数为:16383-9091=7292。其他的音符对应的分频比和分频比预置数均按此法计算可得到。依次计算出低、中、高3X7=21个音的预置数。各音阶对应的预置数如下表:音符名预置数音符名预置数音符名预置数低音14933中音110647高音113515低音26179中音211272高音213830低音37292中音311831高音314107低音47787中音412085高音414236低音58730中音512556高音514470低音69565中音612974高音614678低音710310中音713347高音7148582、 音长的控制:音符的持续时间必须根据乐曲的速度及每个音符的节

4、拍数来确定。本试验中,设定最短的音符为4分音符,若将全音符的持续时间设为1s的话,则需要提供一个4Hz的时钟频率即可产生4分音符的时间,每1/4个节拍的时间为0.25s,一个完整的节拍为1s。以上即为音乐播放器的原理框图。控制音调通过设置计数器的预置数来实现,预置不同的数可以使计数器产生不同频率的信号,从而产生不同的音调。控制音长则是通过控制计数器预置数的停留时间来实现的,预置数停留的时间越长,则该音符演奏的时间越长。每个音符的演奏时间都是0.25s的整数倍,对于节拍较长的音符,例如2分音符,占了2/4个节拍,在记谱的时候将其连续记录2次即可。三、 实验步骤:1、 分频产生6Mz的基准频率:m

5、odule div_clk6mhz(clk24m,clk6m);input clk24m;output clk6m;reg clk6m;reg cnt;always (posedge clk24m)if(cnt1)cnt=cnt+1; /(24m/6m=4分频,cnt4/2-1=1即可)else begin cnt=0;clk6m=!clk6m;endendmodule由于此分频电路简单,就不在这里给出仿真波形了。2、 分频产生4hz的节拍控制频率:module div_clk4hz(clk24m,clk4);input clk24m;output clk4;reg clk4;reg 21:0

6、cnt;always (posedge clk24m)if(cnt2999999)cnt=cnt+1;/(24m/4hz=6000000,cnt6000000/2-1=2999999)else begin cnt=0;clk4=!clk4;endendmodule此分频电路也很简单,就不在这里给出仿真波形了。3、 乐曲产生模块:核心模块就在这里,这里:(1)首先罗列了低、中、高21个音的分频比预置数(还有休止符的预置数16383),通过6Mhz的基准频率,在其上升沿的时候,计数器累加,当计满到16383之后就取反speaker(speaker=speaker非阻塞赋值),产生对应音符的频率,这

7、里和单片机的定时计数器溢出中断差不多。(2) 产生了21个音调之后,我们要产生流畅的歌曲,还必须根据歌曲的谱子,调用相应音符并且根据节拍控制其持续的时间,例如:若一个音持续4个1/4节拍,则在clk_4hz的上升沿,连续调用4次它的音符就可以了。用counter来计数,计满了(何时计满取决于歌曲长度)就将counter返回为0,这样就可以实现循环演奏了。代码如下:module song(clk_6mhz,clk_4hz,speaker);input clk_6mhz,clk_4hz;output speaker;reg 3:0high,med,low;reg 13:0divider,origi

8、n;reg 7:0counter;reg speaker;wire carry;assign carry=(divider=16383);always (posedge clk_6mhz)begin if(carry)divider=origin; else divider=divider+1;endalways (posedge carry)begin speaker=speaker;endalways (posedge clk_4hz)begin case(high,med,low)b000000000001:origin=4933;b000000000010:origin=6179;b0

9、00000000011:origin=7292;b000000000100:origin=7787;b000000000101:origin=8730;b000000000110:origin=9565;b000000000111:origin=10310;b000000010000:origin=10647;b000000100000:origin=11272;b000000110000:origin=11831;b000001000000:origin=12085;b000001010000:origin=12556;b000001100000:origin=12974;b00000111

10、0000:origin=13347;b000100000000:origin=13515;b001000000000:origin=13830;b001100000000:origin=14107;b000000000000:origin=16383;endcaseendalways (posedge clk_4hz)beginif(counter=113)counter=0;else counter=counter+1;case(counter)0: high,med,low=b000000000101;1: high,med,low=b000000000101;/2: high,med,l

11、ow=b000000000110;3: high,med,low=b000000000110;/4: high,med,low=b000000000101;5: high,med,low=b000000000101;/6: high,med,low=b000100000000;7: high,med,low=b000100000000;/8: high,med,low=b000001110000;9: high,med,low=b000001110000;10:high,med,low=b000001110000;11:high,med,low=b000001110000;/12:high,m

12、ed,low=b000001010000;13:high,med,low=b000001010000;/14:high,med,low=b000001100000;15:high,med,low=b000001100000;/16:high,med,low=b000001010000;17:high,med,low=b000001010000;/18:high,med,low=b001000000000;19:high,med,low=b001000000000;/20:high,med,low=b000100000000;21:high,med,low=b000100000000;22:hi

13、gh,med,low=b000100000000;23:high,med,low=b000100000000;/24:high,med,low=b000001010000;25:high,med,low=b000001010000;/28:high,med,low=b001100000000;29:high,med,low=b001100000000;/30:high,med,low=b000100000000;31:high,med,low=b000100000000;/32:high,med,low=b000001110000;33:high,med,low=b000001110000;/38:high,med,low=b001100000000;39:high,med,low=b001100000000;/40:high,med,low=b000100000000;41:high,med,low=b000100000000;/42:high,med,low=b001000000000;43:high,med,low=b001000000000;/44:high,med,low=b000100000000;45:high,med,low=b000100000000;46:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号