ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:63.04KB ,
资源ID:3884940      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3884940.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(梁祝基于Verilog-HDL的演奏设计.doc)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

梁祝基于Verilog-HDL的演奏设计.doc

1、设计题目:“梁祝乐曲发生器” 一、        设计任务及要求: 利用EDA/SOPC实验开发平台提供的16*16点阵LED以及EP2C35核心板,实现“梁祝”乐曲发生器。 1、查阅相关资料,明确设计步骤; 2、采用Verilog HDL编程语言设计程序; 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) 低音1 261。5 中音1 523 高音1 1046 低音2 293。5 中音2 587 高音2

3、 1174 低音3 329.5 中音3 659 高音3 1318 低音4 349 中音4 698 高音4 1396 低音5 392 中音5 784 高音5 1568 低音6 440 中音6 880 高音6 1760 低音7 499 中音7 998 高音7 1996   各音阶频率对应的分频比及预置数 音名 分频比 预置数 音名 分频比 预置数 音名 分频比 预置数 低音1 1912 135 中音1 956 1091 高音1 478 1569 低音2 1704 343 中音2 852

4、1195 高音2 426 1621 低音3 1517 530 中音3 759 1288 高音3 379 1668 低音4 1433 614 中音4 716 1331 高音4 358 1689 低音5 1276 771 中音5 638 1409 高音5 319 1728 低音6 1136 911 中音6 568 1479 高音6 284 1763 低音7 1002 1045 中音7 501 1546 高音7 250 1797 对于乐曲中的休止符,只要将分频系数设为0,即初始值为1047,此时扬声器不

5、发音。 从上表中可以看出,最大分频系数为1912,所以采用11位二进制计数器分频可满足需要。对于不同的分频系数,只要加载不同的预置数即可.采用加载预置数实现分频的方法比采用反馈复零法节约资源,实现起来也容易一些。 音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定.本设计中将全音的持续时间设为1s,提供的4Hz的时钟频率即可产生四分音符的时长。控制音长通过控制计数器预置数的停留时间来实现的,预置数停留的时间越长,则该音符演奏的时间也就越长.每个音符的演奏时间都是0.25s的整数倍,对于节拍较长的音符,如二分音符,在记谱时将该音名联系记录两次即可。对照以上规则可编制乐谱的程序. 为了减

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

7、的控制下从11位预置值开始做加1计数。输出并进行二分频将输出信号分频。 4、管脚对应表 信号名称 对应FPGA管脚名 说明 50MHz L1 基准时钟 OU H14 扩张接口 JP3-80 程序实现如下: module  song (clk,speaker); input  clk; output speaker; 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; r

8、eg clk_1mhz,clk_4hz;     wire  carry;   always@(posedge clk)//分频器设计1 begin if(count1<=49) begin count1<=count1+1; clk_1mhz〈=0; end else begin count1<=0; clk_1mhz〈=1; end end   always@(posedge clk)//分频器设计2 begin if(count2〈=12499999) begin count2〈=count2+1; clk_4hz〈=0; end else

9、 begin count2<=0; clk_4hz〈=1; end end   assign carry=(divider==2047);   always@(posedge clk_1mhz) begin if(carry) divider=origin;       else divider=divider+1; end   always@(posedge carry) begin       speaker=~speaker;//2分频产生方波信号 end   always@(posedge clk_4hz) begin case({high,m

10、ed,low})//分频比预置 'b000000000000:origin=2047; ’b000000000001:origin=135; ’b000000000010:origin=343; 'b000000000011:origin=530; 'b000000000100:origin=614; 'b000000000101:origin=771; ’b000000000110:origin=911; ’b000000000111:origin=1045; 'b000000010000:origin=1091; ’b000000100000:origin=1195;

11、 ’b000000110000:origin=1288; ’b000001000000:origin=1331; ’b000001010000:origin=1409; 'b000001100000:origin=1479; ’b000001110000:origin=1546; ’b000100000000:origin=1569; ’b001000000000:origin=1621; ’b001100000000:origin=1668; 'b010000000000:origin=1689; ’b010100000000:origin=1728; 'b0110000

12、00000:origin=1763; ’b011100000000:origin=1797; endcase end   always @(posedge clk_4hz) begin if(counter==214)  counter〈=0;        //计时,以实现循环演奏 else             counter〈=counter+1; case(counter)                       //记谱                  0:    {high,med,low}〈='b000000000000;//休止符 1:    {h

