EDA课程设计-乐曲硬件演奏电路设计

上传人:飞*** 文档编号:2142882 上传时间:2017-07-20 格式:DOC 页数:9 大小:226KB
返回 下载 相关 举报
EDA课程设计-乐曲硬件演奏电路设计_第1页
第1页 / 共9页
EDA课程设计-乐曲硬件演奏电路设计_第2页
第2页 / 共9页
EDA课程设计-乐曲硬件演奏电路设计_第3页
第3页 / 共9页
EDA课程设计-乐曲硬件演奏电路设计_第4页
第4页 / 共9页
EDA课程设计-乐曲硬件演奏电路设计_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《EDA课程设计-乐曲硬件演奏电路设计》由会员分享,可在线阅读,更多相关《EDA课程设计-乐曲硬件演奏电路设计(9页珍藏版)》请在金锄头文库上搜索。

1、第 1 页 共 9 页课程设计名称:乐曲硬件演奏电路设计1、设计要求:利用数控分频器设计硬件乐曲演奏电路2、所用设备:计算机、Maxplus、下载实验箱(ZY11EDA13BE)3、设计原理:主系统由三个模块组成,其内部有三个功能模块:TONETABA.VHD、NOTABS.VHD 和 SPEAKERA.VHD。本设计项目作为“梁祝”乐曲演奏电路的实现。组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,问题是如何来获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果音符的频率由 U3-Speakera 获得,这是一个数控分频器。由其

2、时钟信号输入端 clk 输入一具有较高频率(这里是 12MHz)的信号,通过Speakera 分频后由 SPKOUT 输出,由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个 D 触发器以均衡其占空比,但这时的频率将是原来的 1/2。Speakera 对 clk 输入信号的分频比由 11 位预置数 Tone10.0决定。SPKOUT 的输出频率将决定每一音符的音调,这样分频计数器的预置值 Tone10.0与 SPKOUT 的输出频率就有了对应关系。例如在 ToneTaba 模块中若取 Tone10.0=1036,将发出音符为“3”音的信号频率。音符的持

3、续时间需根据乐曲的速度及每个音符的接拍数来确定,模块ToneTaba 的功能首先是为 Speakera 提供决定所发音符的分频预置数,而此数在 Speakera 输入口停留的时间即为此音符的节拍值。模块 ToneTaba 是乐曲简谱码对应的分频预置数查表电路,其中设置了“梁祝”乐曲全部音符所对应的分频预置数,共 13 个,每一音符的停留时间由音乐节拍和音调发生器模块NoteTabs 的 clk 的输入频率决定,在此为 4Hz。这 13 个值的输出由对应于ToneTaba 的 4 位输入值 Index3.0确定,而 Index3.0最多有 16 种可选值。输向 ToneTaba 中 Index3

4、.0的值 ToneIndex3.0的输出值与持续的第 2 页 共 9 页时间由模块 Notetabs 决定。在 NoteTabs 中设置了一个 8 位二进制计数器(计数最大值为 138) ,作为音符数据 ROM 的地址发生器。这个计数器的计数频率选为 4Hz,即每一计数值的停留时间为 0.25 秒,恰为全音符设为 1 秒时,四四拍的 4 分音符持续时间。例如,Notetabs 在以下的 VHDL 逻辑描述中, “梁祝”乐曲的第一个音符为“3” ,此音在逻辑中停留了 4 个时钟节拍,即 1 秒时间,相应地,所对应的“3”音符分频预置值 1036,在 Speakera 在输入端停留了 1 秒。随着

5、 NoteTabs 中的计数器按 4Hz 的时钟速率作加法计数时,即随地址值递增时,音符数据 ROM 中的音符数据将从 ROM 中通过 ToneIndex3.0端口输向 ToneTaba 模块, “梁祝”乐曲就开始连续自然地演奏起来了。4、顶层文件及各模块电路:顶层文件 Songer 如下:LIBRARY IEEE; -硬件演奏电路顶层设计USE IEEE.STD_LOGIC_1164.ALL;ENTITY Songer ISPORT( CLK12MHZ:IN STD_LOGIC; -音调频率信号CLK8HZ : IN STD_LOGIC; -节拍频率信号CODE1 : OUT STD_LOG

6、IC_VECTOR (3 DOWNTO 0); -简谱码输出显示HIGH1 : OUT STD_LOGIC; -高 8 度指示SPKOUT : OUT STD_LOGIC); -声音输出END;ARCHITECTURE one OF Songer ISCOMPONENT NoteTabsPORT ( clk : IN STD_LOGIC;ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);END COMPONENT;COMPONENT ToneTabaPORT (Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0);CODE

