数电EDA简易电子琴Verilog设计方案.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字电子技术课程设计 -- 简易电子琴设计 专业班级 : 电子 姓 名 : 学 号 日 期 : : 2015.6.5 一、设计任务 用 Verilog HDL 语言设计简易电子琴。 )单独从左至右按下 S1-S7 每个按键后能够各自对应发出 “ 哆来咪发唆啦西”的音乐声; )按下最右边按键( S8),同时再配合按下 S1-S7 键后,发高八度的对应音; )按键需要进行“消抖”处理; )外部输入脉冲信号频率为 1mhz; )扩展要求:自主设计(增加低 8 度功能)。二、实验目的 1、学习 verilogHDL 语言的基本运用,能够利用其进行简单编程; 2、学习使用 Quartus Ⅱ 7.0 的基本操作,能够利用其进行简单的设计; 3、结合实践加深对理论知识的理解。三、设计原理 1)喇叭的振动频率不同,导致产生不同的声音;振动频率越低,声音越低 沉,振动频率越高, 声音越尖锐。题目中音乐基本音的 “哆”对应频率为 523Hz 、“来”对应频率为 587Hz 、“咪” 对应频率为 659Hz 、“发” 对应频率为 698Hz 、“唆”对应频率为 784Hz 、“啦”对应频率为 880Hz 、“西”对应频率为 998Hz。 低 8 度音:基本音频率 /2 ,例如低音 1 的频率为 523/2=261.5Hz 。 高 8 度音:基本音频率× 2,例如高音 1 的频率为 523× 2=1046Hz.。不同的频率产生利用给定的时钟脉冲来进行分频实现。 消抖的原理:按键默认输入逻辑‘ 1’,当有按键按下时对应的输入为 逻辑‘ 0’(但会存在抖动) ,当 FPGA开始检测到该引脚从‘ 1’变为‘ 0’后开始定时(按键抖动时间大约 10ms),定时时间结束后若该引脚仍然为‘ 0’则表示确实发生按键按下, 否则视为抖动而不予以理会; 按键松开过程的消抖处理和按下时原理一样。 原理框图 四、程序设计消抖模块 module xiaodou(key_in,key_out,clk); input key_in; input clk; output key_out; reg key_out; reg [2:0]presta; integer q; parameter s0=3b000, s1=3b001, s2=3b010, s3=3b011, s4=3b100, s5=3b101, s6=3b110, s7=3b111; always@(posedge clk) begin case(presta) s0: begin key_out=0; q=0; if(key_in==1) presta=s0; s1:  end else  presta=s1; begin key_out=0; if(q9999) presta=s2; s2:  end else  q=q+1; begin key_out=0; q=0; if(key_in==1) presta=s0; s3:  end else  presta=s3; begin key_out=1; q=0; if(key_in==0) presta=s3; s4:  end else  presta=s4; begin key_out=1; if(q44444) presta=s5; else q=q+1; end s5: begin q=0; if(key_in==1) presta=s0; s6:  end else  presta=s3; s7: begin presta=s0; end begin presta=s0; end endcase end end module 按键模块 module anjian(a,b,c,d,e,f,g,h,i,qout); input a,b,c,d,e,f,g,h,i; output [10:0] qout; reg [8:0] q; reg [10:0] qout; always@(a or b or c or d or e or f or g or h or i) begin q[0]=i; q[1]=h; q[2]=g; q[3]=f; q[4]=e; q[5]=d; q[6]=c; q[7]=b; q[8]=a; end always@(q) begin case(q) 9b100000000:qout=11b01110111100; 9b010000000:qout=11b01101010011; 9b001000000:qout=11b01011110111; 9b000100000:qout=11b01011001100; 9b000010000:qout=11b01001111110; 9b000001000:

文档评论(0)

文档查询,农业合作 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体土默特左旗农特农机经销部
IP属地广西
统一社会信用代码/组织机构代码
92150121MA0R6LAH4P

1亿VIP精品文档

相关文档