MAX II采用了一种突破性的新型CPLD架构,是一种非易失性、即用性可编程逻辑系列。这种新型架构的成本是原先MAX 器件的一半,性能却是其两倍,功耗只有其十分之一。这种基于查找表的架构在最小的I/O焊盘约束的空间内提供了最多的逻辑容量。因此,MAX II CPLD是所有CPLD系列产品中成本最低、功耗最小和密度最高的器件。
基于成本优化的0。18微米6层金属Flash工艺,MAX II器件系列具有CPLD所有的优点,例如非易失性、即用性、易用性和快速传输延时性。以满足通用性,低密度逻辑应用为目标,MAX II器件成为接口桥接、I/O扩展、器件配置和上电顺序等应用最理想的解决方案。除这些典型的CPLD应用之外,MAX II器件还能满足大量从前在FPGA、ASSP和标准逻辑器件中实现的低密度可编程逻辑需求。
MAX II器件提供的密度范围从240到2210个逻辑单元(LE),最多达272个用户I/O管脚。
本次设计核心模块CPLD采用ALTERA公司MAX II系列的EPM240T100C芯片。该芯片共有100个管脚,内部240个逻辑单元,如图2。1所示,为该芯片的封装图及管脚功能[8]。
图2。1 EPM240T100C管脚封装图及管脚功能说明
2。2 总体设计思路
2。2。1总体设计框图与设计思路
如图2。2所示,是本设计的音乐播放器的原理框图。其核心模块为CPLD芯片,内部有音调发生器、音乐编码器和彩灯闪烁控制器三个模块。音乐编码器内储存着预先设定的四首歌曲的编码,通过改变音乐选择开关的状态可以决定当前要播放哪首音乐。音乐编码器控制着音调发生器和彩灯闪烁控制器,每当音乐节奏时钟送给音乐编码器一个时钟脉冲时,音乐编码器就当前要播放的音符的编码送给音调发生器和彩灯闪烁控制器。音调发生器根据编码对应的分频系数将基准时钟分频,得到当前要播放的音符所对应频率的脉冲,再用这个脉冲去激励扬声器,就可以得到这个音符的声音。彩灯闪烁控制器根据编码将当前要播放的音符对应的彩灯亮灭状态送给彩灯[9]。
核心部分CPLD利用VHDL语言来完成,其他部分通过外围电路实现。
图2。2音乐播放器的工作原理图
2。2。2 CPLD设计思路
在购买CPLD芯片之前,首先对所编写好的程序在Quartus II软件中进行编译仿真,在编译中,软件会自动计算出整个程序所需要的CPLD逻辑单元数。因此根据最后编译的结果,我们选择了EPM240型芯片,其内部逻辑单元数为240个,只要对程序进行一定的优化处理,即可以满足所有的设计要求。
另外,为了使整个设计尽量简洁,程序中的四首歌全部编写歌曲的高潮部分,这样听起来更加耳熟能详,同时也能节省更多的芯片内部资源。
2。2。3 外围电路设计思路
虽然在CPLD内部有对晶振时钟分频的模块,但是由于歌曲的固有频率需要较小,内部分频的话,会占有更多的内部资源,而且不方便每次在程序中对时钟调试,所以在外部单独接入两个时钟信号,分别提供给音乐时钟和彩灯闪烁时钟[10]。从模拟电路知识中可以知道,采用555定时器构成的多谐振荡器来实现这两块电路最佳,能够满足我们所需要的小频率时钟信号。
在开关的选择上,有两种方案,一为采用两门开关,产生两位二进制数组,更四个数,这样可以控制音乐播放,这种设计会减少一些芯片内部资源,但是在最后调试演示歌曲时,每放一首歌一首歌,都要拨动两个开关,比较麻烦;第二种方案则为直接接入四门开关,产生四位二进制数组,每一位对应一首歌曲,这样设计会利用多一些的内部资源,但演示过程中会更人性化,更方便。鉴于最后编译的结果,芯片内部资源允许四位二进制数组的开关程序,所以最后直接选用四位二进制数组开关。