文档详情

EDA课程设计--乐曲硬件演奏电路的VHDL设计.doc

发布:2018-05-09约3.04千字共7页下载文档
文本预览下载声明
EDA课程设计 题目:乐曲硬件演奏电路的VHDL设计 专业:通信工程 班级:通信 姓名: 学号: 设计题目:乐曲硬件演奏电路的VHDL设计 二、 设计目标:了解乐曲演奏的设计原理。掌握利用VHDL实现乐曲演奏的设计方法。完成乐曲硬件演奏电路的VHDL设计,并能实现以下功能:(1)能够播放“梁祝”乐曲。(2)能够通过LED显示音阶。(3)(选作)具有“播放/停止”功能,并在此基础上实现“按键演奏”的电子琴功能。 三、 设计原理:(含原理图) 图1:设计原理图 本设计由四个功能模块组成:数控分频与演奏发生器模块,即SPEAKERA;乐曲简谱码对应的分频预置数查表电路模块,即TONETABA;音乐节拍和音调发生器模块,即NOTETABS;LED音阶显示模块,即DECL7S。 SPEAKERA模块:获得音符的频率。这是一个数控分频器,由其clk端输入一个4MHz的信号,通过SPEAKERA分频后由SPKS输出。由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,须另加一个D触发器以均衡其占空比,但这时的频率将是原来的一半。SPEAKERA对clk输入信号的分频比由11位预置数TONE[10..0]决定。SPKS的输出频率将决定每一音符的音调,这样,分频计数器的预置值TONE[10..0]与SPKS的输出频率就有了对应关系。 TONETABA模块:音符的持续时间须根据乐曲的速度即每个音符的节拍数来确定,原理图中TONETABA的功能首先是为SPEAKERA提供决定所发音符的分频预置数,而此数在SPEAKERA输入口的停留时间即为音符的节拍值。模块TONETABA是乐曲简谱码对应的分频预置数查表电路,其中设置了梁祝乐曲全部音符所对应的分频预置数,共13个,每一音符的停留时间由音乐节拍和音调发生器模块NOTETABS的clk的输入频率决定,在此为4Hz.这13个数值的输出由对应于NOTETABA1的4位输入值Index[3..0]的输出值与持续时间由模块NOTETABS决定。 NOTETABS模块:在NOTETABS中设置了一个8位二进制计数器(计数最大值为138,因为共有138个音符),这个计数器的频率选为4Hz,即每一个计数值得停留时间为0.25秒,恰为当全音符设为1秒时,四四拍的4分音符持续时间。例如,NOTETABS在以下的VHDL逻辑描述中,梁祝乐曲的第一个音符为3,此音在逻辑中停留了4个时钟节拍,即1秒时间,相应地,所对应的3音符分频预置值为1036,在SPEAKERA的输入端停留了1秒。随着NOTETABS中的计数器按4Hz的时钟速率做加法计数时,即随着地址值递增时,音符数据ROM中的音符数据将从ROM中通过ToneIndex[3..0]端口输向ToneTaba模块,梁祝乐曲就开始连续自然地演奏起来了。 DECL7S:为了检验音阶的正确性,在ToneTaba中的输出端CODE[3..0]端接入LED显示模块以显示其音阶。 设计内容:(含状态转换图、软件流程图、说明文字等,不要附程序) 设计的系统框图: 图2:系统设计框图 设计内容一:定制NoteTabs模块中的音符数据ROM“music”,明确数据表中的数据位宽、深度和数据的表达类型。最后对ROM仿真,确认音符数据已经全部列入其中。 设计内容二:根据实验原理和各功能模块的VHDL描述,然后在max-plusⅡ上完整各功能模块的设计,包括编辑、编译、综合和仿真等。获得原理图,给出仿真波形,并进行分析。 设计内容三:仿真测试正确无误后,将设计编程下载到选定的目标器件中作进一步的硬件测试,以便最终了解设计项目的正确性。锁定引脚并编译,编程下载完成硬件测试。 五、仿真结果:(含仿真波形图) 图3:仿真波形图 经验证,Led显示音阶与music乐曲演奏数据相符合。 六、实验结果:(程序下载验证是否通过) 选定芯片,锁定引脚,下载,完成乐曲播放的功能,同时led显示相应的音阶,发光二极管显示高低音。 七、总结:(结论部分,可以附感想和建议) 在EDA课程设计两个星期,学到很多,不仅巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,进一步加深了对EDA的了解,我对有了更加浓厚的兴趣。编写程序时,遇到了不少问题,特别是各元件之间的连接总是有错误,在细心的检查下,终于找出了错误在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示通过这次课程设计使我理论与相结合的,只有理
显示全部
相似文档