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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于verilog语言简易电子琴设计 数字电子技术课程设计报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于verilog语言简易电子琴设计 数字电子技术课程设计报告.docx

1、基于verilog语言简易电子琴设计 数字电子技术课程设计报告 数字电子技术课程设计报告基于verilog HDL语言地简易电子琴设计 学院:_信息与控制工程学院_ 专业班级:_电气11级四班_ 姓名:_商玉玺_ 学号:_11053421_ 指导教师:_ 一、实验目地 语言地基本运用,能够利用其进行简单编程;verilogHDL1、学习 地基本操作,能够利用其进行简单地设计;7.0、学习使用 2Quartus . 3、结合实践加深对理论知识地理解 二、设计题目 .语言设计简易电子琴用verilogHDl 三、题目要求 (1)单独从左至右按下S1-S7每个按键后能够各自对应发出 “哆来咪发唆啦西

2、”地音 乐声; 键后,发高八度地对应音;),同时再配合按下S1-S72()按下最右边按键(S8 处理;消抖”(3)按键需要进行“ ;)外部输入脉冲信号频率为1mhz(4 ).8度功能,自动播放一段音乐(5)扩展要求:自主设计(增加低 四、设计原理(1)喇叭地振动频率不同,导致产生不同地声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐.题目中音乐基本音地 “哆”对应频率为523Hz 、“来”对应频率为587Hz 、“咪”对应频率为659Hz 、“发”对应频率为698Hz 、“唆”对应频率为784Hz 、“啦”对应频率为880Hz 、“西”对应频率为998Hz. 2=261.5Hz./1地

3、频率为523低8度音:基本音频率/2,例如低音 5232=1046Hz.1地频率为,例如高音高8度音:基本音频率2 .不同地频率产生利用给定地时钟脉冲来进行分频实现(2)消抖地原理:按键默认输入逻辑1,当有按键按下时对应地输入为逻辑0(但会存在抖动),当FPGA开始检测到该引脚从1变为0后开始定时(按键抖动时间大约10ms),定时时间结束后若该引脚仍然为0则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程地消抖处理和按下时原理一样. )原理框图3( 四、管脚对应表 说明对应信号名称FPGA管脚名 L21MHz基准时钟 F3OU音频输出 F8S1 A14S2 F10S3 B16S基本

4、功能按F1SB1SF1SB1SMBTMBT扩展功能按U1BTU1BT4 五、实验过程 、设计按键防抖模块1 )设计程序1( 。module xiaodou(rst,clk_1M,out) 。 input clk_1M 。 input rst 。 output out 。wire rst 。reg out 。reg24:0cnt 。reg2:0state parameter state0=3b000, state1=3b001, state2=3b010, state3=3b011, state4=3b100, 。 state5=3b101 always(posedge clk_1M) begi

5、n 。cnt=24d0 case(state) state0:if(!rst) begin 。 out=0 。 state=state1 end else 。 state=state0 state1:begin 。 out=0 。cnt=cnt+1 if(cnt=10000) 。 state=state2 else begin 。 /out=1 。 state=state1 end end state2:if(!rst) 。 state=state3 else 。 state=state0 state3:if(!rst) begin 。 out=1 。cnt=0 。 /state=state3

6、 end else 。state=state4 state4:begin 。cnt=cnt+1 if(cnt=200000) begin 。out=1 。 state=state5 end else begin 。 out=1 。 state=state4 end end state5:if(rst) begin 。 out=0 。 state=state0 end else 。 state=state3 endcase end endmodule )原理图及仿真波形(2 、按键识别模块设计2 )程序设计1( 。module xkey(a,b,c,d,e,f,g,h,l,qout) 。inpu

7、t a,b,c,d,e,f,g,h,l 。output qout 。reg 8:0 qin 。reg 4:0 qout always(a or b or c or d or e or f or g or h or l) begin 。qin8=a 。qin7=b 。qin6=c 。qin5=d 。qin4=e 。qin3=f 。qin2=g 。qin1=h 。qin0=l end always(qin) begin case(qin) 。9b100000000:qout=5b00001 。9b010000000:qout=5b00010 。9b001000000:qout=5b00011 。9

8、b000100000:qout=5b00100 。9b000010000:qout=5b00101 。9b000001000:qout=5b00110 。9b000000100:qout=5b00111 。9b100000010:qout=5b01000 。9b010000010:qout=5b01001 。9b001000010:qout=5b01010 。9b000100010:qout=5b01011 。9b000010010:qout=5b01100 。9b000001010:qout=5b01101 。9b000000110:qout=5b01110 。9b100000001:qou

9、t=5b01111 。9b010000001:qout=5b10000 。9b001000001:qout=5b10001 。9b000100001:qout=5b10010 。9b000010001:qout=5b10011 。9b000001001:qout=5b10100 。9b000000101:qout=5b10101 。9b000000000:qout=5b00000 。9b000000010:qout=5b00000 。9b000000001:qout=5b00000 。default:qout=0 endcase end endmodule )原理图及仿真波形2( 、分频器模块

10、地设计3 )程序设计1( 。module fenpin(in,clk_1M,out) 。input in 。input clk_1M 。output out 。wire4:0in 。reg out 。reg11:0count 。reg4:0state initial 。count=12d0 parameter state0=5b00000, state1=5b00001, state2=5b00010, state3=5b00011, state4=5b00100, state5=5b00101, state6=5b00110, state7=5b00111, state8=5b01000,

11、state9=5b01001, state10=5b01010, state11=5b01011, state12=5b01100, state13=5b01101, state14=5b01110, state15=5b01111, state16=5b10000, state17=5b10001, state18=5b10010, state19=5b10011, state20=5b10100, state21=5b10101, 。 state22=5b10110 always(posedge clk_1M) begin case(state) state0: begin /if(all

12、in=5b10110) 。 /state=state0 if(in=5b00001) 。 state=state1 else if(in=5b00010) 。state=state2 else if(in=5b00011) 。 state=state3 else if(in=5b00100) 。state=state4 else if(in=5b00101) 。 state=state5 else if(in=5b00110) 。state=state6 else if(in=5b00111) 。 state=state7 else if(in=5b01000) 。 state=state8

13、else if(in=5b01001) 。 state=state9 else if(in=5b01010) 。 state=state10 else if(in=5b01011) 。 state=state11 else if(in=5b01100) 。 state=state12 else if(in=5b01101) 。 state=state13 else if(in=5b01110) 。state=state14 else if(in=5b01111) 。 state=state15 else if(in=5b10000) 。 state=state16 else if(in=5b1

14、0001) 。 state=state17 else if(in=5b10010) 。 state=state18 else if(in=5b10011) 。state=state19 else if(in=5b10100) 。 state=state20 else if(in=5b10101) 。 state=state21 else if(in=5b00000) 。state=state22 else 。state=state0 end state1: begin if(count=956) begin begin 。 count=count+12d1 end if(in=5b00001)

15、 。 state=state1 else begin 。out=0 。 state=state0 end end else begin begin 。out=out 。count=0 end if(in=5b00001) 。 state=state1 else begin 。 out=0 。 state=state0 end end end if(count=852)begin begin count=count+12d1。end state2:begin if(in=5b00010)state=state2。else begin out=0。state=state0。end end else

16、 begin begin out=out。count=0。end if(in=5b00010)state=state2。else begin out=0。state=state0。end end end state3:begin if(count=759)begin begin count=count+12d1。end if(in=5b00011)state=state3。else begin out=0。state=state0。end end else begin begin out=out。count=0。end if(in=5b00011)state=state3。else begin

17、 out=0。state=state0。end end end state4:begin if(count=716)begin begin count=count+12d1。end if(in=5b00100)state=state4。else begin out=0。state=state0。end end else begin begin out=out。count=0。end if(in=5b00100)state=state4。else begin out=0。state=state0。end end end state5:begin if(count=638)begin begin

18、count=count+12d1。end if(in=5b00101)state=state5。else begin out=0。state=state0。end end else begin begin out=out。count=0。end if(in=5b00101)state=state5。else begin out=0。state=state0。end end end state6:begin if(count=568)begin begin count=count+12d1。end if(in=5b00110)state=state6。else begin out=0。state

19、=state0。end end else begin begin out=out。count=0。end if(in=5b00110)state=state6。else begin out=0。state=state0。end end end end 。count=count+12d1begin if(count=501)begin state7:begin if(in=5b00111)state=state7。else begin out=0。state=state0。end end else begin begin out=out。count=0。end if(in=5b00111)sta

20、te=state7。else begin out=0。state=state0。end end end state8:begin if(count=478)begin begin count=count+12d1。end if(in=5b01000)state=state8。else begin out=0。state=state0。end end else begin begin out=out。count=0。end if(in=5b01000)state=state8。else begin out=0。state=state0。end end end state9:begin if(co

21、unt=426)begin begin count=count+12d1。end if(in=5b01001)state=state9。else begin out=0。state=state0。end end else begin begin out=out。count=0。end if(in=5b01001)state=state9。else begin out=0。state=state0。end end end state10:begin if(count=380)begin begin count=count+12d1。end if(in=5b01010)state=state10。

22、else begin out=0。state=state0。end end else begin begin out=out。count=0。end if(in=5b01010)state=state10。else begin out=0。state=state0。end end end state11:begin if(count=358)begin begin count=count+12d1。end if(in=5b01011)state=state11。else begin out=0。state=state0。end end else begin begin out=out。coun

23、t=0。end if(in=5b01011)state=state11。else begin out=0。state=state0。end end end state12:begin if(count=319)begin begin count=count+12d1。end if(in=5b01100)state=state12。else begin out=0。state=state0。end end else begin begin out=out。count=0。end if(in=5b01100)state=state12。else begin out=0。state=state0。e

24、nd end end state13:begin if(count=284)begin begin count=count+12d1。end if(in=5b01101)state=state13。else begin out=0。state=state0。end end else begin begin out=out。count=0。end if(in=5b01101)state=state13。else begin out=0。state=state0。end end end state14:begin if(count=251)begin begin count=count+12d1。

25、end if(in=5b01110)state=state14。else begin out=0。state=state0。end end begin else 。if(in=5b01110)state=state14end 。count=0。out=outbegin begin else out=0。state=state0。end end end state15:begin if(count=1912)begin begin count=count+12d1。end if(in=5b01111)state=state15。else begin out=0。state=state0。end

26、end else begin begin out=out。count=0。end if(in=5b01111)state=state15。else begin out=0。state=state0。end end end state16:begin if(count=1704)begin begin count=count+12d1。end if(in=5b10000)state=state16。else begin out=0。state=state0。end end else begin begin out=out。count=0。end if(in=5b10000)state=state

27、16。else begin out=0。state=state0。end end end state17:begin if(count=1518)begin begin count=count+12d1。end if(in=5b10001)state=state17。else begin out=0。state=state0。end end else begin begin out=out。count=0。end if(in=5b10001)state=state17。else begin out=0。state=state0。end end end state18:begin if(coun

28、t=1432)begin begin count=count+12d1。end if(in=5b10010)state=state18。else begin out=0。state=state0。end end else begin begin out=out。count=0。end if(in=5b10010)state=state18。else begin out=0。state=state0。end end end state19:begin if(count=1276)begin begin count=count+12d1。end if(in=5b10011)state=state19。else begin out=0。state=state0。end end else begin begin out=out。count=0。end if(in=5b10011)state=state19。else begin out=0。state=state0。end end end state20:begin if(count=1136)begin begin count=count+12d1。end if(in=5b101

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1