河北大学电信学院 基础教研部 1
第一章 CPLD\\FPGA可编程逻辑器件
1.1 前言
PLD是可编程逻辑器件(Programmable Logic Device)的英文缩写。在可编程逻辑器件芯片内部,按一定的排列方式集成了大量的门和触发器等基本元件。使用者可利用特定的计算机开发工具对其进行加工,即按设计要求将这些芯片内部的元件连接起来,使之实现完成某个数字逻辑电路或系统的功能,成为一个可在实际电子系统中使用的专用集成电路(ASIC,Application Specific Integrated Circuit)。随着集成电路工艺的日趋完善,集成度急剧增加,其功能日益强大。PLD广阔的应用前景备受业内人士的瞩目。 1.2 PLD的分类
按照不同的分类方法,PLD可分为如下几种情况: (1)按集成度分
可分为低密度和高密度两大类,如图1.1所示。 图1.1 PLD按集成度的分类图
(2)按结构分
按结构的不同可分为两类:一类是基于与/或阵列结构的器件(PORM、PLA、PAL、GAL)、CPLD(EPLD)。另一类是基于门阵列结构的器件(FPGA)。
(3)按编程工艺分
① 熔丝和反熔丝编程器件。如Actel的FPGA器件。 ② SRAM器件,如Xilinx的FPGA。 ③ UEPROM器件,即紫外线擦除/电可编程器件。如大多数的EPLD器件。 ④ EEPROM器件。如GAL、CPLD器件。 1.3 PLD的发展概况
PLD从20世纪70年代发展到现在,已形成了许多类型的产品,其结构、工艺、集成度、速度和性能都在不断改进和提高。最早的PLD是1970年制成的PROM(Programmable Read Only Memory),即可编程只读存储器,它是由固
河北大学电信学院 基础教研部 2
定的与阵列和可编程的或阵列组成。PROM采用熔丝工艺编程,只能写一次,不能擦除和重写。随着技术的发展和应用要求,此后又出现了UVEPROM(紫外线可擦除只读存储器)、EEPROM(电可擦除只读存储器),由于它们价格低,易于编程,速度低、适合于存储函数和数据表格,因此主要用作存储器。典型的EPROM有2716、2732等。
可编程逻辑阵列PIA(Programmable Logic Array)于20世纪70年代中期出现,它是由可编程的与阵列和可编程的或阵列组成,但由于器件的资源利用率低,价格较贵,编程复杂,支持PLA的开发软件有一定难度,因而没有得到广泛应用。
可编程阵列逻辑PAL(Programmable Array Logic)器件是1977年美国MMI公司(单片存储器公司)率先推出的,它由可编程的与阵列和固定的或阵列组成,采用熔丝编程方式,双极性工艺制造,器件的工作速度很高。由于它的输出结构种类很多,设计灵活,因而成为第一个得到普遍应用的可编程逻辑器件,如PALl6L8。
通用阵列逻辑器件GAL(Generic Array Logic)器件是1985年Lattice公司最先发明的可电擦写、可重复编程、可设置加密位的PLD。GAL在PAL基础上,采用了输出逻辑宏单元形式E2CMOS工艺结构。具有代表性的GAL芯片有GALl6V8、GAL20V8,这两种GAL几乎能够代替所有类型的PAL器件。在实际应用中,GAL器件对PAL器件仿真具有百分之百的兼容性,所以GAL几乎完全代替了PAL器件,并可以取代大部分SSI、MSI、数字集成电路,如标准的54/74系列器件,因而获得广泛应用。
PAL和GAL都属于简单PLD,结构简单,设计灵活,对开发软件的要求低,但规模小,难以实现复杂的逻辑功能。随着技术的发展,简单PLD在集成密度和性能方面的局限性也暴露出来,其寄存器、I/O引脚、时钟资源的数目有限,没有内部互连,因此包括EPLD、CPLD和FPGA在内的复杂PLD迅速发展起来,并向着高密度、高速度、低功耗以及结构体系更灵活、适用范围更宽广的方向发展。可擦除可编程逻辑器件EPLD是20世纪80年代中期Altera公司推出的基于UVEPROM和CMOS技术的PLD,后来发展到采用E2CMOS工艺制作的PLD。EPLD的基本逻辑单元是宏单元。宏单元由可编程的与或阵列、可编程寄存器和可编程I/O三部分组成。从某种意义上讲EPLD是改进的GAL,它在GAL基础上大大增加输出宏单元的数目,提供更大的与阵列,灵活性较GAL有较大改善,集成密度大幅度提高,内部连线相对固定,延时小,有利于器件在高频率下工作,但内部互连能力十分弱。世界著名的半导体器件公司Altera、Xilinx、AMD、Lattice均有EPLD产品,但结构差异较大。
复杂可编程逻辑器件CPLD(Complex PLD)是20世纪80年代末Lattice公司提出的在系统可编程(ISP,In System Programmability)技术以后于20世纪90年代初出现的。CPLD是在EPLD的基础上发展起来的,采用E2CMOS工艺制作,与EPLD相比,增加了内部连线,对逻辑宏单元和I/O单元也有重大的改进。CPLD至少包含三种结构:可编程逻辑宏单元、可编程I/O单元和可编程
河北大学电信学院 基础教研部 3
内部连线。部分CPLD器件内部还集成了RAM、FIFO或双口RAM等存储器,以适应DSP应用设计的要求。其典型器件有Altera的MAX7000系列,Xilinx的7000和9500
系列,Lattice的PLSI/ispLSI系列和AMD的MACH系列。
现场可编程门阵列FPGA(Field Programmable Gate Array)器件是Xilinx公司1985年首家推出的,它是一种新型的高密度PLD,采用CMOS-SRAM工艺制作。FPGA的结构与门阵列PLD不同,其内部由许多独立的可编程逻辑块(CLB)组成,逻辑块之间可以灵活的相互连接。FPGA的结构一般分为三部分:可编程逻辑块、可编程I/O模块和可编程内部连线。CLB的功能很强,不仅能够实现逻辑函数,还可以配置成RAM等复杂形式。配置数据存放在片内的SRAM或者熔丝图上,基于SRAM的FPGA器件工作前需要从芯片外部加载配置数据。配置数据可以存放在片外的EPROM或者计算机上,设计人员可以控制加载过程,在现场修改器件的逻辑功能,即所谓现场可编程。FPGA出现后受到电子设计工程师的普遍欢迎,发展十分迅速。Xilinx、Altera和Actel等公司都提供高性能的FPGA芯片。
高密度PLD在生产工艺、器件编程和测试技术等方面都有了飞速发展。目前PLD的集成度非常高,如Altera公司的APEXⅡ系列器件,采用0.15μm工艺,各层都是铜金属布线,其中EP2A90的密度可达400万典型门,可为用户提供1140个I/O引脚,1Gbit/s数据速率。世界各著名半导体公司,如Altera、Xilinx、Lattice、Actel和AMD公司均可提供不同类型的CPLD、FPGA产品。众多公司的竞争促进了可编程集成电路技术的提高,使其性能不断改善,产品日益丰富,价格逐步下降。可以预计,可编程逻辑器件将在结构、密度、功能、速度和性能等方面得到进一步发展,结合EDA技术,PLD将在现代电子系统设计中得到非常广泛的应用。
1.4 Altera系列CPLD和FPGA器件
随着可编程逻辑器件应用的日益广泛,许多IC制造厂家均已涉足CPLD/FPGA领域。目前世界上有十几家生产CPLD/FPGA的公司,最大的三家是Altera、Xilinx和Lattice-Vantis,其中Altera和Xilinx占了60%以上的市场份额。Altera在20世纪90年代以后发展很快,是最大的可编程逻辑供应商之一。Altera的CPLD器件具有良好的性能、极高的密度和非常大的灵活性,除了具有一般PLD的特点外,还具有改进的结构、先进的处理技术、现代化的开发工具以及多种宏功能模块可选用等优点。 (1)性能高
Altera器件的高性能主要体现在技术和结构上,Altera器件采用铜铝布线的先进CMOS技术,具有非常低的功耗和相当高的速度,而且它采用了连续式互连结构,能够提供快速的、连续的信号延时。 (2)逻辑集成度高
在设计过程中,设计者总是希望将更多的逻辑集成进更少的器件中,并缩小印制板的尺寸和降低成本。具有高集成能力的PLD提供了优秀的解决方案:
河北大学电信学院 基础教研部 4
Altera器件密度从300门到400万门,能很容易地集成现有的各种逻辑器件,包括小规模及大规模标准逻辑器件、PLD、FPGA或ASIC。高集成能力的PLD就代表着更高的系统性能、更高的可靠性和更低的成本。 (3)性价比高
Altera不断改进产品的开发和制造工艺,它的经验积累使其处理技术和制造流程十分有效,能够有效地提供高性价比的可编程逻辑器件。Altera的PLD成本与门阵列相当。 (4)开发周期短
对设计者来说时间是最宝贵的资源,Altera的快速、直观、易于使用的MAX+plusⅡ和Quartus II软件能够极大地缩短开发周期。使用的MAX+PLUS II和Quartus II软件设计输入、处理、校验以及器件编程一共仅需几个小时,一天内可完成几个完整的设计。Altera与其他EDA制造商紧密合作,在MAX+PLUSII和Quartus II软件中集成了另外的工业标准设计输入、综合、校验工具,如Cadence、ExemplarLogic、Mentor、Graphics、Synopsys、Synplicity、Viewlogic 提供的软件。
(5)对器件优化的IP解决方案
Altera为设计者提供已经做好的、经过预先测试并优化了的IP宏功能模块(Megafunctions),允许设计人员在一个器件中快速实现一定的功能而不必从基础的设计做起,大大地提高了设计效率。由于Altera提供开发板,所以可以在设计开始时就进行应用软件的开发,硬件设计人员也可以使用这些开发板快速有效地验证IP功能。 (6)在线可编程
MAX9000、MAX7000、MAX7000A、MAX7000B和MAX3000A系列器件具有在线可编程性,简化了设计开发过程及流水线生产过程,提高了设计的灵活性,并且,能够快速有效地对产品进行现场升级。Altera的ISP使用IEEE ll49.1标准的JTAG(Joint Action Test Group)测试端口,允许对器件进行编程,并可以对印刷电路板(PCB)进行功能测试。
现在,Altera的PLD器件包括APEX20K、APEXII、Excalibur、Mercury、Stratix、ACEXlK、FLEXl0K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX3000和Classic系列。从MAX系列发展到APEX系列,器件的可用资源逐渐增多,输入输出管脚也随之增加。灵活逻辑单元矩阵FLEX(Flexible Logic Element Matrix)器件采用查找表(LUT)结构来实现逻辑功能,而多阵列矩阵MAX(Multiple Array MatriX)和Classic采用“与”可编程“或”固定的乘积项(product-term)结构。查找表和嵌入式寄存器表示了可编程逻辑矩阵(APEX)的先进结构特征,而Mercury系列则是基于查找表结构,它的特征是具有时钟数据恢复和一个性能优化的核,另外,Excalibur的结构特征是基于ARM和基于MIPS的硬核微处理器。针对具体的应用,每种器件系列都有各自不同的特点,这就需要设计者掌握好它们之间的区别。
河北大学电信学院 基础教研部 5
所有Altera的CPLD器件都采用了CMOS工艺,其中一些系列经过改进已采用了更为先进的工艺技术,嵌入了大量的RAM块。其性能对照如表1.1所示。
表1.1 Altera器件性能对照表
器件序列 Classic MAX3000 MAX7000 MAX9000 FLEX6000 FLEX8000 FLEX10K ACEX1K Excalibur Mercury APEX II APEX20KC APEX20K 逻辑单元结构 乘积项 乘积项 乘积项 乘积项 查找表 查找表 查找表 查找表 查找表和RISC处理器 查找表和CDR 查找表和乘积项 查找表和乘积项 查找表和乘积项 可配置单元 EPROM EPROM EPROM EPROM SRAM SRAM SRAM SRAM SRAM SRAM SRAM SRAM SRAM 用户I/O数量 典型可用门 22~68 34~158 36~212 52~216 71~218 68~208 59~470 66~333 178~521 303~486 492~1140 250~780 128~808 300~900 600~5000 600~1万 1万~1.2万 1.6万~2.4万 2500~1.6万 1万~25万 1万~10万 10万~100万 12万~35万 60万~400万 10万~150万 3万~150万
Altera的系列器件针对设计者需求提供了如下的特性:高带宽、低电压I/O标准(LVDS速率可以达到622Mb/s)和多种I/O电压标准(可以在混合系统中非常方便地实现5.0V,3.3V,2.5V,1.8V电压的互联)。内部集成的锁相环(PLL Phase-Locked Loop)增加了器件的系统级时钟管理,还增加了I/O的性能。
Altera的系列器件提供了丰富的芯片封装形式:TQFP、BGA和FBGA等。 1.5 可编程逻辑器件上机实验