基于fpga音乐硬件演奏电路设计内容摘要:
(2) 地址发生器模块 地址发生器模块设置了一个 8 位二进制计数器 (计数最大值为 256),作为音符数据 ROM 的地址发生器。 每来一个时钟脉冲信号 (Clk), 8位二进制计数器就计数一次, ROM 文件中的地址也就随着递增,音符数据 ROM 中的音符也就一个接一个连续的取出来了。 在 地址发生器的 VHDL 设计 中, 这个 计数器的计数频率选为 4Hz,即每一计数值的停留时间为 秒,恰为当全音符设为 1秒,四四拍的 4分音符持续时间。 例如,地址发生器在以下的 VHDL 逻辑描述中,“梁祝”乐曲的第一个音符为“ 3”,此音在逻辑中停留了 4个时钟节拍,即 1秒时间。 那么相应随着程序 [4]中的计数器按 4Hz的时钟频率作加法计数时,即随地址递增时,将从音符数据 ROM 中将连续取出 4 个音符“ 3”通过 toneindex[3..0]端口输向分频预置数模块。 这样梁祝乐曲中的音符就一个接一个的通过 toneindex[3..0]端口输向分频预置数模块。 音乐谱对应分频预制数查表电路模块 (1) 音乐谱分频预置数模块 (2) 音乐谱对应分频预制数查表电路 VHDL 程序 设计 音乐谱分频预置数模块是乐曲简谱码对应的分频预置数查表电路。 它提供了每个音符所对应的分频预置数,即给数控分频模块提供计数初值,这里以“梁祝”乐曲为例,列出了在这个乐曲中所用到的 13 个音符的分频预置数。 河南机电高等专科学校课程设计论文 《 VHDL 硬件语言》课程设计论文 在这个模块的 VHDL 逻辑描述中设置了 四四拍 乐曲中全部音符所对应的分频预置数,共 13个,每一音符的停留时间由音乐节拍和地址发生器模块的时钟( Clk)的输入频率 决定,在此为 4Hz。 这 13个值的输出由程序 [3]的 4位输入值 index[3..0]确定。 输向程序 [4]中 index[3..0]的值又由地址发生器模块的输出 toneindex[3..0]的输出值和持续时间决定。 模块的功能是输出各个音符所对应的分频预置数, 即 当 index 是“ 0000”, tone输出为 2047,即休止符的分频预置数;当 index 是“ 0101”时, tone 输出为 1197即低音 5 的分频预置数;当 index 是“ 1111”时, tone 输出为 1728 即高音 1的分频预置数等等其它状态时, tone 分别输出 相应音符的分频预置数。 分频预置数模块的 VHDL 设计程序如下: LIBRARY IEEE。 音乐谱对应分频预制数查表电路模块 USE。 ENTITY ToneTaba IS PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0)。 4 位 预制数查表 CODE : OUT STD_LOGIC_VECTOR (3 DOWNTO 0)。 HIGH : OUT STD_LOGIC。 音乐高 8 度 指示 Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0) )。 音乐符对应分频 11位 END。 ARCHITECTURE one OF ToneTaba IS BEGIN Search : PROCESS(Index) BEGIN CASE Index IS 译码电路,查表方式,控制音调的预置数 13组频率 WHEN 0000 = Tone=11111111111。 CODE=0000。 HIGH =39。 039。 2047 WHEN 0001 = Tone=01100000101。 CODE=0001。 HIGH =39。 039。 773。 WHEN 0010 = Tone=01110010000。 CODE=0010。 HIGH =39。 039。 912。 WHEN 0011 = Tone=10000001100。 CODE=0011。 HIGH =39。 039。 1036。 WHEN 0101 = Tone=10010101101。 CODE=0101。 HIGH =39。 039。 1197。 WHEN 0110 = Tone=10100001010。 CODE=0110。 HIGH =39。 039。 1290。 WHEN 0111 = Tone=10101011100。 CODE=0111。 HIGH =39。 039。 1372。 WHEN 1000 = Tone=10110000010。 CODE=0001。 HIGH =39。 139。 1410。 WHEN 1001 = Tone=10111001000。 CODE=0010。 HIGH =39。 139。 1480。 河南机电高等专科学校课程设计论文 《 VHDL 硬件语言》课程设计论文 S pe ak erain s tc lkT on e[ 10 . . 0]S pk SDE N AQP R EC L RA [ 3 . . 0 ]B [ 3 . . 0 ]O U T [ 3 . . 0 ]A D D E RA [ 1 0 . . 0 ]B [ 1 0 . . 0 ]O U T [ 1 0 . . 0 ]A D D E RA [ 1 1 . . 0 ]B [ 1 1 . . 0 ]O U TE Q U A LDE N AQP R EC L RA [ 3 . . 0 ]B [ 3 . . 0 ]O U TL E S S _ T H A NDE N AQP R EC L RD QP R EE N AC L RD QP R EE N AC L RSELD A T A AD A T A BO U T 0M U X 2 1\ D e l a y Sp kS : C o u n t 2 Sp kS ~re g 0cl kSp kST o n e [ 1 0 . . 0 ]F u l l Sp kS\ G e n Sp kS : C o u n t 1 1 [ 1 0 . . 0 ]Eq u a l 01 39。 h 0 1 2 39。 h 7 F F \ D i v i d e C L K: C o u n t 4 [ 3 . . 0 ]A d d 04 39。 h 1 A d d 11 1 39。 h 0 0 1 C o u n t 1 1 ~[ 1 0 . . 0 ]L e s s T h a n 04 39。 h B WHEN 1010 = Tone=11000000110。 CODE=0011。 HIGH =39。 139。 1542。 WHEN 1100 = Tone=11001010110。 CODE=0101。 HIGH =39。 139。 1622。 WHEN 1101 = Tone=11010000100。 CODE=0110。 HIGH =39。 139。 1668。 WHEN 1111 = Tone=11011000000。 CODE=0001。 HIGH =39。 139。 1728。 WHEN OTHERS = NULL。 END CASE。 END PROCESS。 END。 音乐符数控 11 分频电路模块 (1) 音乐符数控 11 分频电路模块 (2) 音乐符数控 11 分频电路模块 RTL 电路图 河南机电高等专科学校课程设计论文 《 VHDL 硬件语言》课程设计论文 (3) 音乐符数控 11 分频 模块 电路 VHDL 程序 设计 音符的频率由数控分频模块获得,这是一个数控分频电路。 它是由一个初值可变的加法计数器构成。 该计数器的模为 2047,当计数器记满时,计数器产生一个溢出信号 FULL,此溢出信号就是用作发音的频率信号。 在计数器的输入端给定不同的初值,而此预置数就是表 1 中的计数初值,就可得到不同音符的发音频率信号。 它计满时所需要的计数初值可由下式来表示。 计数初值( Tone) =2047分频系数 而分频系数又可有下式来求: 分频系数 =基准频率 /音符的发生频率 低音时 Tone 值小,分频系数大,溢出信号周期长,扬声器发出的声音低, Tone随音乐的乐谱变化大,自动控制分频比,实现了数控分频,发生信号的频率与音调Tone 成正比。 这就是利用数控分频器自动演奏音乐的原理。 时钟( Clk)端输入的是在十六进制模块里对 12MHz 的信号进行 16 分频得到的750KHz, 750KHz 的信号根据分频预置数模块中所提供的计数初值,分别得出相 应音符频率的两倍值。 此时从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个 D 触发器以均衡其占空比,这时的频率就变为原来的 1/2,刚好就是相应音符的频率。 数控分频模块中对 Clk 输入信号的分频比由 11 位预置数 tone[10..0]决定。 Fout 的输出频率将决定每一个音符的音调,这样,分频计数器的预置值 tone[10..0]与 Fout 的输出频率就有了对应关系。 例如在分频预置数模块中若取 tone[10..0]=1036,将发出音符为“ 3”音的信号频率。 音符的频率由数控分频模块 VHDL 程序如下: LIBRARY IEEE。 音乐符数控分频电路模块 USE。 USE。 ENTITY Speakera IS PORT ( clk : IN STD_LOGIC。 音调频率信号 12MHZ Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0)。 音乐符对应分频 11 位。基于fpga音乐硬件演奏电路设计
相关推荐
File)图形文件是Windows采用的图形文件格式,在Windows环境下运行的所有图像处理软件都支持BMP图像文件格式。 Windows系统内部各图像绘制操作都是以BMP为基础的。 Windows ,因此把这种BMP图像文件格式称为设备相关位图DDB(devicedependent bitmap)文件格式。 Windows
过 开发 一个项目,既新闻阅读器来了解 Android 平台的相关特性和开发的流程。 具体来讲: 1, 通过分析当前阶段下各种人群的喜好和对事物的关注程度来选择究的项目,既 新闻阅读器。 根据相关的信息来选取相应的新闻源 作为 本项目的新闻来源。 3 2, 通过 独立 设计 UI 来了解 Android 以至于移动平台开发的 UI 的设计方法。 3, 通过选取相应的算法来读取 RSS 源的内容
,它在控制中会经常出现不稳定的情况,同时它的供电模式决定了它不能长时间地稳定工作。 工业级系列 GSM 模块 TC35i 的推 出正解 决了这个难题,它可以长时间地稳定工作。 用户可以完全放心地将它嵌入到应用系统中,不管是 对 OA(机关 办公自动化)系统,还是纯粹的短信息应用系统,它都能出色地完成任务。 日常生活中它的应用表现在以下几个方面: ( 1) GSM 机房 监控和远程维护管理应用银行
计方案 , 给出了系统 总体 框图,并且结合框图说明了系统的工作过程。 然后 对系统 的实现方法做了相应的比较,选定了 数据缓存 模块的设计方案,接着对各模块中所使用的关键芯片进行了选择与介绍。 本科毕业设计说明书(论文) 第 9 页 共 39 页 3 硬件电路设计 硬件电路设计工具介绍 Protel 是 Altium 公司在 80 年代末推出的 EDA 软件 ,在电子行业的 CAD 软件中
87[LRM87]。 1993 年 VHDL 重新修订,形成了新的标准,即 IEEE STD 1076— 1993[LRM93]。 从此以后,美国国防部实施新的技术标准,要求电子系 统开发商的合同文件一律采用 VHDL 文档。 即第一个官方 VHDL 标准得到推广、实施和普及。 它源于美国政府于 1980 年开始启动的超高速集成电路计划 ,VHDL 主要用于描述数字系统的结构,行为,功能和接口。
也不必关心最终设计实现的目标器件是什么; ( 4) VHDL 具有电路仿真与验证功能,可以保证设计的正确性,用户甚至不必编写如何测试相量 便可以进行源代码级的调试,而且设计者可以非常方便地比较各种方案之间的可行性及其优劣,不需做任何实际的电路实验; ( 5) VHDL 语言可以与工艺无关编程; ( 6) VHDL 语言标准、规范,易于共享和复用。 VHDL 语言的基本结构 VHDL