梁祝基于Verilog HDL的演奏设计

梁祝基于Verilog HDL的演奏设计

ID:47478237

大小:190.50 KB

页数:16页

时间:2020-01-11

梁祝基于Verilog HDL的演奏设计_第1页
梁祝基于Verilog HDL的演奏设计_第2页
梁祝基于Verilog HDL的演奏设计_第3页
梁祝基于Verilog HDL的演奏设计_第4页
梁祝基于Verilog HDL的演奏设计_第5页
资源描述:

《梁祝基于Verilog HDL的演奏设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、设计题目:“梁祝乐曲发生器”一、       设计任务及要求:利用EDA/SOPC实验开发平台提供的16*16点阵LED以及EP2C35核心板,实现“梁祝”乐曲发生器。1、查阅相关资料,明确设计步骤;2、采用VerilogHDL编程语言设计程序;3、能够按照设定节拍(每拍持续1s)顺畅的播放“梁祝”乐曲并且听着基本无错;4、 扩张要求:自主设计(如快放、倒放、换歌等)。二、       设计原理及方案乐曲播放器的基本原理是,一个音符对应一个频率信号。频率的高低决定了音调的高低。音乐的十二个平均率规定

2、:每两个八度音之间的频率相差一倍。在两个八度音之间又可以分为十二个半音,每两个半音的频率比为2.另外,音名A(简谱中的低音6)的频率为440HZ,音名B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音1至高音1之间每个音名对应的频率,;利用高低音如下关系可得下表:低8度音:基本音频率/2, 例如低音1的频率为523/2=261.5;高8度音:基本音频率×2,例如高音1的频率为523×2=1046 音符与频率的对应关系如下音名频率(Hz)音名频率(Hz)音名频率(Hz)低音1261.

3、5中音1523高音11046低音2293.5中音2587高音21174低音3329.5中音3659高音31318低音4349中音4698高音41396低音5392中音5784高音51568低音6440中音6880高音61760低音7499中音7998高音71996 各音阶频率对应的分频比及预置数音名分频比预置数音名分频比预置数音名分频比预置数低音11912135中音19561091高音14781569低音21704343中音28521195高音24261621低音31517530中音37591288

4、高音33791668低音41433614中音47161331高音43581689低音51276771中音56381409高音53191728低音61136911中音65681479高音62841763低音710021045中音75011546高音72501797对于乐曲中的休止符,只要将分频系数设为0,即初始值为1047,此时扬声器不发音。从上表中可以看出,最大分频系数为1912,所以采用11位二进制计数器分频可满足需要。对于不同的分频系数,只要加载不同的预置数即可。采用加载预置数实现分频的方法比采

5、用反馈复零法节约资源,实现起来也容易一些。音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。本设计中将全音的持续时间设为1s,提供的4Hz的时钟频率即可产生四分音符的时长。控制音长通过控制计数器预置数的停留时间来实现的,预置数停留的时间越长,则该音符演奏的时间也就越长。每个音符的演奏时间都是0.25s的整数倍,对于节拍较长的音符,如二分音符,在记谱时将该音名联系记录两次即可。对照以上规则可编制乐谱的程序。为了减小输出的偶次谐波分量,最后输出到扬声器上的波形应为对称方波,因此在扬声器之前有一个二

6、分频的分频器。为了使演奏能循环进行,需另外设置一个时长计数器,当乐曲演奏完成时,保证能自动从头开始演奏!      综上所述编制“梁祝”乐曲发生器需要编制分频器、11为计数器、乐谱等部分,综合以上各功能即可实现乐曲发生器。三、       电路设计与实现 电路原理图如下: 1、外部输入脉冲信号时钟源(50Mhz)经分频器输出4Hz、1Mhz的脉冲信号,分别供控制器和受控器使用。2、控制器根据乐曲的节拍产生受控器所需要的预置值,乐曲的一拍持续1s。3、受控器在1MHz时钟信号的控制下从11位预置值开始

7、做加1计数。输出并进行二分频将输出信号分频。4、管脚对应表信号名称对应FPGA管脚名说明50MHzL1基准时钟OUH14扩张接口JP3-80程序实现如下:module song(clk,speaker);input clk;outputspeaker;reg[3:0]high,med,low;reg[10:0]divider,origin;reg[7:0]counter;reg  speaker;reg[5:0] count1; reg[23:0]count2;regclk_1mhz,clk_4hz

8、;    wire carry; always@(posedgeclk)//分频器设计1beginif(count1<=49)begincount1<=count1+1;clk_1mhz<=0;endelsebegincount1<=0;clk_1mhz<=1;endend always@(posedgeclk)//分频器设计2beginif(count2<=12499999)begincount2<=count2+1;clk_4hz<=0;endelsebeginc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。