7、: OUT STD_LOGIC_VECTOR (3 DOWNTO 0);HIGH : OUT STD_LOGIC;Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0);END COMPONENT;COMPONENT SpeakeraPORT ( clk :IN STD_LOGIC;Tone :IN STD_LOGIC_VECTOR (10 DOWNTO 0);SpkS :OUT STD_LOGIC);END COMPONENT;SIGNAL Tone : STD_LOGIC_VECTOR (10 DOWNTO 0);SIGNAL ToneIndex : STD_L

8、OGIC_VECTOR (3 DOWNTO 0);BEGINu1 : Notetabs PORT MAP (clk=CLK8HZ,ToneIndex=ToneIndex);第 3 页 共 9 页u2 : ToneTaba PORT MAP (Index=ToneIndex,Tone=Tone,CODE=CODE1,HIGH=HIGH1);u3 : Speakera PORT MAP (clk=CLK12MHZ,Tone=Tone,Spks=SPKOUT);END;Speakera 如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_

9、LOGIC_UNSIGNED.ALL;ENTITY Speakera ISPORT ( clk : IN STD_LOGIC;Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0);SpkS : OUT STD_LOGIC );END;ARCHITECTURE one OF Speakera ISSIGNAL PreCLK,FullSpks : STD_LOGIC;BEGINDivideCLK : PROCESS(clk)VARIABLE Count4 : STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPreCLK 11 THEN PreCLK

10、ToneToneToneToneToneToneToneToneToneToneToneToneToneNULL;END CASE;END PROCESS;END;第 5 页 共 9 页NoteTabs 如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY NoteTabs ISPORT(clk : IN STD_LOGIC;ToneIndex : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE one OF NoteTabs IS

11、COMPONENT MUSICPORT(address:IN STD_LOGIC_VECTOR(7 DOWNTO 0);inclock:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;SIGNAL Counter:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINCNT8:PROCESS(clk,Counter)BEGINIF Counter=138 THEN CounterCounter,q=ToneIndex,inclock=clk);END;乐曲演奏数据:WIDTH=4; -梁祝乐曲演奏数据DE

12、PTH=256;ADDRESS_RADIX=DEC;DATA_RADIX=DEC;CONTENT BEGIN -实用文件中要展开以下数据,每一组占一行00:3;01:3;02:3;03:3;04:5;05:5;06:5;07:6;08:8;09:8;10:8;11:9;12:6;13:8;14:5;15:5;16:12;17:12;18:12;19:15;20:13;21:12;22:10;23:12;24:9;25:9;26:9;27:9;28:9;29:9;30:9;31:0;32:9;33:9;34:9;35:10;36:7;37:7;38:6;39:6;40:5;41:5;42:5;4

13、3:6;44:8;45:8;46:9;47:9;48:3;49:3;50:8;51:8;52:6;53:5;54:6;55:8;56:5;57:5;58:5;59:5;60:5;61:5;62:5;63:5;64:10;65:10;66:10;67:12;68:7;69:7;70:9;71:9;72:6;73:8;74:5;75:5;76:5;77:5;78:5;79:5;80:3;81:5;82:3;83:3;84:5;85:6;86:7;87:9;88:6;89:6;90:6;91:6;92:6;93:6;94:5;95:6;96:8;97:8;98:8;99:9;100:12;101:1

14、2;102:12;103:10;104:9;105:9;106:10;107:9;108:8;109:8;110:6;111:5;112:3;114:3;115:3;116:8;117:8;118:8;119:8;第 6 页 共 9 页120:6;121:8;122:6;123:5;124:3;125:5;126:6;127:8;128:5;129:5;130:5;131:5;132:5;133:5;134:5;135:5;136:0;137:0;138:0;END;定制 LPM_ROM 元件第 7 页 共 9 页第 8 页 共 9 页仿真图:四、管脚锁定:锁定管脚如下:端口: 锁定到引脚:C

15、LK12MHz 79CLK8Hz 183CODE13 19CODE12 24CODE11 25CODE10 26HIGH1 44SPKOUT 68五、硬件仿真结果:下载完成后,蜂鸣器即发出声音,演奏出“梁祝”乐曲。演奏过程中,数码管会按音符不同显示所演奏的音符简谱。同时,发光二极管也会按音符显示出此音符为高音或低音。七、心得体会与总结:此次课程设计主要参考了教材中硬件演奏电路的设计其中先期对数控分频器的原理进行了学习。第 9 页 共 9 页通过这次实验,加深了对所学知识的应用和掌握,收获很大!并学会了定制 LPM_ROM 文件。同时,通过引脚锁定,增强了对 ZY11EDA13BE 系统硬件的认识。本次课程设计也让我对乐曲演奏常识有所了解。这次课程设计实现的乐曲硬件演奏很有实践意义,对于我们即将走出校门的学生来说,很有锻炼效果!它是我们通过自己的亲身实践实现了预定的要求!通过本次课程设计也为以后进行工程实际问题的研究打下设计基础!8、参考资料:EDA 实验指导书 (XX 大学物电学院)EDA 技术实用教程 (科学出版社)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号