13、igh,med,low}〈='b000000000000; 2:    {high,med,low}<='b000001110000;//中音7 3:    {high,med,low}〈=’b000001110000; 4:    {high,med,low}〈=’b000001100000;//中音6 5:    {high,med,low}〈='b000001100000; 6:    {high,med,low}<='b000001110000;//中音7 7:    {high,med,low}〈=’b000001110000; 8:    {high,med,low}

14、<=’b000001010000;//中音5,持续3个时钟节拍 9 :    {high,med,low}〈=’b000001010000; 10:   {high,med,low}〈=’b000001010000; 11:   {high,med,low}<=’b000001100000;//中音6 12:   {high,med,low}〈=’b000001000000;//中音4 13:   {high,med,low}<=’b000001000000; 14:   {high,med,low}<='b000000110000;//中音3 15:   {high,med,l

15、ow}〈=’b000000110000; 16:   {high,med,low}〈=’b000000100000;//中音2 17:   {high,med,low}〈=’b000000110000;//中音3 18:   {high,med,low}<=’b000001000000;//中音4 19:   {high,med,low}〈='b000000110000;//中音3 20:   {high,med,low}<=’b000001010000;//中音5 21:   {high,med,low}<=’b000001010000; 22:   {high,med,low

16、}〈='b000001010000; 23:   {high,med,low}〈=’b000000110000;//中音3 24:   {high,med,low}〈='b000000100000; 25:   {high,med,low}〈=’b000000110000; 26:   {high,med,low}〈=’b000001010000; 27:   {high,med,low}<='b000000100000; 28:   {high,med,low}〈='b000000110000; 29:   {high,med,low}<='b000001000000; 30

17、   {high,med,low}〈=’b000000110000; 31:   {high,med,low}<='b000000100000; 32:   {high,med,low}〈='b000000010000;//中音1,持续6个时钟节拍 33:   {high,med,low}〈='b000000010000; 34:   {high,med,low}〈=’b000000010000; 35:   {high,med,low}〈=’b000000010000; 36:   {high,med,low}〈=’b000000010000; 37:   {high,med

18、low}<=’b000000010000; 38:   {high,med,low}〈='b000001010000;//中音5 39:   {high,med,low}〈=’b000001010000; 40:   {high,med,low}〈=’b000000000111;//低音7 41:   {high,med,low}<=’b000000000111; 42:   {high,med,low}<='b000000010000;//中音2 43:   {high,med,low}〈=’b000000010000; 44:   {high,med,low}〈=’b000

19、000000110;//低音6 45:   {high,med,low}〈='b000000000110; 46:   {high,med,low}〈=’b000000010000;//中音1 47:   {high,med,low}〈='b000000010000; 48:   {high,med,low}〈='b000000000101;//低音5,持续6个时钟节拍 49:   {high,med,low}〈=’b000000000101; 50:   {high,med,low}〈='b000000000101; 51:   {high,med,low}〈=’b000000

20、000101; 52:   {high,med,low}〈=’b000000000101; 53:   {high,med,low}〈=’b000000000101; 54:   {high,med,low}<='b000000000110;//低音6 55:   {high,med,low}<=’b000000010000;//中音1 56:   {high,med,low}〈=’b000000000101;//低音5,持续8个时钟节拍 57:   {high,med,low}〈=’b000000000101; 58:   {high,med,low}〈='b000000000

21、101; 59:   {high,med,low}〈='b000000000101; 60:   {high,med,low}<='b000000000101; 61:   {high,med,low}<=’b000000000101; 62:   {high,med,low}<=’b000000000101; 63:   {high,med,low}<=’b000000000101; 64:   {high,med,low}〈='b000000000011;//低音3,无言开始,持续4个时钟节拍 65:   {high,med,low}〈=’b000000000011; 66

22、   {high,med,low}〈=’b000000000011; 67:   {high,med,low}〈=’b000000000011; 68:   {high,med,low}〈=’b000000000101; 69:   {high,med,low}〈=’b000000000101; 70:   {high,med,low}<=’b000000000101; 71:   {high,med,low}〈=’b000000000110; 72:   {high,med,low}〈=’b000000010000;//中音1发三个时钟节拍 73:   {high,med,l

23、ow}〈=’b000000010000; 74:   {high,med,low}<=’b000000010000; 75:   {high,med,low}<=’b000000100000; 76:   {high,med,low}〈=’b000000000110; 77:   {high,med,low}<=’b000000010000; 78:   {high,med,low}〈=’b000000000101; 79:   {high,med,low}<='b000000000101; 80:   {high,med,low}〈=’b000001010000;//中音5持续

