以文本方式查看主题

-  曙海教育集团论坛  (http://sun4.cn/bbs/index.asp)
--  FPGA高级  (http://sun4.cn/bbs/list.asp?boardid=26)
----  FPGA、CPLD简介  (http://sun4.cn/bbs/dispbbs.asp?boardid=26&id=1538)

--  作者:wangxinxin
--  发布时间:2010-11-20 9:09:34
--  FPGA、CPLD简介
PLD/FPGA是近几年集成电路中发展最快的产品。由于PLD性能的高速发展以及设计人员自身能力的提高,可编程逻辑器件供应商将进一步扩大可编程芯片的领地,将复杂的专用芯片挤向高端和超复杂应用。据IC Insights的数据显示,PLD市场从1999年的29亿美元增长到去年的56亿美元,几乎翻了一番。Matas预计这种高速增长局面以后很难出现,但可编程逻辑器件依然是集成电路中最具活力和前途的产业。
FPGA- Field Programmable Gate Array- a programmable integrated circuit.  现场可编程门阵列
CPLD- ArrayComplex Programmable Logic Device-A type of integrated circuit that provides the customer the ability to custom program and reprogram the component function. 复杂可编程逻辑器件
 
可编程逻辑器件的两种主要类型是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。在这两类可编程逻辑器件中,FPGA提供了最高的逻辑密度、最丰富的特性和最高的性能。现在最新的FPGA器件,如Xilinx Virtex"系列中的部分器件,可提供八百万"系统门"(相对逻辑密度)。这些先进的器件还提供诸如内建的硬连线处理器(如IBM Power PC)、大容量存储器、时钟管理系统等特性,并支持多种最新的超快速器件至器件(device-to-device)信号技术。 FPGA被应用于范围广泛的应用中,从数据处理和存储,以及到仪器仪表、电信和数字信号处理等。
与此相比,CPLD提供的逻辑资源少得多 - 最高约1万门。但是,CPLD提供了非常好的可预测性,因此对于关键的控制应用非常理想。而且如Xilinx CoolRunner"系列CPLD器件需要的功耗极低,并且价格低廉,从而使其对于成本敏感的、电池供电的便携式应用(如移动电话和数字手持助理)非常理想。
    什么原因使PLD发展如此之快?这主要是依赖通信和网络产品市场的飞速发展,而这一领域是PLD最大的应用市场。熟悉通信和网络的人一定知道这里玩的是协议,而通信协议好像海鲜价钱,说变就变。PLD正是发挥了它现场可编程的特点、绕过定制集成电路的复杂环节,极大地缩短了新品上市时间、提高了设计和使用的灵活性。因为通信和网络产品利润高,也因为PLD器件工艺复杂,因此PLD一直被认为是只能应用于高档产品。如通信产品和专业图象处理设备。但是随着半导体工艺的发展,PLD芯片的成本已越来越低,甚至已经可以和ASCI芯片和标准集成电路相互竞争,这使得PLD的应用领域不断扩大,反过来,这又进一步加速了PLD产品的发展。
    目前可编程逻辑器件的发展趋势主要体现在以下几点:继续向更高密度,更大容量迈进
    “为吸引用户采用FPGA进行设计,可编程芯片供应商始终在寻找提高设计功能和灵活性的方法。”IC Insights公司分析师Brian Matas称。FPGA已开始接近1,000万门的规模,这似乎已经达到用户的要求或设计能力的极限。但这些高端PLD供应商仍不以此为满足。“在过去十年里,每次我们推出更大规模的器件,都以为到头了,没有人会需要这么大的容量,但每次客户的需求又再次爆棚。”Xilinx公司资深总监Mark Aaldering说。市场分析家认为目前的状况仍是如此。对新型最高密度器件的需求有增无减,PLD市场中的领先供应商的发展速度高于其它市场。
    大容量PLD/FPGA是市场发展的焦点。PLD产业中的两大霸主:Altera和Xilinx在超大容量的PLD/FPGA上展开了激烈的竞争。去年Altera推出APEX-E系列,最大的20K1500E达到了51840个LE(逻辑单元),稍后Xilinx的Virtex3200E达到32448个slices(一个slices约等2个LE)于今年Xilinx推出VirtexII系列,其中容量为33792个slices的VirtexII 6000已经提供样品,Altera的新系列:APEXII中的EP2A70也开始出货,容量为67200个LE。芯片规模的增加迫使各大PLD厂家推出更强功能的软件,Altera在99年推出面向百万门级PLD设计软件:Quartus, 并最终打算取代MaxplusII,Xilinx也正在将foundation转向ISE。
    低密度PLD依然走俏
    低密度的产品以Altera的MAX7000/3000,Lattice的ispLSI2000,Xilinx的XC9500为代表。值得注意的是,销售量最大的产品,其容量也在不断加大。按照Stark的说法,最新产品的容量将达到128或256个宏单元。这些产品的价格正在下降,很显然它们将成为市场的最新热点。此外,同一封装尺寸的256、384和512宏单元的器件也已经上市。这些产品简化了升级过程,最小化了引脚上的脉冲和器件在电路板上占位面积。
    Atmel公司CPLD和SPLD产品总监Jim Fahey说:“随着工艺技术的发展,256宏单元产品越来越引人注目,性价比变得更具吸引力。”像许多供应商一样,Atmel今年将推出电源电压为5V和3.3V的0.35微米器件。这一举措反映出:虽然步伐有些缓慢,但PLD业界正在向低电压(3.3V甚至2.5v)器件演进。
    Fahey称,目前有些厂商正在使用价格来吸引用户使用电压为3V的器件。上述趋势加速了器件设计向3.3V转变,然而超越目前这一水平的动力并不大。Fahey说:“我还没有察觉有厂商在进行2.5V器件设计。”Lattice的Stark同意上述观点。设计者目前还不需要内核电压是2.5V的器件,大多数系统单元使用的是3.3V电压。但是以MAX7000系列产品而占有1/3市场份额的Altera公司并不这样看,在推出3.3v电压的MAX7000AE以后,2.5v内核的MAX7000B系列也被积极的推向市场,MAX7000B以更短的Pin-to-Pin的延时和更低价格,力争占领低电压系统和高速系统中的低密度PLD市场。
    IP内核得到进一步发展
由于通讯系统越来越复杂,PLD的设计也更加庞大,这促进了设计人员对IP核的需求。各大厂家继续开发新的IP,并且开始提供“硬件”IP,既将一些功能在出厂时就固化在芯片中
近期,Altera又推出了10种新型超级内核(MegaCore)功能,包括Sonet/SDH帧编码器、ATM信元、PPP分组交换器以及T3帧转换和映射内核。Altera还宣布了与PMC-Sierra公司POS PHY第三层产品兼容的系列内核,以及用于PCI-X的内核。与此同时,Xilinx亦宣布推出高密度FPGA,包括T1/E1帧编码器和帧解码器、HDLC协议控制器、ADPCM编解码器以及POS PHY第三层接口。
“接口对于可编程逻辑来说极其重要,设计者需要更快速地进行芯片内外的信息交流。”Altera公司资深IP营销经理Justin Cowling说。领先供应商正准备支持一些新兴的宽带I/O技术。Xilinx计划对一些高速技术提供物理层以上的支持。去年十月,它还收购了专门从事收发器设计的RocketChips公司。Altera的产品亦打算支持同一功能。这些新功能是以软件还是硬件来实现,目前尚不可知。Altera和Xilinx都采取了两条腿走路的策略。去年十一月,Xilinx宣称将在其Virtex-II结构中同时支持各种硬件和软件IP,同时提供可支持各种IP集成的开发环境。对于超高速的千兆位串行I/O收发器来说,“这必须采用硬件门电路来实现FPGA性能,其中每个数位的传输都相当于ASIC技术中的最快速度。”Aaldering说。Altera宣称是第一家以硬件门电路实现低电压差分信号(LVDS)I/O嵌入的PLD供应商。“我们基本上通过标准程序来评估以硬件进行嵌入是否有意义,相对软件内核来说,它是否为客户带来绝对的优势。”Cowling说。
虽然IP数量的扩展有助于OEM制造商充分使用高密度FPGA,但为适用IP的扩展,开发工具也需要相应地改变。
缩短编译时间也是重要的因素。“我们必须加快设计开发时间。”Altera开发工具营销总监David Greenfield说。Altera推出的Quartus II开发软件的编译时间比前一版本缩短了一半。去年十二月,Xilinx推出了一套用于Virtex器件的新编译器Forge。它可使工程师用高级语言对设计进行优化。该编译器允许设计者使用高级语言来试探多种实现选项,并在硬件与软件方法之间移值IP,以确定最佳应用方案。
Altera还推出一种可加快在PLD内嵌入处理器相关设计的工具:SOPC Builder。这种功能与PC应用程序中的“引导模板”类似,旨在提高设计者的效率。设计者可确定所需要的处理器模块和参数,并据此创建一个处理器的完整存储器映射。设计者还可以选择所需的IP外围电路,如存储器控制器、I/O控制器或定时器模块。
Xilinx在设计方法上也在不断地进步。去年末,该公司与Mentor Graphics共同宣布推出参考记分计划OpenMORE,旨在使大规模百万门级设计中的IP可被重复利用。Xilinx还与Synopsys合作开发自动设计流程。
提供标准化硬件IP
其它PLD供应商正从不同的角度进入SoC市场。QuickLogic推出“嵌入式标准产品”,尝试将标准产品的可靠性和低成本与FPGA的灵活性和上市时间优势结合起来。 QuickLogic近期推出了QuickSD系列单片LVDS串/并转化器件,可在一般线路板设计中替代20只IC。“软件IP却无法做到这一点。你可以用软件IP实现一个数据链路层,但在数字FPGA中以软件IP完成一个模拟或混合信号设计就很难。要实现这种高速串行应用,必须嵌入一个物理层。”QuickLogic互联产品营销总监Charles Tralka说。
“嵌入内核是一种更廉价、更简便的方法。”PLD通讯报《可编程逻辑新闻与视野》总编Murray Disman说,“你买下一个模块,将它插入设计就可以运行。它是有保证的,你不必有任何担心。”而利用软件内核方法,设计者则需要做很多工作。“通常必须花些时间,针对其特定应用进行内核的优化,在这之前,还要确定花这些时间是否值得。”Disman分析道。
SOPC(System-On-a-Programble-Chip) 时代将会到来
Daane预计PLD市场在系统级可编程(SoPC)技术的推动下,将从今天的60亿美元,发展到2003年的600亿美元。3年增长十倍动力何在?系统级芯片(SoC)大家并不陌生,但见过的少、用过的更少。原因是它要求的用户端知识太强,并且要求晶圆厂承担过多的风险。谁能保证流片出来以后就能有几百万只的用量,去补偿那上百万美元的流片成本?所以SoC是为顶级OEM商服务的。SoPC进步之处在于它既有嵌入的处理器、I/O支持电路,也有PLD。嵌入的处理器可以是软核,也可以是硬核,包括DSP/MCU/ASSP。用户根据应用选择处理器和I/O,然后就可以编程自己的SoPC。由此,SoPC就进入了DSP/MCU的应用领域,成为普及的产品。
Altera在去年推出了32位,50MIPS的软核CPU:Nois. 基于ARM922T和MIPS32 4Kc的集成硬核CPU的PLD也即将上市,Altera的下个目标是将PowerPC嵌入PLD。与此同时,Xilinx也推出与Nois相似的软核CPU:MicroBlaze,与IBM公司达成协议嵌入PowerPC,Xilinx还考虑将DSP嵌入PLD/FPGA. 这些技术发展将促进SOPC的实现。
未来的一块电路版上可能只有这两部分电路:模拟部分(包括电源)和一块PLD芯片,最多还有一些大容量的存储器。随着PLD/FPGA规模不断变大,CPU,DSP,更大规模的存储器都已经或即将嵌入PLD/FPGA内。SOPC的时代,可能已经离我们不远了。
ASCI和PLD出现相互相互融合
虽然标准逻辑ASIC芯片尺寸小、功能强大、不耗电,但设计复杂,并且有批量要求。可编程逻辑器件价格较低廉,能在现场进行编程,但它们体积大、能力有限,而且功耗比ASIC大。正因如此,FPGA和ASIC正在走到一起来,互相融合,取长补短。随着一些ASIC制造商提供具有可编程逻辑的标准单元,可编程器件制造商重新对标准逻辑单元发生兴趣。而另外一些公司采取两头并进的方法。市场开始发生变化,在FPGA和ASIC之间正在诞生一种“杂交”产品,以满足成本和上市时间的要求。
可编程逻辑器件嵌入标准单元
朗讯微电子是最近从事这种“杂交”工作的公司之一。去年,该公司宣布推出ORCA3+产品家族,它将FPGA和ASIC结合在一起。为了进一步巩固这一发展趋势,朗讯还宣布将它的FPGA、标准产品和ASIC核业务转移给网络和通信部。

将标准单元核可编程器件集成在一起并不意味着使ASIC更加便宜,或是FPGA更加省电。但是,它让设计人员将双方的优点结合在一起。通过去掉FPGA的一些功能,设计人员可减少成本和开发时间,并增加灵活性。有时我们已经很难判定什么是嵌入可编程逻辑的ASIC,什么是嵌入标准单元的FPGA。“朗讯已经宣布他们能够提供任何比例的FPGA或ASIC芯片。”In-Stat公司的分析师Max Baron说,“假如FPGA/ASIC的比例是60/40,这并不损害FPGA市场。”

ASIC嵌入可编程逻辑单元
许多PLD公司开始为ASIC提供FPGA IP内核。
Actel采取兵分两路的战略。这家反熔丝FPGA供应商服务于传统的FPGA应用,产品有MX、SX及新型eX系列器件。Actel最近宣布了与ASIC制造商结盟的计划,为SoC设计提供嵌入式FPGA IP。“我们努力使未来的ASSP和ASIC供应商有机会更早地进入市场,利用嵌入式内核获得更长的市场生命期。”嵌入式FPGA集团总监Yankin Tanurhan说。
近期,Actel推出第一套支持其嵌入FPGA策略的产品系列VariCore。首批设计很可能首先用于机顶盒或网络领域,并在汽车市场中也存在很大潜力,Tanurhan称。这些芯片中的可编程部分相当于3-4万ASIC门的规模,其规模将随应用的不同而呈现很大的变化。
Atmel也瞄准了可编程SoC市场。它利用微控制器方面的技术,为传统的控制型应用提供低端8位方案。Atmel的现场可编程系统级集成电路(FPSLIC)将Atmel的嵌入式AT40K FPGA内核与该公司高性能AVR 8位RISC微控制器组合在一起。FPSLIC主要用于电信、网络、仪器仪表和汽车中的低功耗应用。在这类应用中,OEM制造商主要使用8位MCU和最高5万门的可编程逻辑。
LSI逻辑公司的技术产品高级营销总监Ronnie Vasishta说:“传统上,我们的客户有两个集团:FPGA集团和ASIC集团。如果你要将可编程门安装到ASIC设计流程中。你可以从整个器件的RTL描述开始,接着合成它,然后再通过标准的ASIC工具变换成网表,最后通过放置和布线工具完成它的设计。”在新一代产品的电路板上,空间有限,几乎不能再增加器件。正如Vasishta指出:“你可以留下一块地方,如果你想改变你的设计,或者你还没做足够的验证,不妨留一块地方给PLD,稍后你可以根据要求对它编程。”LSI鼓励ASIC设计人员采用小的可编程逻辑内核,用于修改设计问题。这是降低风险的好办法。ASIC制造商增加可编程逻辑的另一个原因是,事情变化得太快,特别是通信协议。通信芯片是驱使人们将FPGA和标准内核结合在一起的另一个原因。
ASIC和FPGA之间的界限正变得模糊。系统级芯片不仅集成RAM和微处理器,也集成FPGA。整个工业都朝这个方向发展。这也不是可编程逻辑与ASIC制造商竞争的事。对买家来说,这意味着更多的选择。随着ASIC制造商向下发展,FPGA向上发展。其它公司也在标准单元和可编程逻辑相结合的道路。
VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为ANSI/IEEE的标准(IEEE STD 1076-1987)。1993年更进一步修订,变得更加完备,成为ANSI/IEEE的ANSI/IEEE STD 1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。
VHDL的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。
关于用VHDL和原理图输入进行CPLD/FPGA设计的粗略比较:在设计中,如果采用原理图输入的设计方式是比较直观的。你要设计的是什么,你就直接从库中调出来用就行了。这样比较符合人们的习惯。但是这样做需要设计人员要在两方面有较高的素质:
1.对电路的知识要比较丰富。
2.对CPLD/FPGA的结构比较熟悉。
有了这两个条件才能在设计的过程中选用适当的器件从而提高设计的可靠性、提高器件的利用率及缩短设计的周期。但是有一个重大的问题是在于,如果你的产品有所改动,需要采用另外的CPLD/FPGA时,你将需要重新输入原理图。(改用不同的器件在今天这种竞争环境下是会经常发生的。头儿们为了提高产品的性能或者是降低产品的造价,提高保密性等等,都会考虑选用不同的器件。对他们而言只是做出一个决定,对我们而言却是要我们付出更多的心血)。
但是当你采用VHDL等高级语言来设计时这些问题都会得到较好的解决。由于在使用VHDL等高级语言时,有专用的工具来实现将语言描述的电路功能转换为实际的电路所以你就用不着对底层的电路很熟悉,也用不着对CPLD/FPGA的结构很熟悉(因为有专用的工具针对你的描述采用相应的器件哦)。当你要换器件时,你只需要将原来设计好的VDHL文件在新器件的设计工具中再次实现就行了(就是这么简单喔)!
用高级语言设计电路的流程:
在用高级语言来设计电路时,主要的过程是这样的:
1.使用文本编辑器输入设计源文件(你可以使用任何一种文本编辑器。但是,为了提高输入的效率,你可以用某些专用的编辑器,如:Hdl Editor,Tubor Writer或者一些EDA工具软件集成的HDL编辑器)。
2.使用编译工具编译源文件。HDL的编译器有很多,ACTIVE公司,MODELSIM公司,SYNPLICITY公司,SYNOPSYS公司,VERIBEST公司等都有自己的编译器。
3.(可选步骤)功能仿真。对于某些人而言,仿真这一步似乎是可有可无的。但是对于一个可靠的设计而言,任何设计最好都进行仿真,以保证设计的可靠性。另外,对于作为一个独立的设计项目而言,仿真文件的提供足可以证明你设计的完整性。
4.综合。综合的目的是在于将设计的源文件由语言转换为实际的电路。(但是此时还没有在芯片中形成真正的电路。这一步就好像是把人的脑海中的电路画成原理图。--这是我的个人观点,似乎在好多文献中都没有提到“综合”的准确定义。至少,我读过的几本书中就没有。)这一部的最终目的是生成门电路级的网表(Netlist)。
5.布局、布线。这一步的目的是生成用于烧写(编程Programming)的编程文件。在这一步,将用到第4步生成的网表并根据CPLD/FPG厂商的器件容量,结构等进行布局、布线。这就好像在设计PCB时的布局布线一样。先将各个设计中的门根据网表的内容和器件的结构放在器件的特定部位。然后,在根据网表中提供的各门的连接,把各个门的输入输出连接起来。最后,生成一个供编程的文件。这一步同时还会加一些时序信息(Timing)(?)到你的设计项目中去,以便与你做后仿真。