EDA课程设计报告--乐曲发生器资料.pdf
《EDA课程设计报告--乐曲发生器资料.pdf》由会员分享,可在线阅读,更多相关《EDA课程设计报告--乐曲发生器资料.pdf(21页珍藏版)》请在三一文库上搜索。
1、1 电子课程设计 音乐发生器设计 学院: 电子信息工程学院 专业班级 : 通信工程 101501 姓名: 孔翔 学号: 201015030109 指导教师 : 李东红 2012年 12 月 2 音乐发生器设计 目录 一:设计任务与要求,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
2、1. 顶层设计 VHDL 描述 songer模块,16 2. 顶层文件的仿真结果, 3. 管脚分配图, 4.EDA硬件验证 , 六:心得体会,19 七:参考资料,21 3 前言 乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。实现 方法有许多种,在众多的实现方法中,以纯硬件完成乐曲演奏,随着FPGA 集成度的提高, 价格下降, EDA设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。如 今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设 计者不允许以牺牲硅的效率达到保持结构的独特性。使用现今的EDA软件工具来应付这些 问题,并不是
3、一件简单的事情。FPGA 预装了很多已构造好的参数化库单元LPM器件。通过 引入支持 LPM的 EDA软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的 产品。本文介绍在 EDA开发平台上利用 VHDL 语言设计数控分频器电路,用数控分频的原理 设计音乐硬件演奏电路,并定制LPM-ROM 存储音乐数据,以 挥着翅膀的女孩儿 菊花台 乐 曲为例,将音乐数据存储到LPM-ROM,就达到了以纯硬件的手段来实现乐曲的演奏效果。只 要修改 LPM-ROM 所存储的音乐数据,将其换成其他乐曲的音乐数据,再重新定制LPM-ROM, 连接到程序中就可以实现其它乐曲的演奏。 4 一:设计任务与要求 (
4、1)利用数控分频器设计硬件乐曲演奏电路。 (2)利用给定的音符数据定制ROM “music” 。 (3)设计乘法器逻辑框图,并在QuartusII 上完成全部设计。 (4)与演奏发音相对应的简谱码输出在数码管上显示。 设计方案 方案一:利用纯硬件电路完成乐曲演奏。 方案二:利用 FPGA 来实现乐曲演奏电路。分成各个模块来完成演奏乐曲的任务。 方案对比 与利用 EDA 技术来实现音乐演奏相比较,纯硬件电路要复杂的多,而且不能在中途查 看是否正确。不如选择EDA 来实现音乐演奏。 二:总体框图 图 1-电路原理框图 NOTETABS SPEAKERA 译码器 扬声器 TONETABAS 分频器
5、5 三:选择器件 1.EP1C12Q240C8 芯片及相应的连接设备 2.计算机 3.EDA技术试验箱 四:功能模块 该主系统由三个模块: Songer.vhd 、div.vhd 、SEG7.Vhd(7段译码器 )组成。 首先定制 Songer.Vhd,此模块包括 3 个小模块,分别是NoteTabs 模块,ToneTaba 模块, Speakera 模块,此外,我们还需建立一个名为“music”的 LPM_ROM 模块与 NoteTabs 模块连接。 根据给出的乘法器逻辑原理图及其模块的VHDL 描述在 QUARTUS2上完成设计。 完成编译,综合,仿真,管脚分配,编程下载。 1 对于模块
6、NoteTabs 的功能描述:该模块的功能就是定义音符数据ROM“music” 随着该模块中的计数器控制时钟频率速率作加法计数时,即地址值递增时,音符数据 ROM 中的音符数据。将从ROM 中通过 ToneIndex40端口输向 ToneTaba模块,演奏 挥着翅膀的女孩儿菊花台。在该模块中设置了一个8 位二进制计数器(计数最 大值为 197) ,作为音符数据 ROM 的地址发生器。这个计数器的计数频率为4Hz,即每 一计数值的停留时间为0.25 秒,恰为当全音符设为1 秒时,四四拍的4 分音符持续 时间。 2对于模块ToneTaba ,是乐曲简谱码对应的分频预置数查找表电路,其中 设置了乐曲
7、的全部音符所对应的分频置数,每一音符的停留时间由音乐节拍和音 调发生器模块 NoteTabs 的 CLK的输入频率决定,这些值由对应于ToneTaba的 4 位输入值 Index40确定,最多有 16 种可选值。输向 ToneTaba中 Index40 的值 ToneIndex40的输出值与持续的时间由模块NoteTabs 决定。 6 3模块 Speakera 是一个数控分频器,音符的频率可由此模块获得。由CLK端输 入一具有较高频率的信号,通过Speakera 分频后由 SPKOUT 输出。由于直接从数控分 频器中出来的输出信号是脉宽极窄的脉冲式信号。为了利用驱动扬声器,需加一个D 触发器以
8、均衡其占空比,频率将是原来的1/2。Speakera 对 CLK输入信号的分频比由 预置数 Tone决定。SPKOUT 的输出频率将决定每一音符的音调。 4. SEG7 模块是一个七段译码器,作用是在硬件上显示音频的高低,用0 到 7 分 别对应空节拍、 do、ri 、mi、fa 、suo、la 、xi ,高音时, LED亮,数码管显示对应数 字。 1对于模块 songer。 挥着翅膀的女孩儿菊花台乐谱如下: 1)LPM_ROM 模块 7 定义音符数据ROM “music”。 Music 模块存放乐曲中的音符数据,它是利用 LPM-ROM 来实现的,将乐谱中相应的音符放在一个连续的地址上。它首
9、先是编 写音符数据文件, 将乐谱中相应的音符存放在一个连续的地址上。因为 1 拍的 时间定为 1 秒,提供的是 4Hz的时钟频率(即1/4 拍的整数倍),则需将这个 音符存储在相应次数的连续几个地址上。然后对音符数据进行ROM 定制。 随着 NoteTabs中的计数器按时钟频率速度作加法计数时,音符数据将从ROM 中通 过 ToneIndex 端口输向 ToneTaba模块。 2)NoteTabs 模块的程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity NoteTabs
10、is port (clk : in std_logic; ToneIndex : out std_logic_vector(4 downto 0); end; 8 architecture one of NoteTabs is component MUSIC PORT( address : IN STD_LOGIC_VECTOR (7 DOWNTO 0); clock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (4 DOWNTO 0) ); END component; signal Counter : std_logic_vector(7 downt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 报告 乐曲 发生器 资料
链接地址:https://www.31doc.com/p-5196792.html