欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    基于Verilog多首乐曲选择演奏电路设计.doc

    • 资源ID:14078       资源大小:114.61KB        全文页数:8页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于Verilog多首乐曲选择演奏电路设计.doc

    -基于verilog硬件乐曲演奏电路设计quartus II模块可以实现4x4键盘扫描按键播放音乐,ROM中存四首歌曲,可以通过选择播放。一、设计任务与要求设计目的:利用数控分频器设计硬件演奏电路。设计容:学习课本定制音符数据ROM"music。填入新的乐曲。争取可以在一个ROM装上多首歌曲,可手动或自动选择歌曲。设计要求:用仿真波形和电路原理图,详细表达硬件电子琴的工作原理及其verilog文件中相关语句功能,表达硬件实现情况。二、总体框图ROM"music音符控制输出数控分频器音符译码七段数码管分频器蜂鸣器LED灯ROM中的音乐数据文件刚可由编辑好的音符填入MIF文件中再定制LPM_ROM将音符数据加载入ROM中,并设计程序在运行时自动读取ROM中的文件并置入数控分频器中。当采用四四拍曲子时,每节拍持续时间为0.5秒。置入数控分频器的速度也应与此同步或一致,防止音乐过快或过快慢而失真。我给出的C调音阶频率表,各频率对应的预置数就与数控分频推动蜂鸣器发出声音的频率对应。在编写数控分频器时,不仅要考虑预置数的输入方式,还要考虑输入的速度,以及驱动蜂鸣器发声的频率。为了在扩展能够在ROM中同时存放多首歌曲,并可以手动选择需要的歌曲,故可将ROM中分假设干段存放不同曲子。当手动选择歌曲时,可根据输入的选择信号,读出ROM中对应地址的曲子,并将ROM中的曲子完整的播放出来。为了显示高、中、低三种音调,可在音符>>预置数的译码过程中,同时译出高、中、低三种音阶的信号,并利用三个LED灯输出信号。同时,也可利用该译码模块,将当前演奏的音符简谱表达出来。下面给出C调音节频率表:音阶频率Hz音阶频率Hz音阶频率Hz1661.227830.617415.311479.986739.9963701318.525659.335329.631174.664587.334293.671108.733554.373277.19987.762493.882246.9488014401220三、功能模块3.1 音符数据地址发生器模块T138T模块T138T是一个10位二进制计数器,部计数最大值为500,作为音乐ROM地址发生器。这个计数器的计数频率即为4HZ,即每一个数值停留时间为0.25秒。可以通过选那么en的值 00 01 10 11,选择不同的歌曲。module T138T (clk,t,en);input clk;input 1:0 en;output 9:0t;reg 9:0t; always (posedge clk ) begincase(en)0:begin if(t<=138)t=t+1; elset=0;end 1:begin if(t>=139&&t<=263)t=t+1; elset=139;end2:begin if(t>=263&&t<=335)t=t+1; elset=263;end 3:begin if(t>=335&&t<=439)t=t+1; elset=335;endendcaseendendmodule模块图:仿真图:3.2 分频预置查表模块F_CODE模块F_CODE 乐曲简谱码对应的分频预置数查表为SPKER提供所发音符的分频预置数,分频分频预置数共14个,每一个音符的停留时间由音乐节拍和音调发生查表模块MUSIC中简码和时钟inclock的频率决定,为4hz即0.25s一个上升沿到来就传送一次数据。程序:module f_code (inx,code,h,to);input 3:0 inx; output h; output 3:0 code; output 10:0 to;reg10:0 to; reg3:0 code; reg h;always (inx) begin case (inx) 0:begin to <=11'H7FF; code<=0;h<=0;end1:begin to <=11'H305; code<=1;h<=0;end2:begin to <=11'H390; code<=2;h<=0;end3:begin to <=11'H40C; code<=3;h<=0;end4:begin to <=11'H45C; code<=4;h<=0;end5:begin to <=11'H4AD; code<=5;h<=0;end6:begin to <=11'H50A; code<=6;h<=0;end7:begin to <=11'H55C; code<=7;h<=0;end8:begin to <=11'H582; code<=1;h<=1;end9:begin to <=11'H5C8; code<=2;h<=1;end10:begin to <=11'H606; code<=3;h<=1;end11:begin to <=11'H640; code<=4;h<=1;end12:begin to <=11'H656; code<=5;h<=1;end13:begin to <=11'H684; code<=6;h<=1;end14:begin to <=11'H69A; code<=7;h<=1;end15:begin to <=11'H6C0; code<=1;h<=1;enddefault : begin to<= 11'H6C0;code<=1; h<=1;end endcase end endmodule模块:仿真图:3.3 数控分频器模块SPKER工作时其CLK输入一较高频率1MHZ时钟,通过分频后,经由触发器由输出。由于直接从数空分频器中出来的输出信号是脉冲极窄的信号,为了有利于驱动扬声器,加一个触发器分频以均衡其占空比,但这时的频率是原来的.对输入的例如是与的间距为,每隔就为,出现的频率就是音符对应的频率,相应的频率越高对应的数值就越高,就是离越近的分频预置数。程序:module spker (clk,tn,spks);input clk; input 10:0 tn;output spks;reg spks;reg 10:0t11;always (posedge clk) begin : t11b_loadif(t11=11'h7FF) begint11=tn; spks<=1'b1; endelse begint11=t11+1; spks<=1'b0; end end endmodule模块:仿真图:3.4 音符数据模块 MUSICData mif 文件:模块图:3.5 锁相环:利用锁相环将分成和模块图:3.6 分频 2khz分成4hz程序:module fdiv(clk,pm);input clk;output pm;reg 8:0 q1; reg full; wire rst;always (posedge clk or posedge rst) begin if(rst) begin q1<=0; full<=1;end else begin q1<=q1+1; full<=0; end end assign rst=(q1=499) ; assign pm=full;assign dout = q1;endmodule模块图:3.7 分频器此分频为了给键盘扫描提供的时钟输入程序:module fenpin(clk20M,clk10);input clk20M;output reg clk10;reg20:0 q;always(posedge clk20M) begin if(q=9999) begin q=21'd0;clk10=clk10; end else q=q+21'd1; endendmodule模块:3.8 键盘扫描模块 key通过键盘输入的数作为F_CODE的输入信号从到表示低音和高音程序:module key(clk10,lie,hang,result);input clk10;input 3:0lie;output reg3:0hang,result;reg 1:0 q;always(posedge clk10) begin q=q+1; case(q) 0:hang=4'b0111; 1:hang=4'b1011; 2:hang=4'b1101; 3:hang=4'b1110; default :hang=4'b1111; endcase case(hang,lie) 8'b01110111:result=0; 8'b01111011:result=1; 8'b01111101:result=2; 8'b01111110:result=3; 8'b10110111:result=4; 8'b10111011:result=5; 8'b10111101:result=6; 8'b10111110:result=7; 8'b11010111:result=8; 8'b11011011:result=9; 8'b11011101:result=4'ha; 8'b11011110:result=4'hb; 8'b11100111:result=4'hc; 8'b11101011:result=4'hd; 8'b11101101:result=4'he; 8'b11101110:result=4'hf; /default:result=0; endcase endendmodule模块:二选一选择器为了通过输入信号的或来确定是播放音乐还是键盘播放模块程序:module mux21a (a,b,rst,y);input 3:0 a;input 3:0 b;input rst;output 3:0 y;assign y=(rst" a : b );endmodule模块图:四顶层文件图纸:五实验总结:实验过程中我们遇到了很多东西,在解决问题的同时我们也学到了很多东西。首先,我们更加熟悉 Quartus 软件的使用,平时课堂上我们也使用过它,可是毕竟时间有限,了解只是片面的,例如我们在仿真波形的时候设置的endtime过长,结果导致等待时间过长。通过这次实训更加系统的应用它,具体了解了它的功能以及具体的操作方法。其次对于理论知识运用到实践中有了更深刻的理解,对于课本上的理论的知识平时只是通过教师的讲解,没有一个更深入的认知,正是通过实训很好地让我们把平时学习的课本理论知识应用到实践中,这对于以后工作的锻炼有很好的启发作用。理论毕竟只是理论,它与实际总会有一定的差距。例如,我们这次的实训课题是音乐发生器,我们想到了运用平时的积累的知识大胆创新,鉴于此我们想到了将每首乐曲音符的高音、中音、低音分别通过三个数码管显示出来,同时让流水灯跟随着音乐的播放闪烁着,同时我们设想如果通过开关选择控制,我们可以选择播放不同的乐曲。最终形成了我们自己的方案"跳动的音乐发生器!可是就在大家把程序调试完成之后下载到FPGA芯片中了之后,发现数码管的显示并不是我们预想的那样。大家马上展开了讨论,我们这使用的动态数码管的显示方式,结合到教师在课堂上的讲解的知识,我们意识到,如果每次只想让一个数码管点亮,就应该通过给其他的数码管的位码赋值使其不被点亮,这一点我们在设计程序的时候忽略了这个问题。对于不同的乐曲,我们小组的一个成员觉得网上找不到适宜的程序,他发费了一下午的时间通过上网查找资料编写出了"两只蝴蝶"的大局部乐曲。等到我们的作品根本完成之后,我们大家有了一个想法用点阵显示所播放乐曲的名称,我们找到了教师说出了我们的想法,教师针对我们的想法给我了具体了方案,并且给出了具体参考容,我们根据教师的点拨设计出了显示模块。其实实训并不完全考察的理论知识的学习,同时它也考察了我们的综合能力,包括自我学习的能力、与人交流沟通的能力、团队协作精神这些能力的锻炼与培养对我们以后走向工作岗位是非常必要的。当今社会竞争剧烈,特别是电子方面的开展真是日新月异,这就更需要我们有良好的团队合作意识,有不畏困难困苦的钻研精神,有开拓进取的创新的品质,不断充实自己的头脑,通过科技知识武装自己,让自己在剧烈的竞争环境中立于不败之地!这一次实训,让我学到了很多东西,首先是课本上的理论知识,还有共同协作精神,实训的过程有苦也有甜,当我们面对挫折一遍又一遍的修改调试程序的时候,我们或许有许多疲惫,但是当我们看到自己设计的成功的展现在我们面前的时候,我们大家都露出了喜悦的笑容。我想说这次实训真的很快乐,它让我学到了东西,它让我与同学的关系更亲近了,它让我与教师的交流的更多了,教师的谆谆教导与指导,同学们的团结合作与支持!. z.

    注意事项

    本文(基于Verilog多首乐曲选择演奏电路设计.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开