乐曲硬件演奏电路设计EDA课程设计报.doc
《乐曲硬件演奏电路设计EDA课程设计报.doc》由会员分享,可在线阅读,更多相关《乐曲硬件演奏电路设计EDA课程设计报.doc(16页珍藏版)》请在沃文网上搜索。
1、EDA课程设计目 录1摘要22.关键词23.正文33.1 任务要求3 3.2 设计原理分析3 3.3 相应模块的VHDL语言43.4 硬件原理图8 3.5实验测量数据整理83.6仿真分析结果9 3.7仿真结果分析、总结与解释及改进方案11 3.8设计内容优点12 3.9本实验改进方案124、经验体会135、参考文献14乐曲硬件演奏电路设计摘要:在电子设计技术领域可编程逻辑器件的广泛应用,为数字系统的设计带来极大的灵活性,本系统是采用EDA技术设计的一个分频器设计硬件乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它得主系统有三个模块组成。其由TONETABA.V
2、HD、NOTETABS.VHD、SPEAKERA.VHD三个部分组成。系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、整合。本系统功能比较齐全,有一定的使用价值。与利用微处理器(MPU)来实现乐曲演奏相比,一纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助于EDA工具和硬件描述语言,仅凭传统的数字逻辑电子技术,即使最简单的演奏电路也难以实现。组成乐曲的每个音符的发音频率值及其持续时间是乐曲能连续演奏所需的两个基本要素,问题是如何来获得这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所期望乐曲的演奏效果。模块NOTETABS类似于弹琴人的手指;TONE
3、TABA类似于琴键;SPEAKERA类似于琴弦或发声器。本实验设计项目以“梁祝”乐曲演奏电路的实现。关键词:EDA;VHDL;音调发生;分频;Max+plussII;正文:一、任务要求1、 利用分频器的设计,分析、及测试其功能,然后通过分频器测试音符的输出信号;2、 分析本次设计内容,掌握其各个模块的功能,输入不同的信号,仿真出其输出信号内容;3、 掌握EDA的使用工具Max+plussII,通过VHDL语言的编辑得出各个模块的电路内容;4、 组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需要的两个基本要素,运用这两个基本要素所对应的数值,通过纯硬件的手段实现乐曲的演奏效果;5
4、、 本设计是通过内部固定的音乐内容来实现音乐的自动播放,通过本次内容分析其优缺点,以及提出相关的改进方案;二、设计电路原理分析:本实验主要由三个模块组成。 模块一:为一个数控分频器SPEAKER,其中CLK端输一具有较高频率(12MHZ)的信号,通过SPEAKER分频后由SPKOUT输出。由于直接从数控分频中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动喇叭,需另加一个D触发器以均衡其占空比,但这时的频率将是原来的1/2。SPEAKER对CLK输入信号的分频比由11位预置数TONE10.0决定。SPKOUT的输出频率将决定每一音符的音调,这样分频计数器的预置值TONE10.0与SPKOU
5、T的输出频率就有了对应的关系。 模块二:TONETABA是确定乐曲的速度以及每个音符的节拍数。TONETABA的功能首先是为SPEAKER提供决定所发音符的分频预置数,而此数在SPEAKER输入口停留的时间为此音符的节拍值。模块TONETABA是乐曲简谱码对应的分频预置数查表电路,共13个,每一音符的停留时间由音乐节拍和音调发生器模块NOTETABS的CLK的输入频率决定,在此为4HZ。这13个值的输出由对应于TONETABA的4位输入值Index3.0确定,而Index3.0最多有16种可选值。输向TONETABA中的值ToneIndex3.0的输出与持续的时间由模块NOTETABS决定。
6、模块三:notetabs为音调发生器,在NOTETABS中设置了一个8位二进制计数器(计数最大值为138),这个计数器的计数频率选为4HZ,每一计数值的停留时间为0.25S,恰为当全音符设为0.75S时,四四拍的4分音符的持续时间三、相应模块的VHDL代码:1) 、Speaker的VHDL描述:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Speaker IS PORT ( clk : IN STD_LOGIC; Tone : IN STD_LOGIC_VECTOR (10 DOW
7、NTO 0); SpkS : OUT STD_LOGIC );END;ARCHITECTURE one OF Speaker IS SIGNAL PreCLK,FullSpks : STD_LOGIC;BEGIN DivideCLK : PROCESS(clk) VARIABLE Count4 : STD_LOGIC_VECTOR (3 DOWNTO 0); BEGIN PreCLK 11 THEN PreCLK= 1; Count4 :=0000; ELSIF clk EVENT AND clk =1 THEN Count4 :=Count4+1; END IF; END PROCESS;
8、GenSpkS : PROCESS(PreCLK,Tone) VARIABLE Count11 : STD_LOGIC_VECTOR (10 DOWNTO 0); BEGIN IF PreCLKEVENT AND PreCLK = 1 THEN IF Count11 = 16#7FF# THEN Count11 :=Tone ;FullSpkS=1; ELSE Count11 :=Count11+1 ;FullSpks= 0;END IF; END IF; END PROCESS;DelaySpkS : PROCESS(FullSpks) VARIABLE Count2 : STD_LOGIC
9、;BEGIN IF FullSpksEVENT AND FullSpks= 1 THEN Count2 :=NOT Count2; IF Count2= 1 THEN SpkS=1; ELSE SpkSTone=11111111111;CODE=0000;HIGHTone=01100000101;CODE=0001;HIGHTone=01110010000;CODE=0010;HIGHTone=10000001100;CODE=0011;HIGHTone=10010101101;CODE=0101;HIGHTone=10100001010;CODE=0110;HIGHTone=10101011
10、100;CODE=0111;HIGHTone=10110000010;CODE=0001;HIGHTone=10111001000;CODE=0010;HIGHTone=11000000110;CODE=0011;HIGHTone=11001010110;CODE=0101;HIGHTone=11010000100;CODE=0110;HIGHTone=11011000000;CODE=0001;HIGHNULL;END CASE;END PROCESS;END;3)、NoteTabs模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD
11、_LOGIC_UNSIGNED.ALL;ENTITY NoteTabs IS PORT(clk : IN STD_LOGIC; ToneIndex : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE one OF NoteTabs ISCOMPONENT MUSIC PORT(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_LOG
12、IC_VECTOR(7 DOWNTO 0);BEGIN CNT8:PROCESS(clk,Counter) BEGIN IF Counter=138 THEN Counter=00000000; ELSIF(clkEVENT AND clk=1)THEN CounterCounter,q=ToneIndex,inclock=clk);END;4)、顶层文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SONGER IS - 顶层设计PORT ( CLK12MHZ : IN STD_LOGIC;CLK8HZ : IN STD_LOGIC;CODE
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 乐曲 硬件 演奏 电路设计 EDA 课程设计