24、三个时钟节拍 81:   {high,med,low}〈=’b000001010000; 82:   {high,med,low}〈=’b000001010000; 83:   {high,med,low}〈='b000010000000;//高音1 84:   {high,med,low}<='b000001100000; 85:   {high,med,low}〈=’b000001010000; 86:   {high,med,low}〈=’b000000110000; 87:   {high,med,low}〈='b000001010000; 88:   {high,me

25、d,low}<='b000000100000;//中音2持续8个时钟节拍 89:   {high,med,low}〈=’b000000100000; 90:   {high,med,low}〈='b000000100000; 91:   {high,med,low}<=’b000000100000; 92:   {high,med,low}<=’b000000100000; 93:   {high,med,low}<=’b000000100000; 94:   {high,med,low}〈='b000000100000; 95:   {high,med,low}〈='b0000

26、00100000; 96:   {high,med,low}〈='b000000110000; 97:   {high,med,low}<='b000000000111; 98:   {high,med,low}〈=’b000000000111; 99:   {high,med,low}<=’b000000000110; 100:   {high,med,low}〈='b000000000110; 101:   {high,med,low}<=’b000000000101; 102:   {high,med,low}<=’b000000000101; 103:   {high,

27、med,low}<=’b000000000101; 104:   {high,med,low}〈=’b000000000110; 105:   {high,med,low}<=’b000000010000; 106:   {high,med,low}<='b000000010000; 107:   {high,med,low}<='b000000100000; 108:   {high,med,low}〈=’b000000100000; 109:   {high,med,low}〈='b000000000011; 110:   {high,med,low}〈=’b00000000

28、0011; 111:   {high,med,low}<=’b000000010000; 112:   {high,med,low}〈='b000000010000; 113:   {high,med,low}〈='b000000000110; 114:   {high,med,low}<=’b000000000101; 115:   {high,med,low}〈=’b000000000110; 116:   {high,med,low}〈='b000000010000; 117:   {high,med,low}〈='b000000000101;//低音5持续8个时钟节拍

29、118:   {high,med,low}〈='b000000000101; 119:   {high,med,low}〈=’b000000000101; 120:   {high,med,low}〈=’b000000000101; 121:   {high,med,low}<='b000000000101; 122:   {high,med,low}<=’b000000000101; 123:   {high,med,low}〈=’b000000000101; 124:   {high,med,low}〈='b000000000101; 125:   {high,med,low

30、}〈= ’b000000110000; 126:   {high,med,low}<= ’b000000110000; 127:   {high,med,low}〈= ’b000000110000; 128:   {high,med,low}〈= 'b000001010000; 129:   {high,med,low}〈= ’b000000000111; 130:   {high,med,low}〈= 'b000000000111; 131:   {high,med,low}<= 'b000000100000; 132:   {high,med,low}<= ’b0000001

31、00000; 133:   {high,med,low}<= 'b000000000110; 134:   {high,med,low}<= 'b000000010000; 135:   {high,med,low}<= 'b000000000101; 136:   {high,med,low}〈= ’b000000000101; 137:   {high,med,low}〈= ’b000000000101; 138:   {high,med,low}<= ’b000000000101; 139:   {high,med,low}〈= 'b000000000000; 140: 

32、  {high,med,low}〈= 'b000000000000; 141:   {high,med,low}〈= ’b000000000011; 142:   {high,med,low}<= 'b000000000101; 143:   {high,med,low}〈= 'b000000000101; 144:   {high,med,low}<= ’b000000000011; 145:   {high,med,low}〈= 'b000000000101; 146:   {high,med,low}〈= ’b000000000110; 147:   {high,med,l

33、ow}<= ’b000000000111; 148:   {high,med,low}〈= 'b000000100000; 149:   {high,med,low}〈= ’b000000000110; 150:   {high,med,low}〈= 'b000000000110; 151:   {high,med,low}〈= ’b000000000110; 152:   {high,med,low}〈= ’b000000000110; 153:   {high,med,low}<= 'b000000000110; 154:   {high,med,low}〈= 'b00000

