1、 EDAEDA 技术技术 课程课程设计设计报告报告 摘要摘要 本次课程设计中我们成功设计出了具有自动播放和手动输入功能的音乐播放器, 播放器 由按键输入、音符输出、音调输出、选择输出、和数控分频五个模块组成。 其中各个模块的功能如下: (1)按键输入模块主要由控制按键和音符输入按键组成,党 控制按键按下时开始自动播放; (2) 音符输出模块主要实现将存储在 rom 表中的音符读出并 送入音调输出模块中; (3) 音调输出模块主要是通过查表来实现找到各个音调对应的分频预 置数; (4)选择输出模块主要是通过按键控制来实现自动播放和手动弹奏输出功能; (5)数 控分频模块实现在给定分频预置数的情况
2、下分频输出驱动蜂鸣器输出相应的音调。 关键词关键词:乐谱存储 乐谱输出 按键输入 选择输出 数控分频 第一章第一章 概述概述 随着计算机技术和集成电路技术的发展, 现代电子与电工设计, 已经步入了电子设 计自动化(EDA)的时代,采用虚拟仿真的手段对电子产品进行前期工作的调试,已成为 一种发展的必然趋势。通过对实际电子线路的仿真分析,从而提高对电路的分析、设计和创 新能力。EDA 技术作为现代电子设计最新技术的结晶,其广阔的应用前景和深远的影响已毋 庸置疑, 它在信息工程类专业中的基础地位和核心作用也逐渐被人们所认识。 许多高等学校 开设了相应的课程,并为学生提供了课程设计、综合实践、电子设计
3、竞赛、毕业设计、科学 研究和产品开发等 EDA 技术的综合应用实践环节。 相关的工程技术人员也特别重视学习 EDA 技术,并渴望提高其工程应用能力。 本次设计是在 EDA 开发平台上利用 VHDL 语言设计一个乐曲硬件演奏电路,由键盘输入 控制音响或自动演奏。 用户可以将自己编制的乐曲存入硬件演奏电路, 演奏时可以选择键盘 输入乐曲或者自动演奏已存入的乐曲。 第二章第二章 设计要求设计要求 2.1、FPGA 配合按键、蜂鸣器演奏一段简单音乐; 2.2、当前演奏音调对应的阿拉伯数字用一位数码管显示; 2.3、用 LED 灯亮的个数指示当前演奏音调。 第三章第三章 总体构思总体构思 首先将该任务分
4、成五个模块进行设计,分别为:乐谱存储、乐谱输出、按键输入、选择 输出、数控分频模块。系统设计框图如图 3.1 所示: 按键控制 notetabs Tonetaba 选择输出 音符输出 音调显示 分频输出 图 3.0 系统框图 3.1、乐谱存储(NoteTabs 模块) 该模块的功能就是定义音符数据 ROM“music”随着该模块中的计数器控制时钟频率速 率作加法计数时, 即地址值递增时, ROM 中的音符数据将从 ROM 中逐渐通过 ToneIndex30 端口输向 ToneTaba 模块,ROM 中存储的曲目被读出。对应模块图如图 3.1 所示: 图 3.1 notebas 模块图 3.2、
5、乐谱输出(ToneTaba 模块) 该模块主要是是乐曲简谱码对应的分频预置数查找表电路, 其中设置了乐曲的全部音符 对应的分频置数,每一音符的停留时间由音乐节拍和音调发生器模块 NoteTabs 的 CLK 的输 入频率决定, 这些值由对应于 ToneTaba 的 4 位输入值 Index30确定, 最多有 16 种可选值。 输向ToneTaba中Index30的值ToneIndex30的输出值与持续的时间由模块NoteTabs决定。 对应模块图如图 3.2 所示 图 3.2 tonetaba 模块 3.3、按键输入模块 该模块主要由控制按键 s8 控制自动播放或者手动输入,输入音符按键 s1
6、- -s7 分别代 表音符 1、2、3、4、5、6、7 七个音符,控制时钟 clk。同时 states 输出对应音符,led 显示输出音符的变化,pl 为十一位分频预置数来控制分频器分频输出。 图 3.3 按键输入模块图 3.4、选择输出模块 该模块通过控制按键 s9 来控制选择自动播放输出 (s9 为高电平) 或者按键弹奏输出 (s9 为低电平) 。 图 3.4 选择输出模块 3.5、数控分频模块 数控分频器的功能是当在输入端给定不同的输入数时,将对输入的时钟信号有不同的分频比, 数控分频器是用计数值可并行预置的加法计数器来完成的。在此,音符的频率可由数控分频器 Speakera 获得。由其 clk 端输入一具有较高频率的信号,通过 Speakera 分频后由 SpkS 输出,输 入的 clk 的频率经 16 分频后, 在经一次二分频驱动蜂鸣器发生。 Speakera 对 clk 输入信号的分频 比由 11 位预置数 Tone100决定。SpkS 的输出频率将决定每一音符的音调,这样分频计数器 的预置值 Tone100与 SpkS 的输出频率就有