EDA课程设计--梁祝乐曲演奏电路设计

EDA课程设计--梁祝乐曲演奏电路设计

ID:35627196

大小:158.50 KB

页数:10页

时间:2019-04-03

EDA课程设计--梁祝乐曲演奏电路设计_第1页
EDA课程设计--梁祝乐曲演奏电路设计_第2页
EDA课程设计--梁祝乐曲演奏电路设计_第3页
EDA课程设计--梁祝乐曲演奏电路设计_第4页
EDA课程设计--梁祝乐曲演奏电路设计_第5页
资源描述:

《EDA课程设计--梁祝乐曲演奏电路设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、EDA课程设计班级:通信工程四班姓名:学号:时间:设计一:梁祝乐曲演奏电路设计一.设计任务1)了解乐曲演奏电路的实验原理。2)掌握利用可编程器件实现乐曲演奏的设计方法。二.设计分析根据声学知识,组成乐曲的每个音符的发声频率值及其持续的时间是乐曲能连续弹奏所需的两个基本要素,获取这两个要素所对应的数值和通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果是该实验的关键。实验原理图原理电路如上图所示,实验由三个模块组成:1)数控分频与演奏发生器模块,即SPEAKERA。2)乐曲简谱码对应的分频预置数查表电路模块,即TONETA

2、BA。3)音乐节拍和音调发生器模块,即NOTETABS。模块一(SPEAKERA):产生音符的频率。这是一个数控分频器,由其clk端输入一个12MHz的信号,通过SPEAKERA分频后由SPKOUT输出,由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,须另加一个D触发器以均衡其占空比,但这时的频率将是原来的一半。SPEAKERA对clk输入信号的分频比由11位预置数TONE[10..0]决定。SPKOUT的输出频率将决定每一音符的音调,这样,分频计数器的预置值TONE[10..0]与SPKO

3、UT的输出频率就有了对应关系。模块二(TONETABA):音符的持续时间须根据乐曲的速度即每个音符的节拍数来确定,原理图中TONETABA的功能首先是为SPEAKERA提供决定所发音符的分频预置数,而此数在SPEAKERA输入口的停留时间即为音符的节拍值。模块TONETABA是乐曲简谱码对应的分频预置数查表电路,其中设置了梁祝乐曲全部音符所对应的分频预置数,共13个,每一音符的停留时间由音乐节拍和音调发生器模块NOTETABS的clk的输入频率决定,在此为4Hz.这13个数值的输出由对应于NOTETABA1的4位输入值Ind

4、ex[3..0]的输出值与持续时间由模块NOTETABS决定。模块三(NOTETABS):在NOTETABS中设置了一个8位二进制计数器(计数最大值为138,因为共有138个音符),这个计数器的频率选为4Hz,即每一个计数值得停留时间为0.25秒,恰为当全音符设为1秒时,四四拍的4分音符持续时间。例如,NOTETABS在以下的VHDL逻辑描述中,梁祝乐曲的第一个音符为3,此音在逻辑中停留了4个时钟节拍,即1秒时间,相应地,所对应的3音符分频预置值为1036,在SPEAKERA的输入端停留了1秒。随着NOTETABS中的计数器

5、按4Hz的时钟速率做加法计数时,梁祝乐曲就开始连续自然地演奏起来了。三.实验程序:模块一(speakera):libraryieee;useieee.std_logic_1164.all;entityspeakeraisport(clk:instd_logic;tone:inintegerrange0to16#7FF#;spks:outstd_logic);end;architectureoneofspeakeraissignalpreclk:std_logic;signalfullspks:std_logic;begind

6、ivideclk:process(clk)variablecount4:integerrange0to15;beginpreclk<='0';ifcount4>11thenpreclk<='1';count4:=0;elsifclk'eventandclk='1'thencount4:=count4+1;endif;endprocess;genspks:process(preclk,tone)variablecount11:integerrange0to16#7FF#;beginifpreclk'eventandpreclk

7、='1'thenifcount11=16#7FF#thencount11:=tone;fullspks<='1';elsecount11:=count11+1;fullspks<='0';endif;endif;endprocess;delayspks:process(fullspks)variablecount2:std_logic;beginiffullspks'eventandfullspks='1'thencount2:=notcount2;ifcount2='1'thenspks<='1';elsespks<='0

8、';endif;endif;endprocess;end;模块二(tonetaba):libraryieee;useieee.std_logic_1164.all;entitytonetabaisport(index:inintegerrange0to15;code:outintegerr

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

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

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