1 概 述
随着 EDA 技术的进展,基于可编程 ASIC 的数字电子系统设计的完整方案越来越受
到人们的重视,并且以 EDA 技术为核心的能在可编程 ASIC 上进行系统芯片集成的新设
计方法,也正在快速地取代基于 PCB 板的传统设计方式。
与利用微处理器(CPU 或 MCU)来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻
辑要复杂得多,如果不借助于功能强大的 EDA 工具和硬件描述语言,仅凭传统的数字逻
辑技术,即使最简单的演奏电路也难以实现。如何使用 EDA 工具设计电子系统是人们普遍
关心的问题,本设计在美国 ALTERA 公司 MAX + plusⅡ的 EDA 软件平台上,使用层次化
设计方法,实现了乐曲发生器的设计。乐曲选取《梁祝》中化蝶部分,其简谱如图 1所示。
2 音符与频率的关系
我们知道,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的
2个基本要素,首先让我们来了解音符与频率的关系。
乐曲的12平均率规定:每 2 个八度音(如简谱中的中音 1 与高音 1)之间的频率相差 1
倍。在2 个八度音之间,又可分为12个半音,每2个半音的频率比为12√2。另外,音符 A(简
谱中的低音6)的频率为440Hz,音符 B 到 C 之间、E 到 F 之间为半音,其余为全音。由此
可以计算出简谱中从低音 l 至高音1 之间每个音符的频率,如表 1 所示。
产生各音符所需的频率可用一分频器实现,由于各音符对应的频率多为非整数,而分频
系数又不能为小数,故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低,则
由于分频系数过小,四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但会增
加分频器的分频级数。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下
取合适的时钟频率。本文设计的乐曲发生器选取6MHz 的基准频率。若无 6MHz 的时钟频
率,则可以先分频得到 6MHz 或换一个新的基准频率。实际上,只要各个音符间的相对频
率关系不变,演奏出的乐曲听起来都不会"走调"。