可编程逻辑器件主要包括FPGA和CPLDFPGA是Field Programmable Gate Array缩写CPLD是Complex Promrammable Logic Device的缩写 从可编程逻辑器件的发展历史上来讲CPLD一般是指采用乘积相结构的基于EEPROM的器件所以具有非挥发的不需要外部配置ROM具有保密性和有限次编程次数(根据不同的结构从次到万次不等)等特点适合用在胶合逻辑(glue logic如DSP芯片外围的译码逻辑)IO扩展IO电平转换FPGA芯片配置等应用场合如Altera的MAX和MAX系列芯片Xilinx的XC和CoolRunner/II系列芯片Lattice的ispMACH/Z系列芯片都是CPLD器件容量从宏单元到宏单元不等 FPGA主要是指采用四输入查找表(LUT)的基于SRAM的器件因为SRAM是挥发的掉电丢失数据所以FPGA需要外部配置ROM上电的时候从外部的ROM把FPGA的配置数据导入到FPGA芯片内部后工作具有SRAM的FPGA采用标准的CMOS制造工艺可以随着最新的工艺而更新还代给用户带来了实惠衡量FPGA容量的一个基本指标是逻辑单元(Logic cell或者Logic element)由一个可编程得LUT和一个可编程的DFF组成LUT完成组合逻辑功能 而DFF用来实现时序功能FPGA的容量从几千的逻辑单元到几十万的逻辑单元不等如Altera的Cyclone/II/III和Stratix/II/III系列芯片Xilinx Spartan/E/A/AN和Virtex/系列芯片都是FPGA器件 随着芯片技术的发展CPLD和FPGA的概念已经模糊在一起如Altera和Lattice公司把小容量(小于K左右逻辑单元)非挥发的可编程器件归到CPLD里如Altera的MAXII系列和Lattice的MACH XO系列芯片把基于SRAM的FPGA和FLASH的储存单元做到一个芯片里面以及跟传统的CPLD不一样了 总之我们可以简单的区分FPGA和CPLDCPLD小容量(<K左右LE)的非挥发的可编程器件其它的可编程器件都可归到FPGA 系统的比较 尽管FPGA和CPLD都是可编程ASIC器件有很多共同特点但由于CPLD和FPGA结构上的差异具有各自的特点: ①CPLD更适合完成各种算法和组合逻辑FP GA更适合于完成时序逻辑换句话说FPGA更适合于触发器丰富的结构而CPLD更适合于触发器有限而乘积项丰富的结构 ②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的而FPGA的分段式布线结构决定了其延迟的不可预测性 ③在编程上FPGA比CPLD具有更大的灵活性CPLD通过修改具有固定内连电路的逻辑功能来编程FPGA主要通过改变内部连线的布线来编程FP GA可在逻辑门下编程而CPLD是在逻辑块下编程 ④FPGA的集成度比CPLD高具有更复杂的布线结构和逻辑实现 ⑤CPLD比FPGA使用起来更方便CPLD的编程采用EPROM或FASTFLASH技术无需外部存储器芯片使用简单而FPGA的编程信息需存放在外部存储器上使用方法复杂 ⑥CPLD的速度比FPGA快并且具有较大的时间可预测性这是由于FPGA是门级编程并且CLB之间采用分布式互联而CPLD是逻辑块级编程并且其逻辑块之间的互联是集总式的 ⑦在编程方式上CPLD主要是基于EPROM或FLASH存储器编程编程次数可达万次优点是系统断电时编程信息也不丢失CPLD又可分为在编程器上编程和在系统编程两类FPGA大部分是基于SRAM编程编程信息在系统断电时丢失每次上电时需从器件外部将编程数据重新写入SRAM中其优点是可以编程任意次可在工作中快速编程从而实现板级和系统级的动态配置 ⑧CPLD保密性好FPGA保密性差 ⑨一般情况下CPLD的功耗要比FPGA大且集成度越高越明显 随着复杂可编程逻辑器件(CPLD)密度的提高数字器件设计人员在进行大型设计时既灵活又容易而且产品可以很快进入市场许多设计人员已经感受到CPLD容易使用时序可预测和速度高等优点然而在过去由于受到CPLD密度的限制他们只好转向FPGA和ASIC现在设计人员可以体会到密度高达数十万门的CPLD所带来的好处 CPLD结构在一个逻辑路径上采用至个乘积项因而大型复杂设计的运行速度可以预测因此原有设计的运行可以预测也很可靠而且修改设计也很容易CPLD在本质上很灵活时序简单路由性能极好用户可以改变他们的设计同时保持引脚输出不变与FPGA相比CPLD的I/O更多尺寸更小 如今通信系统使用很多标准必须根据客户的需要配置设备以支持不同的标准CPLD可让设备做出相应的调整以支持多种协议并随着标准和协议的演变而改变功能这为系统设计人员带来很大的方便因为在标准尚未完全成熟之前他们就可以着手进行硬件设计然后再修改代码以满足最终标准的要求CPLD的速度和延迟特性比纯软件方案更好它的NRE费用低于ASIC更灵活产品也可以更快入市CPLD可编程方案的优点如下 ●逻辑和存储器资源丰富(Cypress DeltaK的RAM超过 Kb) ●带冗余路由资源的灵活时序模型| ●改变引脚输出很灵活 ●可以装在系统上后重新编程 ●I/O数目多 ●具有可保证性能的集成存储器控制逻辑 ●提供单片CPLD和可编程PHY方案 由于有这些优点设计建模成本低可在设计过程的任一阶段添加设计或改变引脚输出可以很快上市 CPLD的结构 CPLD是属于粗粒结构的可编程逻辑器件它具有丰富的逻辑资源(即逻辑门与寄存器的比例高)和高度灵活的路由资源CPLD的路由是连接在一起的而FPGA的路由是分割开的FPGA可能更灵活但包括很多跳线因此速度较CPLD慢 CPLD以群阵列(array of clusters)的形式排列由水平和垂直路由通道连接起来这些路由通道把信号送到器件的引脚上或者传进来并且把CPLD内部的逻辑群连接起来 CPLD之所以称作粗粒是因为与路由数量相比逻辑群要大得到CPLD的逻辑群比FPGA的基本单元大得多因此FPGA是细粒的 CPLD的功能块 CPLD最基本的单元是宏单元一个宏单元包含一个寄存器(使用多达个乘积项作为其输入)及其它有用特性 因为每个宏单元用了个乘积项因此设计人员可部署大量的组合逻辑而不用增加额外的路径这就是为何CPLD被认为是逻辑丰富型的宏单元以逻辑模块的形式排列(LB)每个逻辑模块由个宏单元组成宏单元执行一个AND操作然后一个OR操作以实现组合逻辑 每个逻辑群有个逻辑模块所有逻辑群都连接到同一个可编程互联矩阵 每个群还包含两个单端口逻辑群存储器模块和一个多端口通道存储器模块前者每模块有b存储器后者包含b专用通信存储器且可配置为单端口多端口或带专用控制逻辑的FIFO CPLD有什麽好处? I/O数量多 ? CPLD的好处之一是在给定的器件密度上可提供更多的I/O数有时甚至高达% 时序模型简单 CPLD优于其它可编程结构之处在于它具有简单且可预测的时序模型这种简单的时序模型主要应归功于CPLD的粗粒度特性 CPLD可在给定的时间内提供较宽的相等状态而与路由无关这一能力是设计成功的关键不但可加速初始设计工作而且可加快设计调试过程 粗粒CPLD结构的优点 CPLD是粗粒结构这意味着进出器件的路径经过较少的开关相应地延迟也小因此与等效的FPGA相比CPLD可工作在更高的频率具有更好的性能 CPLD的另一个好处是其软件编译快因为其易于路由的结构使得布放设计任务更加容易执行 细粒FPGA结构的优点 FPGA是细粒结构这意味着每个单元间存在细粒延迟如果将少量的逻辑紧密排列在一起FPGA的速度相当快然而随着设计密度的增加信号不得不通过许多开关路由延迟也快速增加从而削弱了整体性能CPLD的粗粒结构却能很好地适应这一设计布局的改变 灵活的输出引脚 CPLD的粗粒结构和时序特性可预测因此设计人员在设计流程的后期仍可以改变输出引脚而时序仍保持不变 为什么CPLD和FPGA需要不同的逻辑设计技巧? FPGA是细粒器件其基本单元和路由结构都比CPLD的小FPGA是寄存器丰富型的(即其寄存器与逻辑门的比例高)而CPLD正好相反它是逻辑丰富型的 很多设计人员偏爱CPLD是因为它简单易用和高速的优点CPLD更适合逻辑密集型应用如状态机和地址解码器逻辑等而FPGA则更适用于CPU和DSP等寄存器密集型设计 新的CPLD封装 CPLD有多种密度和封装类型包括单芯片自引导方案自引导方案在单个封装内集成了FLASH存储器和CPLD无须外部引导单元从而可降低设计复杂性并节省板空间在给定的封装尺寸内有更高的器件密度共享引脚输出这就为设计人员提供了放大设计的便利而无须更改板上的引脚输出 CPLD的功耗 与同样密度的FPGA相比CPLD的待机功耗更低 CPLD FPGA (待机电流(在Vcc 为V时)) K μA mA K μA mA K mA mA CPLD特别适合那些要求低功耗和低温度的电池供电应用像手持设备 许多设计人员都熟悉传统的PLD并喜欢这种结构所固有的灵活性和易用性CPLD为ASIC和FPGA设计人员提供了一种很好的替代方案可让他们以更简单方便易用的结构实现其设计CPLD现已达到数十万门的密度并可提供当今通信设计所需的高性能大于万门的设计仍需ASIC和FPGA但对于小型设计CPLD不失为一个高性价比的替代方案 FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念内部包括可配置逻辑模块CLB(Configurable Logic Block)输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分FPGA的基本特点主要有 )采用FPGA设计ASIC电路用户不需要投片生产就能得到合用的芯片 )FPGA可做其它全定制或半定制ASIC电路的中试样片 )FPGA内部有丰富的触发器和I/O引脚 )FPGA是ASIC电路中设计周期最短开发费用最低风险最小的器件之一 )FPGA采用高速CHMOS工艺功耗低可以与CMOSTTL电平兼容 可以说FPGA芯片是小批量系统提高系统集成度可靠性的最佳选择之一 目前FPGA的品种很多有XILINX的XC系列TI公司的TPC系列ALTERA公司的FIEX系列等 FPGA是由存放在片内RAM中的程序来设置其工作状态的因此工作时需要对片内的RAM进行编程用户可以根据不同的配置模式采用不同的编程方式 加电时FPGA芯片将EPROM中数据读入片内编程RAM中配置完成后FPGA进入工作状态掉电后FPGA恢复成白片内部逻辑关系消失因此FPGA能够反复使用FPGA的编程无须专用的FPGA编程器只须用通用的EPROMPROM编程器即可当需要修改FPGA功能时只需换一片EPROM即可这样同一片FPGA不同的编程数据可以产生不同的电路功能因此FPGA的使用非常灵活 FPGA有多种配置模式并行主模式为一片FPGA加一片EPROM的方式主从模式可以支持一片PROM编程多片FPGA串行模式可以采用串行PROM编程FPGA外设模式可以将FPGA作为微处理器的外设由微处理器对其编程 |