1、 1 音乐发生器设计音乐发生器设计 目目 录录 一:设计任务与要求一:设计任务与要求3 二:总体框图二:总体框图3 三:选择器件三:选择器件4 四:功能模块四:功能模块5 1:Songer 模块6 1)music 模块(程序)9 2)NoteTabs 模块(程序 仿真图)6 3)ToneTaba 模块(程序 仿真图)7 4)Speakera 模块(程序 仿真图)9 2:div 模块(程序 仿真图)12 3:七段译码器模块(程序)14 五:总体设计电路图五:总体设计电路图1 1.顶层设计 VHDL描述 songer 模块16 2.顶层文件的仿真结果 3.管脚分配图 4.EDA 硬件验证 六:心得
2、体会六:心得体会19 七:参考资料七:参考资料21 2 前前 言言 乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。实现 方法有许多种,在众多的实现方法中,以纯硬件完成乐曲演奏,随着 FPGA 集成度的提高, 价格下降,EDA 设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。如 今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设 计者不允许以牺牲硅的效率达到保持结构的独特性。使用现今的 EDA 软件工具来应付这些 问题,并不是一件简单的事情。FPGA 预装了很多已构造好的参数化库单元 LPM 器件。通过 引入支持 LPM 的 E
3、DA 软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的 产品。本文介绍在 EDA 开发平台上利用 VHDL 语言设计数控分频器电路,用数控分频的原理 设计音乐硬件演奏电路,并定制 LPM-ROM 存储音乐数据,以挥着翅膀的女孩儿 菊花台乐 曲为例,将音乐数据存储到 LPM-ROM,就达到了以纯硬件的手段来实现乐曲的演奏效果。只 要修改 LPM-ROM 所存储的音乐数据,将其换成其他乐曲的音乐数据,再重新定制 LPM-ROM, 连接到程序中就可以实现其它乐曲的演奏。 3 一:设计任务与要求一:设计任务与要求 (1)利用数控分频器设计硬件乐曲演奏电路。 (2)利用给定的音符数据定制 R
4、OM“music”。 (3)设计乘法器逻辑框图,并在 QuartusII 上完成全部设计。 (4)与演奏发音相对应的简谱码输出在数码管上显示。 设计方案 方案一:利用纯硬件电路完成乐曲演奏。 方案二:利用 FPGA 来实现乐曲演奏电路。分成各个模块来完成演奏乐曲的任务。 方案对比 与利用 EDA 技术来实现音乐演奏相比较,纯硬件电路要复杂的多,而且不能在中途查 看是否正确。不如选择 EDA 来实现音乐演奏。 二:总体框图二:总体框图 图 1-电路原理框图 NOTETABS SPEAKERA 译码器 扬声器 TONETABAS 分频器 4 三:选择器件三:选择器件 1.EP1C12Q240C8
5、芯片及相应的连接设备 2.计算机 3.EDA 技术试验箱 四:功能模块四:功能模块 该主系统由三个模块:Songer.vhd、div.vhd、SEG7.Vhd(7 段译码器)组成。 首先定制 Songer.Vhd,此模块包括 3 个小模块,分别是 NoteTabs 模块,ToneTaba 模块,Speakera 模块,此外,我们还需建立一个名为“music”的 LPM_ROM 模块与 NoteTabs 模块连接。 根据给出的乘法器逻辑原理图及其模块的 VHDL 描述在 QUARTUS2 上完成设计。 完成编译,综合,仿真,管脚分配,编程下载。 1 对于模块 NoteTabs 的功能描述: 该模块的功能就是定义音符数据 ROM “music” 随着该模块中的计数器控制时钟频率速率作加法计数时,即地址值递增时,音符数据 ROM 中的音符数据。将从 ROM 中通过 ToneIndex40端口输向 ToneTaba 模块,演奏 挥着翅膀的女孩儿 菊花台 。在该模块中设置了一个 8 位二进制计数器(计数最 大值为 197) ,作为音符数据 ROM 的地址发生器。这个计