乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。实现方法有许多种,随着FPGA集成度的提高,价格下降,EDA设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。使用现今的EDA软件工具来应付这些问题,并不是一件简单的事情。FPGA预装了很多已构造好的参数
2 乐曲演奏电路原理
2.1 音乐演奏电路原理
图1 电路原理框图
该主系统由三个模块:Songer顶层文件、div分频器、译码器组成。且Songer顶层文件还包括3个子文件分别是NoteTabs,ToneTaba和Speakera,此外,我们还需建立一个名为“music”的LPM_ROM模块与NoteTabs模块连接。
2.2 音符频率的获得
多个不同频率的信号可通过对某个基准频率进行分频器获得。由于各个音符的频率多为非整数,而分频系数又不能为小数,故必须将计算机得到的分频系数四舍五入取整。若基准频率过低,则分频系数过小,四舍五入取整后的误差较大。若基准频率过高,虽然可以减少频率的相对误差,但分频结构将变大。实际上应该综合考虑这两个方面的因素,在尽量减少误差的前提下,选取合适的基准频率。本文中选取750KHz的基准频率。由于现有的高频时钟脉冲信号的频率为12MHz,故需先对其进行16分频,才能获得750KHz的基准频率。对基准频率分频后的输出信号是一些脉宽极窄的尖脉冲信号(占空比=1/分频系数)。为提高输出信号的驱动能力,以使扬声器有足够的功率发音,需要再通过一个分频器将原来的分频器的输出脉冲均衡为对称方波(占空比=1/2),但这时的频率将是原来的1/2。
由于最大分频系数是1274,故分频器采用11位二进制计数器才能满足要求。