梁祝音乐实验报告Word格式文档下载.docx
《梁祝音乐实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《梁祝音乐实验报告Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
图2编译VHDL语言代码
图3编译成功
图4选择芯片并配置管脚
图5再次编译
图6加载硬件并下载VHDL语言代码
五、实验连线:
时钟(clk):
时钟输入信号是接在375KHz的时钟源上。
扬声器(Spk):
FPGA的输出是连接在扬声器的输入端,即Spk端。
六、实验VHDL语言代码:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
--------------------------------------------------------------------
entitypmusicis
port(clk:
instd_logic;
--ClockSignal
spk:
bufferstd_logic);
--speakerdriver
endpmusic;
architecturebehaveofpmusicis
signaltone:
std_logic_vector(10downto0);
signaltone_count:
signaltone_index:
integerrange0to15;
signalclk10_count:
std_logic_vector(17downto0);
signaltime:
integerrange0to150;
signalclk10:
std_logic;
begin
process(clk)--generate10hzclocksignal
if(clk'
eventandclk='
1'
)then
clk10_count<
=clk10_count+1;
if(clk10_count=16#3fff#)then
clk10<
=notclk10;
endif;
endprocess;
process(clk10)
if(clk10'
eventandclk10='
if(time=150)then
time<
=0;
else
=time+1;
casetimeis
when0=>
tone_index<
=3;
when1=>
when2=>
when3=>
when4=>
=5;
when5=>
when6=>
when7=>
=6;
when8=>
=8;
when9=>
when10=>
when11=>
=9;
when12=>
when13=>
when14=>
when15=>
when16=>
=12;
when17=>
when18=>
when19=>
=15;
when20=>
=13;
when21=>
when22=>
=10;
when23=>
when24=>
when25=>
when26=>
when27=>
when28=>
when29=>
when30=>
when31=>
when32=>
when33=>
when34=>
when35=>
when36=>
=7;
when37=>
when38=>
when39=>
when40=>
when41=>
when42=>
when43=>
when44=>
when45=>
when46=>
when47=>
when48=>
when49=>
when50=>
when51=>
when52=>
when53=>
when54=>
when55=>
when56=>
when57=>
when58=>
when59=>
when60=>
when61=>
when62=>
when63=>
when64=>
when65=>
when66=>
when67=>
when68=>
when69=>
when70=>
when71=>
when72=>
when73=>
when74=>
when75=>
when76=>
when77=>
when78=>
when79=>
when80=>
when81=>
when82=>
when83=>
when84=>
when85=>
when86=>
when87=>
when88=>
when89=>
when90=>
when91=>
when92=>
when93=>
when94=>
when95=>
when96=>
when97=>
when98=>
when99=>
when100=>
when101=>
when102=>
when103=>
when104=>
when105=>
when106=>
when107=>
when108=>
when109=>
when110=>
when111=>
when112=>
when113=>
when114=>
when115=>
when116=>
when117=>
when118=>
when119=>
when120=>
when121=>
when122=>
when123=>
when124=>
when125=>
when126=>
when127=>
when128=>
when129=>
when130=>
when131=>
when132=>
when133=>
when134=>
when135=>
when136=>
when137=>
when138=>
when139=>
whenothers=>
endcase;
process(tone_index)
casetone_indexis
tone<
="
11111111111"
;
--nooutput
01100000101"
--773
01110010000"
--912
10000001100"
--1036
10010101101"
--1197
10100001010"
--1290
10101011100"
--1372
10110000010"
--1410
10111001000"
--1480
11000000110"
--1542
11001010110"
--1622
11010000100"
--1668
11011000000"
--1728
--others:
nooutput
process(clk)--controlthefrequenceofthespeaker
if(tone_count=16#7ff#)then
tone_count<
=tone;
if(tone<
2047)then
spk<
=notspk;
=tone_count+1;
endbehave;
七、实验思考题:
1、注意时钟频率对实验结果的影响?
答:
音乐音符的产生就是利用计数器对输入的时钟信号进行分频,通过控制输出频率的不同来控制扬声器发出不同的声音。
时钟频率越高,输出音乐的节奏越快;
时钟频率越低,输出音乐的节奏越慢。
2、对于试验中出现的问题,应该如何解决?
(1)FPGA运行后,输出的音乐节奏太慢、太快:
这样的话,把输入的时钟频率适当调高或调低一点就行了(我自己做实验时用得那台实验设备,我个人觉得时钟频率1.5MHz或者3MHz都还行);
(2)FPGA运行后,输出的音乐声音太小:
这样的话,主要是输出方式选择得不对,我们可以通过中间的一个跳线的改变来选择蜂鸣器或者喇叭,直到输出音乐的音量比较适中为止。
八、实验体会:
对于这个应用性实验,在我做的过程中,个人觉得前期上课老师讲到的内容以及自己对VHDL语言编程和Quartus-II软件运用的掌握是关键。
首先是上课老师讲到的内容,正是有了老师的引导,我们才能最快速的入门,快速地进入到EDA课程相关内容的学习,虽然老师上课讲的内容绝大多数属于FPGA的硬件知识、VHDL语言的编写规则以及一些使用Qurtus-II软件的注意事项和常见问题的处理。
正是有了老师上课的引导,我们才能很快的进入EDA相关内容的学习,尤其是VHDL语言的学习。
如果上课不认真地听课,光靠自学是不可能掌握好这门语言的。
在我们的这次的EDA应用实验中,VHDL语言代码我们都是已知的,只要在实验前能够读懂程序代码就可以了。
虽然说是读懂事先给的程序代码,但是我们依然需要具备一定的VHDL语言的编写规则、常用到的语言结构、固定用法以及改错能力。
接下来就是利用硬件设备测试VHDL语言代码的正确与否,观察实验结果是否能达到预期的实验目的。
这些就需要我们能够熟练地使用Qurtus-II软件,包括使用软件修改语言代码中的错误,进行语言下载到硬件和相关硬件的配置。
这些讲起来都觉得很简单,在自己实际做实验的过程中,我总觉得我的能力不够,感觉有好多东西还不会,也有好多的东西是一知半解,不是很明确了解其作用和原理。
所以在做实验的时候,光是找东西就花费了不少时间。
还有就是我们对这样的内容接触的不是很多,而且接触的时间也不多由于还有一些原因就是我们关于这一方面的资料和了解一比较少,所以很多的时候很茫然。
导致实验中出现了错误,都不知道如何去解决,不知道是硬件问题还是软件层面上的问题,总是想依靠别人来帮自己。
在这次实验中,我就学着努力克服这些缺点,独立地去做每一实验,当依靠自己解决试验中出现的问题,那是一种巨大的成就感,觉得自己非常的充实。
这次实验,给我的最大的感受就是FPGA的功能太强大了。
通过这次实验,我感到自己所学到的还只是沧海之一粟,为了能让自己以后有更多的资本,进一步掌握它,我们还需要大量的时间去深入学习。
以上就是我一点实验体会,还有很多不成熟的观点,希望老师能给予批评指正。