手机版

乐曲硬件演奏电路设计(9)

发布时间:2021-06-11   来源:未知    
字号:

乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。实现方法有许多种,随着FPGA集成度的提高,价格下降,EDA设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。使用现今的EDA软件工具来应付这些问题,并不是一件简单的事情。FPGA预装了很多已构造好的参数

END IF;

END PROCESS;

u1:MUSICPORT MAP(address=>Counter,q=>ToneIndex,inclock=>clk); END one;

程序的功能是每来一个时钟,地址值递增1,并将这个地址上所存储的音符数据输出。当Clk来了一个时钟脉冲,输出相应地址上的音符3,地址值递增1;接下来的三个时钟脉冲来时,输出也是音符3,地址连续递增3次;再下一个脉冲来时,输出为音符5等等都符合模块中的音符数据文件中的地址/数据表。

3.2 分频预置数模块

分频预置数模块是乐曲简谱码对应的分频预置数查表电路。它提供了每个音符所对应的分频预置数,即给数控分频模块提供计数初值,以”两只老虎”乐曲为例,列出了在这个乐曲中所用到的13个音符的分频预置数。

3.2.1 分频预置数模块的VHDL设计

在这个模块的VHDL逻辑描述中设置了“两只老虎”乐曲中全部音符所对应的分频预置数,共13个,每一音符的停留时间由音乐节拍和地址发生器模块的时钟(Clk)的输入频率决定,在此为4Hz。这13个值的输出由程序的4位输入值index[3..0]确定。输向程序[4]中index[3..0]的值又由地址发生器模块的输出toneindex[3..0]的输出值和持续时间决定。程序如下:

library ieee;

use ieee.std_logic_1164.all;

entity tonetaba is

port(index: in std_logic_vector(3 downto 0);

code: out std_logic_vector(3 downto 0);

high: out std_logic;

tone: out std_logic_vector(10 downto 0));

乐曲硬件演奏电路设计(9).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)