34、0000110; 155:   {high,med,low}<= ’b000000000101; 156:   {high,med,low}<= ’b000000000110; 157:   {high,med,low}<= 'b000000010000; 158:   {high,med,low}〈= ’b000000010000; 159:   {high,med,low}〈= ’b000000010000; 160:   {high,med,low}<= 'b000000100000; 161:   {high,med,low}<= ’b000001010000; 162

35、   {high,med,low}<= ’b000001010000; 163:   {high,med,low}〈= ’b000000110000; 164:   {high,med,low}<= 'b000000110000; 165:   {high,med,low}<= 'b000000100000; 166:   {high,med,low}〈= 'b000000100000; 167:   {high,med,low}〈= 'b000000110000; 168:   {high,med,low}〈= 'b000000100000; 169:   {high,med

36、low}<= 'b000000010000; 170:   {high,med,low}<= ’b000000010000; 171:   {high,med,low}〈= ’b000000000110; 172:   {high,med,low}〈= ’b000000000101; 173:   {high,med,low}〈= ’b000000000011; 174:   {high,med,low}〈= 'b000000000011; 175:   {high,med,low}〈= 'b000000000011; 176:   {high,med,low}〈= ’b000

37、000000011; 177:   {high,med,low}〈= 'b000000010000; 178:   {high,med,low}<= 'b000000010000; 179:   {high,med,low}<= 'b000000010000; 180:   {high,med,low}<= 'b000000010000; 181:   {high,med,low}〈= ’b000000000110; 182:   {high,med,low}<= 'b000000010000; 183:   {high,med,low}〈= 'b000000000110; 1

38、84:   {high,med,low}<= 'b000000000101; 185:   {high,med,low}〈= 'b000000000011; 186:   {high,med,low}<= 'b000000000101; 187:   {high,med,low}〈= ’b000000000110; 188:   {high,med,low}〈= 'b000000010000; 189:   {high,med,low}<= ’b000000000101; 190:   {high,med,low}〈= 'b000000000101; 191:   {high,m

39、ed,low}〈= ’b000000000101; 192:   {high,med,low}〈= ’b000000000101; 193:   {high,med,low}〈= ’b000000000101; 194:   {high,med,low}〈= ’b000000000101; 195:   {high,med,low}<= 'b000000000101; 196:   {high,med,low}<= ’b000000000101; 197:    {high,med,low}〈=’b000000110000; 198:    {high,med,low}〈=’b0

40、00001010000; 199:    {high,med,low}〈=’b000000100000; 200:    {high,med,low}〈=’b000000110000; 201:    {high,med,low}<='b000000110000; 202:    {high,med,low}〈=’b000000010000; 203:    {high,med,low}〈='b000000000111; 204:    {high,med,low}〈=’b000000000111; 205:    {high,med,low}<=’b000000000110;

41、 206:    {high,med,low}<=’b000000000110; 207:    {high,med,low}〈=’b000000000101; 208:    {high,med,low}<=’b000000000101; 209:    {high,med,low}〈='b000000000101; 210:    {high,med,low}〈=’b000000000101; 211:    {high,med,low}〈=’b000000000101; 212:    {high,med,low}〈=’b000000000101; 213:    {hig

42、h,med,low}〈=’b000000000101; 214:    {high,med,low}〈=’b000000000101; endcase end endmodule   四、        分析与讨论 本次实验主要是通过编写梁祝乐曲发生器,锻炼同学们的Verilog的编写能力,以及对Verilog语言的了解,同时也增强了同学们对数字电子以及EDA的了解。实验编程主要包括以下几块:分频器的编写(包括50MHz到1MHz以及50MHz到4Hz以及一个二分频器)对输入波进行分频;计数器的编写(11位计数器通过设定预置数来实现计数功能);乐谱的编写.     经过这一次的

43、课程设计的学习,让我收获多多。但我也发现了自身存在的很多不足。当实验需要一些复杂的程序时时我还不能从容应对;我的探索方式还有待改善,当面对一些复杂的问题时我还不能很快很好的完成。     最后,课程设计让我收获颇丰,让我对Verilog语言有了更深的理解,对数字电子计数的应用有了更深的了解,同时也让我发现了自身很多的不足。 五、        附:资料查阅情况 1、刘润华,任旭虎。电子技术实验与课程设计。石油大学出版社,2005 2、王金明。Verilog HDL程序设计教程。人民邮电出版社,2004 3、张明。Verilog HDL实用教程。电子科技大学出版社,1999 4、潘松,黄继业.EDA技术实用教程.科学出版社,2002 附件(梁祝乐谱图):

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服