论文部分内容阅读
自1985年Xilinx公司推出第一片现场可编程逻辑器件(FPGA)至今,FPGA已经历了十几年的发展历史。纵观现场可编程逻辑器件的发展历史,其之所以具有巨大的市场吸引力,根本在于;FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、芯片价格不断降低,促使FPGA越来越多地取代了ASIC的市场,特别是对小批量、多品种的产品需求,使FPGA成为首选。
目前,FPGA的主要发展动向是:随着大规模现场可编程逻辑器件的发展,系统设计进入“片上可编程系统”(SOPC)的新纪元:芯片朝着高密度、低压、低功耗方向挺进;国际各大公司都在积极扩充其IP库,优化的资源更好的满足用户的需求,以扩大市场;特别是引人注目的所谓FPGA动态可重构技术的开拓,将推动数字系统设计观念的巨大转变。
本文使用MaxPlusⅡ设计基于FPGA的乐曲演奏电路。
1.硬件发声的原理
声音的频谱范围约在几十到几千赫兹,只要利用程序来控制FPGA芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。乐曲中的每一音符对应着一个确定的频率,因此,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。
乐曲都是由一连串的音符组成,要想让硬件电路准确地演奏出一首乐曲,不仅要控制电路能按照乐曲的乐谱依次输出这些音符所对应的频率,还必须准确地控制乐曲的节奏,即每个音符的持续时间。因此,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。
2.音符频率的获得
在FPGA设计中,多个不同频率的信号,一般是通过对某个基准频率进行分频获得的。由于各个音符的频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频系数四舍五入取整。若基准频率过低,则分频系数过小,四舍五入取整后的误差较大。若基准频率过高,虽然可以减少频率的相对误差,但分频电路耗用的资源会增加。实际设计中应该综合考虑这两个方面的因素,在尽量减少频率误差的前提下,选取比较合适的基准频率。在本实验中,选取基准频率为2MHz。由于现有CPLD上外接有12MHz的高频时钟,故只需对其进行6分频,即可获得2MHz的基准频率信号。
对基准频率分频后获得的输出信号,是一些脉宽极窄的尖脉冲信号(占空比=1/分频系数)。为提高输出信号的驱动能力,以使扬声器有足够的功率发音,需另接一个T触发器均衡为对称方波(占空比为1:2),但这时的频率将是原来的1/2。表1中各音符的分频系数就是从2MHz基准频率二分频得到的1MHz频率基础上计算得到的。
由于最大的分频系数是3822,故分频器采用12位二进制计数器已能满足要求。对于乐曲中的休止符,只要将分频系数设为0,即初始值为212-1=4095,此时扬声器将不会发声。
3.乐曲节奏的控制
本实验中的梁祝乐曲,最小的节拍为1/4拍,若将一拍的时长定为1s,则只需要提供一个4Hz的时钟频率即可产生1/4拍的时长(0.25s),对于其它占用时间较长的节拍,如2/4拍(必定是1/4拍的整数倍),则只需要将该音符连续输出两遍即可。
4.音符及音阶的显示
为提高电路的实用性,可以通过数码管和LED来显示出乐曲演奏时的音符及其音调的高低。为此,本电路中采用一个数码管和3个LED,一个数码管用来动态显示乐曲演奏时的音符,3个LED则分别显示乐曲演奏时音符所对应的音调的高、中和低音。
综上所述,可以得到乐曲演奏电路的原理框图如图1所示。
目前,FPGA的主要发展动向是:随着大规模现场可编程逻辑器件的发展,系统设计进入“片上可编程系统”(SOPC)的新纪元:芯片朝着高密度、低压、低功耗方向挺进;国际各大公司都在积极扩充其IP库,优化的资源更好的满足用户的需求,以扩大市场;特别是引人注目的所谓FPGA动态可重构技术的开拓,将推动数字系统设计观念的巨大转变。
本文使用MaxPlusⅡ设计基于FPGA的乐曲演奏电路。
1.硬件发声的原理
声音的频谱范围约在几十到几千赫兹,只要利用程序来控制FPGA芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。乐曲中的每一音符对应着一个确定的频率,因此,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。
乐曲都是由一连串的音符组成,要想让硬件电路准确地演奏出一首乐曲,不仅要控制电路能按照乐曲的乐谱依次输出这些音符所对应的频率,还必须准确地控制乐曲的节奏,即每个音符的持续时间。因此,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。
2.音符频率的获得
在FPGA设计中,多个不同频率的信号,一般是通过对某个基准频率进行分频获得的。由于各个音符的频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频系数四舍五入取整。若基准频率过低,则分频系数过小,四舍五入取整后的误差较大。若基准频率过高,虽然可以减少频率的相对误差,但分频电路耗用的资源会增加。实际设计中应该综合考虑这两个方面的因素,在尽量减少频率误差的前提下,选取比较合适的基准频率。在本实验中,选取基准频率为2MHz。由于现有CPLD上外接有12MHz的高频时钟,故只需对其进行6分频,即可获得2MHz的基准频率信号。
对基准频率分频后获得的输出信号,是一些脉宽极窄的尖脉冲信号(占空比=1/分频系数)。为提高输出信号的驱动能力,以使扬声器有足够的功率发音,需另接一个T触发器均衡为对称方波(占空比为1:2),但这时的频率将是原来的1/2。表1中各音符的分频系数就是从2MHz基准频率二分频得到的1MHz频率基础上计算得到的。
由于最大的分频系数是3822,故分频器采用12位二进制计数器已能满足要求。对于乐曲中的休止符,只要将分频系数设为0,即初始值为212-1=4095,此时扬声器将不会发声。
3.乐曲节奏的控制
本实验中的梁祝乐曲,最小的节拍为1/4拍,若将一拍的时长定为1s,则只需要提供一个4Hz的时钟频率即可产生1/4拍的时长(0.25s),对于其它占用时间较长的节拍,如2/4拍(必定是1/4拍的整数倍),则只需要将该音符连续输出两遍即可。
4.音符及音阶的显示
为提高电路的实用性,可以通过数码管和LED来显示出乐曲演奏时的音符及其音调的高低。为此,本电路中采用一个数码管和3个LED,一个数码管用来动态显示乐曲演奏时的音符,3个LED则分别显示乐曲演奏时音符所对应的音调的高、中和低音。
综上所述,可以得到乐曲演奏电路的原理框图如图1所示。