eda电子设计使用verilog语言电子琴实验报告Word文档下载推荐.docx

上传人:b****1 文档编号:15392012 上传时间:2022-10-29 格式:DOCX 页数:12 大小:255.49KB
下载 相关 举报
eda电子设计使用verilog语言电子琴实验报告Word文档下载推荐.docx_第1页
第1页 / 共12页
eda电子设计使用verilog语言电子琴实验报告Word文档下载推荐.docx_第2页
第2页 / 共12页
eda电子设计使用verilog语言电子琴实验报告Word文档下载推荐.docx_第3页
第3页 / 共12页
eda电子设计使用verilog语言电子琴实验报告Word文档下载推荐.docx_第4页
第4页 / 共12页
eda电子设计使用verilog语言电子琴实验报告Word文档下载推荐.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

eda电子设计使用verilog语言电子琴实验报告Word文档下载推荐.docx

《eda电子设计使用verilog语言电子琴实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《eda电子设计使用verilog语言电子琴实验报告Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。

eda电子设计使用verilog语言电子琴实验报告Word文档下载推荐.docx

简易电子琴的设计

主要功能:

(1)设计一个八音电子琴。

(2)由键盘输入控制音响,同时可自动演奏乐曲。

(3)用户可以将自己编制的乐曲存入电子琴,演奏时可选择键盘输入乐曲或者已存入的乐曲。

三、课程设计报告内容

3.1设计原理与思路

系统由数控分频器、乐曲存储模块以及发声模块组成。

数控分频器对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。

乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。

由发声模块产生音符对应的频率的信号来使扬声器发音。

(1)模块automusic

模块automsic由auto信号来选择发声的方式,auto=0时系统自动播放内置的音乐,auto=1时由键盘来手动演奏音乐。

(2)模块TONE

模块Tone是音阶发生器,当8位发声控制输入Index中某一位为高电平时,则对应某一音阶的数值将从端口Tone输出,作为获得该音阶的分频预置值;

同时由Code输出对应该音阶简谱的显示数码,如‘5’,并由High输出指示音阶高8度显示。

(3)模块Speaker

模块Speaker中的主要电路是一个数控分频器,它由一个初值可预置的加法计数器构成,当模块Speaker由端口Tone获得一个2进制数后,将以此值为计数器的预置数,对端口Clk12MHZ输入的频率进行分频,之后由Spkout向扬声器输出发声。

3.2操作过程

新建工程

添加模块

查找对应芯片

调试程序

波形仿真

生成逻辑图

设置管脚

3.3设计和调试过程中出现的问题及解决方法

在初次编写分频模块时候,使用的是比较基本的计数器分频法,编写程序后在modelsim软件中进行了仿真,发现无法观察到分频情况。

经过分析,原因是由于分频比过大,因此在波形图中很难观察到。

而且由于预分频的占空比很小,更难以观察到高电平。

在原因找到后,为了考察程序的性能,我们将输入频率减小。

同时适当缩小分频比,这样就得到了模块仿真中的分频波形。

4、设计总结和心得体会

通过这次课程设计发现,只有理论水平提高了;

才能够将课本知识与实践相整合,理论知识服务于教学实践,以增强自己的动手能力。

这个实验十分有意义我获得很深刻的经验。

通过这次课程设计,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性,,也从中得知了很多书本上无法得知的知识。

学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。

学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。

这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。

参考文献:

(五号,宋体加粗)

[1]潘松,《EDA实用教程》,科学出版社,2004年

附录:

(源程序)

moduletop(clk32MHz,handTOauto,code1,index1,high1,spkout);

inputclk32MHz,handTOauto;

//32MHz系统时钟,键盘输入/自动演奏

input[7:

0]index1;

//键盘输入信号

output[6:

0]code1;

//音符显示信号

outputhigh1,spkout;

//高低音节信号,音频信号

wire[10:

0]tone;

wire[7:

0]indx;

automusicu0(.clk(clk32MHz),.index2(index1),.index0(indx),.auto(handTOauto));

toneu1(.index(indx),.tone0(tone),.code(code1),.high(high1));

speakeru2(.clk1(clk32MHz),.tone1(tone),.spks(spkout));

Endmodule

moduleautomusic(clk,auto,index2,index0);

//实现自动演奏功能。

inputclk,auto;

//系统时钟;

键盘输入/自动演奏

0]index2;

output[7:

0]index0;

//音符信号输出

reg[7:

reg[4:

0]count0;

regclk2;

reg[22:

0]count;

always@(clk,auto)//此过程完成对系统时钟8M的分频,得到4Hz的信号clk2

begin

if(auto)

begin

count=23'

d0;

clk2<

=1'

b1;

end

elseif(clk)

begin

count=count+1'

if(count==23'

d4000000)clk2<

elseif(count==23'

d8000000)beginclk2<

b0;

count=23'

end

end

always@(posedgeclk2)//此过程完成自动演奏部分曲的地址累加

if(count0==5'

d31)

count0<

=5'

else

=count0+1'

always@(count0,auto,index2)

if(!

auto)

case(count0)//此case语句:

存储自动演奏部分的曲

5'

d0:

index0<

=8'

b00000100;

//3

d1:

d2:

d3:

d4:

b00010000;

//5

d5:

d6:

d7:

b00100000;

//6

d8:

b10000000;

//8

d9:

d10:

d11:

d12:

b00000010;

//2

d13:

d14:

b00000001;

//1

d15:

d16:

d17:

d18:

b00001000;

//4

d19:

d20:

d21:

d22:

d23:

d24:

d25:

d26:

d27:

d28:

d29:

d30:

d31:

default:

;

endcase

elseindex0<

=index2;

//键盘输入音符信号输出

end

moduletone(index,code,high,tone0);

//音阶发生器程序。

0]index;

//音符输入信号

0]code;

//音符显示信号

outputhigh;

//高低音显示信号

output[10:

0]tone0;

//音符的分频系数

reghigh;

reg[6:

reg[10:

always@(index)//此过程完成音符到音符的分频系数译码,音符的显示,高低音阶

case(index)

8'

b00000001:

begintone0=11'

d773;

code=6'

b1001111;

high=1'

b00000010:

d912;

b0010010;

b00000100:

d1116;

code=6'

b1001100;

b00010000:

d1197;

b0100100;

b00100000:

d1290;

b0100000;

b01000000:

d1372;

b0001111;

b10000000:

d1410;

b0000000;

default:

d2047;

b0000001;

endmodule

modulespeaker(clk1,tone1,spks);

//实现数控分频

inputclk1;

//系统时钟

input[10:

0]tone1;

//音符分频系数

outputspks;

//驱动扬声器的音频信号

0]tone2;

regspks;

regpreclk,full

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

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

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