PLD/FPGA技术简介和发展


前言
PLD是可编程逻辑器件(Programable Logic Device)的简称,FPGA是现场可编程门阵列(Field Programable Gate Array)的简称,两者的功能基本相同,只是实现原理略有不同,所以我们有时可以忽略这两者的区别,统称为可编程逻辑器件或PLD/FPGA。
    PLD是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于70年代单片机的发明和使用。
PLD能做什么呢?可以毫不夸张的讲,PLD能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用PLD来实现。PLD如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用PLD的在线修改能力,随时修改设计而不必改动硬件电路。使用PLD来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。 PLD的这些优点使得PLD技术在90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(HDL)的进步。
如何使用PLD呢?其实PLD的使用很简单,学习PLD比学习单片机要简单的多,有数字电路基础,会使用计算机,就可以进行PLD的开发。不熟悉PLD的朋友,可以先看一看可编程逻辑器件的发展历程。
一、可编程逻辑器件的发展历程
当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
     早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可按除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。
    其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与一或”表达式来描述,所以, PLD能以乘积和的形式完成大量的组合逻辑功能。
    这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。 PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输.出可以通过触发器有选择地被置为寄存状态。 PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。 PLA器件既有现场可编程的,也有掩膜可编程的。  在PAL的基础上,又发展了一种通用阵列逻辑GAL (Generic Array Logic),如GAL16V8,GAL22V10 等。它采用了EEPROM工艺,实现了电可按除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。这些早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。
               
                典型的PLD的部分结构(实现组合逻辑的部分)
    为了弥补这一缺陷,20世纪80年代中期。 Altera和Xilinx分别推出了类似于PAL结构的扩展型 CPLD(Complex Programmab1e Logic Dvice)和与标准门阵列类似的FPGA(Field Programmable Gate Array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它ASIC(Application Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。
(注:不同厂家的叫法不尽相同,Xilinx把,基于查找表技术,SRAM工艺,要外挂配置用的EEPROM的PLD叫FPGA;把基于乘积项技术,Flash(类似EEPROM工艺)工艺的PLD叫CPLD; Altera 把自己的PLD产品:MAX系列(乘积项技术,EEPROM工艺),FLEX系列(查找表技术,SRAM工艺)都叫作CPLD,即复杂PLD(Complex PLD),由于FLEX系列也是SRAM工艺,基于查找表技术,要外挂配置用的EPROM,用法和Xilinx的FPGA一样,所以很多人把Altera的FELX系列产品也叫做FPGA.)
 
(右图:8寸硅晶片,每一个小方格经过切割,封装后就是一片芯片)
    FPGA(现场可编程门阵列)与 CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,它们是在PAL,GAL等逻辑器件的基础之上发展起来的。同以往的PAL,GAL等相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。这样的FPGA/CPLD实际上就是一个子系统部件。这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。比较典型的就是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列,它们开发较早,占用了较大的PLD市场。通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。全球PLD/FPGA产品60%以上是由Altera和Xilinx提供的。可以讲Altera和Xilinx共同决定了PLD技术的发展方向。当然还有许多其它类型器件,如:Lattice,Vantis,Actel,Quicklogic,Lucent等。 (99年Lattice收购了Vantis,成为第三大PLD供应商;同年Xilinx收购了Philips的PLD部门)详细内容请浏览:PLD厂商 栏目
1998年世界十大PLD公司
排名
公司
销售额(亿美金)
市场占有率
1
Altera
5.96
30.1
2
Xilinx
5.74
29.0
3
Vantis
2.20
11.1
4
Lattice
2.18
11.0
5
Actel
1.39
7.0
6
Luccent
0.85
4.3
7
Cypress
0.44
2.2
8
Atmel
0.42
2.1
9
Philips
0.28
1.4
10
Quicklogic
0.24
1.2
 
                    资料来源:99年4月《电子产品世界》
 
  尽管FPGA,CPLD和其它类型PLD的结构各有其特点和长处,但概括起来,它们是由三大部分组成的,
·一个二维的逻辑块阵列,构成了PLD器件的逻辑组成核心。·输入/输出块:·连接逻辑块的互连资源。连线资源:由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用于逻辑块之间、逻辑块与输入/输出块之间的连接。
                   典型的PLD的框图
  
兰色:逻辑单元
红色:连线资源
黄色:输入输出块 


对用户而言,CPLD与FPGA的内部结构稍有不同,但用法一样,所以多数情况下,不加以区分。
FPGA/CPLD芯片都是特殊的ASIC芯片,它们除了具有ASIC的特点之外,还具有以下几个优点:
·随着VlSI(Very Large Scale IC,超大规模集成电路)工艺的不断提高单一芯片内部可以容纳上百万个晶体管, FPGA/CPLD芯片的规模也越来越大,其单片逻辑门数已达到上百万门,它所能实现的功能也越来越强,同时也可以实现系统集成。
·FPGA/CPLD芯片在出厂之前都做过百分之百的测试,不需要设计人员承担投片风险和费用,设计人员只需在自己的实验室里就可以通过相关的软硬件环境来完成芯片的最终功能设计。所以, FPGA/CPLD的资金投入小,节省了许多潜在的花费。
·用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同软件就可实现不同的功能。所以,用FPGA/PLD 试制样片,能以最快的速度占领市场。 FPGA/CPLD软件包中有各种输入工具和仿真工具,及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。当电路有少量改动时,更能显示出FPGA/CPLD的优势。电路设计人员使用FPGA/CPLD进行电路设计时,不需要具备专门的IC(集成电路)深层次的知识, FPGA/CPLD软件易学易用,可以使设计人员更能集中精力进行电路设计,快速将产品推向市场
二、PLD开发软件   
由于PLD软件已经发展的相当完善,用户甚至可以不用详细了解PLD的内部结构,也可以用自己熟悉的方法:如原理图输入或HDL语言来完成相当优秀的PLD设计。所以对初学者,首先应了解PLD开发软件和开发流程。了解PLD的内部结构,将有助于提高我们设计的效率和可靠性。
    如何获得PLD开发软件软件呢?   许多PLD公司都提供免费试用版或演示版(当然商业版大都是收费的),例如:可以免费从www.altera.com 上下载Altera公司的 QuartusII (web版),或向其代理商索取这套软件。Xilinx 公司也提供免费软件:ISE WebPack,这套可以从xilinx网站下载。Lattice 提供isplever Base版下载,Actel等公司也都有类似的免费软件提供。以上免费软件都需要在网上注册申请License文件,如果您对License的安装还有不清楚,请仔细阅读相关网页上的说明,也可以下载这篇文档:EDA软件的license管理与安装。 通常这些免费软件已经能够满足一般设计的需要,当然,要想软件功能更强大一些,只能购买商业版软件。
如果您打算使用VHDL或Verilog HDL硬件描述语言来开发PLD/FPGA,通常还需要使用一些专业的HDL开发软件,这是因为FPGA厂商提供的软件的HDL综合能力一般都不是很强,需要其他软件来配合使用,详细情况可以通过浏览:开发软件栏目获得等多信息.
    对于PLD产品,一般分为:基于乘积项(Product-Term)技术,EEPROM(或Flash)工艺的中小规模PLD,以及基于查找表(Look-Up table)技术,SRAM工艺的大规模PLD/FPGA。EEPROM工艺的PLD密度小,多用于5,000门以下的小规模设计,适合做复杂的组合逻辑,如译码。SRAM工艺的PLD(FPGA),密度高,触发器多,多用于10,000门以上的大规模设计,适合做复杂的时序逻辑,如数字信号处理和各种算法。如希望进一步了解PLD/FPGA结构与原理,请点击此处
目前有多家公司生产CPLD/FPGA,最大的三家是:ALTERAXILINXLattice, 您可以参阅PLD厂商栏目获得更多信息
 
三、PLD/FPGA的分类和使用
    在PLD/FPGA开发软件中完成设计以后,软件会产生一个最终的编程文件(如 .pof )。如何将编程文件烧到PLD芯片中去呢?
    1.对于基于乘积项(Product-Term)技术,EEPROM(或Flash)工艺的PLD(如Altera的MAX系列,Lattice的大部分产品,Xilinx的XC9500,Coolrunner系列), 厂家提供编程电缆,电缆一端装在计算机的并行打印口上,另一端接在PCB板上的一个十芯插头,PLD芯片有四个管脚(编程脚)与插头相连。(如图)         
它向系统板上的器件提供配置或编程数据,这就是所谓的在线可编程(ISP,如下图)。Byteblaster使用户能够独立地配置PLD器件,而不需要编程器或任何其它编程硬件。编程电缆可以向代理商购买,也可以根据厂家提供的编程电缆的原理图自己制作,成本仅需一,二十元。早期的PLD是不支持ISP的,它们需要用编程器烧写。目前的PLD都可以用ISP在线编程,也可用编程器编程。这种PLD可以加密,并且很难解密,所以常常用于单板加密。 
          
           
1.将PLD焊在PCB板上        2.接好编程电缆         3.现场烧写PLD芯片
    2.对于基于查找表(LUT,Look-Up table)技术,SRAM工艺的FPGA(如Altera的所有FPGA,如ACEX,Cyclone,Stratix系列,Xilinx的所有FPGA,如Spartan,Virtex系列,Lattice的EC/ECP系列等),由于SRAM工艺的特点,掉电后数据会消失,因此调试期间可以用下载电缆配置PLD器件,调试完成后,需要将数据固化在一个专用的EEPROM中(用通用编程器烧写,也有一些可以用电缆直接改写),上电时,由这片配置EEPROM先对FPGA加载数据,十几个毫秒到几百个毫秒后,FPGA即可正常工作。(亦可由CPU配置FPGA)。但SRAM工艺的PLD一般不可以直接加密。
   3.还有一种反熔丝(Anti-fuse)技术的FPGA,如Actel,Quicklogic的部分产品就采用这种工艺。但这种的PLD是不能重复擦写,需要使用专用编程器,所以开发过程比较麻烦,费用也比较昂高。但反熔丝技术也有许多优点:布线能力更强,系统速度更快,功耗更低,同时抗辐射能力强,耐高低温,可以加密,所以在一些有特殊要求的领域中运用较多,如军事及航空航天。为了解决反熔丝FPGA不可重复擦写的问题,Actel等公司在90年代中后期开发了基于Flash技术的FPGA,如ProASIC系列,这种FPGA不需要配置,数据直接保存在FPGA芯片中,用户可以改写(但需要10几伏的高电压)。
   随着技术的发展,在2004年以后,一些厂家推出了一些新的PLD和FPGA,这些产品模糊了PLD和FPGA的区别。例如Altera最新的MAXII系列PLD,这是一种基于FPGA(LUT)结构,集成配置芯片的PLD,在本质上它就是一种在内部集成了配置芯片的FPGA,但由于配置时间极短,上电就可以工作,所以对用户来说,感觉不到配置过程,可以传统的PLD一样使用,加上容量和传统PLD类似,所以altera把它归作PLD。 还有像Lattice的XP系列FPGA,也是使用了同样的原理,将外部配置芯片集成到内部,在使用方法上和PLD类似,但是因为容量大,性能和传统FPGA相同,也是LUT架构,所以Lattice仍把它归为FPGA。

COPYRIGHT(C) 2011 厦门永宏亚得机电科技有限公司版权所有(闽ICP备05025945号) ALL RIGHTS RESERVED?

电话: 0592-5190891 传真: 0592-5190720 E-Mail: E-mail:yade8895@163.com
地址: 厦门市海沧区兴港六里17号2607室 邮编:361009 联系人:翟先生