数电EDA简易电子琴Verilog设计_第1页
数电EDA简易电子琴Verilog设计_第2页
数电EDA简易电子琴Verilog设计_第3页
数电EDA简易电子琴Verilog设计_第4页
数电EDA简易电子琴Verilog设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字电子技术课程设计-简易电子琴设计专业班级:电子姓名:学号:日期:201565、设计任务用VerilogHDL语言设计简易电子琴。(1)单独从左至右按下S1-S7每个按键后能够各自对应发出“哆来咪发唆啦西”的音乐声;( 2) 按下最右边按键(S8),同时再配合按下S1-S7键后,发高八度的对应音;( 3) 按键需要进行“消抖”处理;( 4) 外部输入脉冲信号频率为1mhz( 5) 扩展要求:自主设计(增加低8度功能)。2、 实验目的1、 、学习verilogHDL语言的基本运用,能够利用其进行简单编程;2、 学习使用Quartusn7.0的基本操作,能够利用其进行简单的设计;3、 结合实践加

2、深对理论知识的理解。3、 设计原理1 )喇叭的振动频率不同,导致产生不同的声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐。题目中音乐基本音的“哆”对应频率为523Hz、“来”对应频率为587Hz、“咪”对应频率为659Hz、“发”对应频率为698Hz、“唆”对应频率为784Hz、“啦”对应频率为880Hz、“西”对应频率为998Hz=低8度音:基本音频率/2,例如低音1的频率为523/2=261.5Hz。高8度音:基本音频率X2,例如高音1的频率为523X2=1046Hz.。不同的频率产生利用给定的时钟脉冲来进行分频实现。(2)消抖的原理:按键默认输入逻辑1'当有按键按下时对

3、应的输入为逻辑0'(但会存在抖动),当FPGA开始检测到该引脚从1变为0后开始定时(按键抖动时间大约10mS,定时时间结束后若该引脚仍然为0'则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程的消抖处理和按下时原理一样。(3)原理框图LMhz1F按键消抖模块按犍消才明夬按犍消抖模块技犍消才聊莫块按键消抖模块按键消抖模块按键识别*频率控制器音频驱动器EP2c35F484C8按践消抖模块按键消抖模块四、程序设计消抖模块modulexiaodou(key_in,key_out,clk);inputkey_in;inputclk;outputkey_out;regkey_o

4、ut;reg2:0presta;integerq;parameters0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100,s5=3'b101,s6=3'b110,s7=3'b111;always(posedgeclk)begincase(presta)s0:beginkey_out<=0;q<=0;if(key_in=1)presta<=s0;elsepresta<=s1;ends1:beginkey_out<=0;if(q>9999)presta&

5、lt;=s2;elseq<=q+1;ends2:beginkey_out<=0;q<=0;if(key_in=1)presta<=s0;elsepresta<=s3;ends3:beginkey_out<=1;q<=0;if(key_in=0)presta<=s3;elsepresta<=s4;ends4:beginkey_out<=1;if(q>44444)presta<=s5;elseq<=q+1;ends5:beginq<=0;if(key_in=1)presta<=s0;elsepresta<

6、;=s3;ends6:beginpresta<=s0;ends7:beginpresta<=s0;endendcaseendendmodule按键模块moduleanjian(a,b,c,d,e,f,g,h,i,qout);inputa,b,c,d,e,f,g,h,i;output10:0qout;reg8:0q;reg10:0qout;always(aorborcordoreorforgorhori)beginq0=i;q1=h;q2=g;q3=f;q4=e;q5=d;q6=c;q7=b;q8=a;endalways(q)begincase(q)9'b100000000:

7、qout<=11'b011101111009'b010000000:qout<=11'b011010100119'b001000000:qout<=11'b010111101119'b000100000:qout<=11'b010110011009'b000010000:qout<=11'b010011111109'b000001000:qout<=11'b01000111000;9'b000000100:qout<=11'b00111110101;

8、9'b100000010:qout<=11'b00111011110;9'b010000010:qout<=11'b00110101010;9'b001000010:qout<=11'b00101111011;9'b000100010:qout<=11'b00101100110;9'b000010010:qout<=11'b00100111111;9'b000001010:qout<=11'b00100011100;9'b000000110:qout<

9、;=11'b00011111011;9'b100000001:qout<=11'b11101111000;9'b010000001:qout<=11'b11010100110;9'b001000001:qout<=11'b10111101110;9'b000100001:qout<=11'b10110011000;9'b000010001:qout<=11'b10011111100;9'b000001001:qout<=11'b10001110000;9&

10、#39;b000000101:qout<=11'b01111101010;9'b000000011:qout<=11'b00000000000;9'b000000001:qout<=11'b00000000000;9'b000000000:qout<=11'b00000000000;9'b000000010:qout<=11'b00000000000;default:qout<=qout;endcaseendendmodule分频模块modulefenpin(clk_1M,yuzhi,p

11、l_out);inputclk_1M;input10:0yuzhi;reg10:0q;outputpl_out;regpl_out;always(posedgeclk_1M)beginif(yuzhi>0)beginif(q<yuzhi)beginq<=q+1;pl_out<=0;endelsebeginqv=11'bOOOOOOOOOOO;pl_out<=1;endendelsebeginq<=11'bOOOOOOOOOOO;pl_out<=1;endendendmodule五、原理图及仿真波形图六、心得体会由于之前对本次设计所需知识了解较少,所以在实验过程中遇到了很多的困难,真的很难,但是同样在解决各种困难的过程中也有所收获。从书本上获得的知识跟实践之间具有很大的差距,这要求我们要加强锻炼自己的实际操作能力。首先,在课程设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论