用quartus_ii设计电子琴

用quartus_ii设计电子琴

ID:18430597

大小:226.23 KB

页数:10页

时间:2018-09-17

用quartus_ii设计电子琴_第1页
用quartus_ii设计电子琴_第2页
用quartus_ii设计电子琴_第3页
用quartus_ii设计电子琴_第4页
用quartus_ii设计电子琴_第5页
资源描述:

《用quartus_ii设计电子琴》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、电子设计自动化课程设计报告院系:信息工程学院专业:电子信息工程学号:200811014姓名:张晓坡同组人:孙成、吴杲指导教师:段美霞、袁胜、张晓华2011年12月29日目录1.设计题目…………………………………………………32设计任务及目的…………………………………………33程序设计3.1硬件电子琴电路模块设计………………………43.2完整程序代码……………………………………53.3程序仿真及结果…………………………………84总结体会…………………………………………………9用Quartus_II设计电子琴1.设计题目:用Quartus_II设计电子琴2.设计任务及要求:(1)设计

2、一个八音电子琴。(2)由键盘输入控制音响,同时可自动演奏乐曲。(3)用户可以将自己编制的乐曲存入电子琴,演奏时可选择键盘输入乐曲或者已存入的乐曲。3.程序设计3.1硬件电子琴模块设计系统由数控分频器和乐曲存储模块组成。数控分频器对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。(1)模块Speaker模块Speaker中的主要电路是一个数控分频器,它由一个初值可预置的加法计数器构成,当模块Speaker由端口Ton

3、e获得一个2进制数后,将以此值为计数器的预置数,对端口Clk12MHZ输入的频率进行分频,之后由Spkout向扬声器输出发声。(2)模块TONE模块Tone是音阶发生器,当8位发声控制输入Index中某一位为高电平时,则对应某一音阶的数值将从端口Tone输出,作为获得该音阶的分频预置值;同时由Code输出对应该音阶简谱的显示数码,如‘5’,并由High输出指示音阶高8度显示。在原设计的基础上,增加一个Notetabs模块用于产生节拍控制(Index数据存留时间)和音阶选择信号,即在Notetabs模块放置一个乐曲曲谱真值表,由一个计数器的计数值来控制此真值表的输出,而由此计数器的

4、计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。3.2完整程序代码modulesonger(Clk1,Clk2,Code1,High1,Spkout,reset);inputClk1,Clk2,reset;output[3:0]Code1;outputHigh1,Spkout;wire[10:0]Tone;wire[3:0]ToneIndex;wireClk1,CLK2;NoteTabsu1(.Clk2(Clk2),.reset(reset),.ToneIndex(ToneIndex));ToneTabau2(.Index(ToneIndex),.C

5、ode(Code1),.High(High1),.Tone(Tone));Speakerau3(.Clk1(Clk1),.Tone(Tone),.SpkS(Spkout));endmodulemoduleSpeakera(Clk1,Tone,SpkS);inputClk1;input[10:0]Tone;outputSpkS;regPreClk;regFullSpkS;reg[3:0]Count4;reg[10:0]Count11;regCount2;regSpkS;always@(posedgeClk1)beginif(Count4>11)beginPreClk<=1'b1;C

6、ount4<=1;endelsebeginPreClk<=1'b0;Count4<=Count4+4'b1;endendalways@(posedgePreClk)beginif(Count11>=11'h7FF)beginCount11<=Tone;FullSpkS<=1'b1;endelsebeginCount11<=Count11+11'b1;FullSpkS<=0;endendalways@(posedgeFullSpkS)beginCount2<=~Count2;if(Count2==1'b1)SpkS<=1'b1;elseSpkS<=1'b0;endendmodule

7、moduleToneTaba(Index,Code,High,Tone);input[3:0]Index;output[3:0]Code;outputHigh;output[10:0]Tone;reg[3:0]Code=0;regHigh=0;reg[10:0]Tone=0;alwaysbegincase(Index)4'b0000:beginTone<=11'b11111111111;Code<=4'b0000;High<=1'b0;end//20474'b0001:begin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。