可编程逻辑器件(PLD)的作用通常是作为嵌入式微处理器的逻辑能力扩展与作为数字式外部设备的接口。数字集成电路由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VUIC,几万门以上)以及许多具有特定功能的专用集成电路。随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担,系统设计师们更愿意自己设计ASIC芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了可编程逻辑器件,目前应用最广泛的当属现场可编程门阵列(Field Programmable Gate Array,FPGA)和复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)。
FPGA是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。它可通过编程现场配置内部具体逻辑,使得数字系统的设计变得灵活方便。设计师可以根据实际需要,通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里,可以随时修改自己的设计而不必重新设计电路板,可以方便更正程序中的错误,使得产品可以快速成品。
CPLD的集成度比FPGA更高,也是一种用户根据各自需要而自行构造逻辑功能的ASIC。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。CPLD多用于实现系统数字接口,如MPU与串行通信芯片8251的接口、MPU与光电编码器的接口及MPU的数字I/O扩展。图2-1所示为某语音系统的接口框图,MPC860是系统MHJ,DSP芯片用于语音信号的采集、滤波、压缩、格式转换等数据处理,其间的接口逻辑器件就是采用CPLD来实现的。
图2-1 某语音系统的接口框图(www.xing528.com)
通常CPLD的逻辑单元数在几千到十几万门之间,FPGA则多得多,一般在几万到几百万门之间。CPLD和FPGA的主要区别是它们的系统结构:CPLD是一个有限制性的结构,即由一个或者多个可编辑的逻辑组列和一些相对少量的锁定的寄存器构成,缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点,而FPGA有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂得多;CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体;CPLD和FPGA还有一个区别,即CPLD下电之后,原有烧入的逻辑结构不会消失,而FPGA下电之后,再次上电时,需要重新加载Flash里面的逻辑代码,需要一定的加载时间。
在一些智能化设备中,常常采用“CPU+DSP+PLD”这种结构,其CPU作为系统的控制单元,配上合适的操作系统和程序,保证系统资源的合理利用和调配,系统不复杂时也可省掉而让DSP来承担这部分工作;DSP芯片则用来做一些专门的信息处理,包括信号的压缩和编解码、信令信号的产生和识别等。而PLD用来实现各种芯片之间的接口控制,保证各芯片之间的正常通信。这种结构简洁明了,设计方便灵活,而且可以大大地缩短开发时间。图2-2所示的是一个“FPGA+DSP”的实时视频采集与处理系统,采用视频A-D芯片把摄像头获取的模拟PAL制式视频信号转换为YUV4∶2∶2的数字视频信号;FPGA芯片EP1C6Q240C8作为协处理器,来完成视频信号的缓存和视频帧的合成,并将视频数据传入到DSP中;DSP完成需高速运算的视频处理算法(如编码、压缩等),最后对处理完的视频数据进行传输和存储,主处理器DSP同时还负责系统管理和参数配置等。
图2-2 FPGA+DSP的实时视频采集与处理系统图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。