CPLD、FPGA面面观
CPLD和FPGA在工业界已被广泛的应用,这种成功主要是以牺牲门阵列、及标准单元电路ASIC为代价的。为了使触发器触发速率和快速路由的延迟得到近似于真实设计的结果,可编程逻辑的速度也得加快。尤其是,如果你可能会使用到可编程逻辑器件所提供的嵌入式存储器的时候,因为它的容量增多,因此,相应地按每门计算的成本也更加便宜。
可编程逻辑器件的这种发展趋势尤其受到人们的欢迎,特别是当你的用量太少,不足以让ASIC厂家或制造商感兴趣,或是在掩模和NRE的成本随每一代处理工艺成指数上涨,而你的用量又很少,无法全部摊入成本时,可编程逻辑器件更是受欢迎了。ASIC一般都要求你详细开列出每个裸芯片功能验证和定时验证的全套测试向量数据;而这些,在CPLD和FPGA中,则是由制造厂家自己处理的。
从产品上市时间快慢的角度来考虑,一般来说,ASIC从设计完成到你拿到第一个样品的时间,总会在几周或几个月以后。几周或几个月的耽搁时间与你花几分钟就能从代销商或供应商的货架上买到PLD,然后就开始调试你的设计,这中间时间相差实在是太大了。加之,在投产前为了排除故障或再增加某些功能什么的,还要对设计做些修改,以及ASIC NRE的成本和相当长的制造周期,综合起来,确实是个大问题。
当然,如果你的设计用到的产品产量较大,而你也能解决制造周期长的问题,那么,标准单元电路ASIC还是你的每门最低成本首选的代表。ASIC也有速度比FPGA和CPLD高得多、功耗更低的品种。正像某些闪速存储器用户所希望地那样,他们可以转而使用更便宜的掩膜ROM。许多可编程逻辑器件的用户,特别是那些不用现场可重新编程技术的用户,总是怀着妒忌的心态看待ASIC器件,因此也不知出于什么原因,在他们的设计中都不曾用过ASIC。
寻求中间道路
有些厂商认为还有第三种选择:把可编程逻辑和门阵列及标准单元电路的ASIC组合在同一个器件上。他们这些方法虽在每种型号逻辑器件的裸芯片百分比和纳入ASIC部分的方式(如有)上是不一样的。但基本的动机却是相同的:那就是把这两种技术的精华合二为一。然而,这个目标的现实性究竟有多大呢?
如果你的目的只是为了降低成本,那么,这种混合逻辑的电路的生命力至今还不清楚,只不过进化的演变很快而已。以到处都能见到的PCI芯核为例。就在两年前,可编程逻辑器件的厂家们还在拼命设法做出目的只是32位的芯片,但其体积要求小到使用户只要有一块地方就可以做他专用的逻辑器件,甚至厂家的体积最大的器件也是如此。而今天,64位的器件,包括启动程序加上目标芯核(FIFO缓冲器除外,其体积和数量取决于设计)的体积。估计只占Altera公司(www.altera.com)即将上市EP20k1500E逻辑资源的2.4%,占Xilinx公司(www.xilinx.com)即将上市XCV3200E逻辑资源的1%。就算这些片子的价格比较昂贵。但是从图1所示的过去几年来每门成本价的走向和对今后几年的预示趋势可以看出:制造商们正在大量销售这些通用的逻辑器件,而且含盖了各种类别的用户和应用项目。混合式的器件可能会使裸芯的体积更小一些,但这取决于ASIC对可编程逻辑器件所占的比例。当然,裸芯片的尺寸大小也只占整个器件成本的一部分。还有其他因素,例如用户的测试流程,生产线新生项目的管理以及因产量小而造成的生产效益减少等,在促使价格提高上都起着等同的或且更大的作用。
要使逻辑器件达到相当大的产量,像微处理器那样,则ASIC门电路还是最佳上选(参考文献3)。大型的CPLD和FPGA器件上何时能装上这种类型的片芯,在一定程度上取决于这类芯核能用的片上存储器的数量。Xilinx公司曾宣称,以0.18mmXCV2000E Virtex-E FPGA所含有"系统"门,是0.22mmXCV1000 Virtex器件的两倍。但是从Virtex到Virtex-E,逻辑单元电路的数量只增加了50%;门电路的其余增量大部分却来自数字延迟锁定回路DLL)成倍的增加,以及片上Block SelectRAM的数量增加了五倍。
从概念上讲,嵌套式存储器作为CPU芯核的一级和二级超高速缓存器,应该是有用武之地的,但是优化的超高速缓存设计要求的阵列电路,比适用于其他逻辑电路的可能要大。否则超高速缓存的功能会因此受到严重影响,通用逻辑门电路的可用量也会下降,除非生产厂家另行设置专用的超高速缓存控制器逻辑电路才行。这种片上逻辑电路类似于可编程逻辑器件厂家提供的DLL和PLL及双端口RAM、内容定址存储器、FIFO缓冲器以及其他的专用功能的资源。但是又与某些电路不同,超高速缓存逻辑器件的可应用性更为有限。片子的专用程度越高,应用的领域和用户就越少,潜在的产量也就越低。对速度的要求功能是采用混合式芯片的更为重要的理由。例如,要是你的CPU芯核需要的运行速度只相当于标准产品的速度,那么ASIC就是唯一的选择。可编程逻辑器件的厂家都宣称,他们64位的PCI芯核曾达到过66MHz的速度,这些芯核在某些情况下,特别是在非零等待状态的配置中,可能的确能做到。但是在这样做时,媒体认为,至少有一些芯核对前端和后端的工具提出了这种不灵活的定位要求,因为在这种设计内用户的专用部分,达不到门电路数和功能的要求。
不久以前,设计师们也曾对33MHz PCI提出过同样的问题,所以从温故知新的角度看,生机盎然的66MHz运行几乎肯定迟早会到来。ASIC和可编程逻辑器件之间在I/O缓冲器电性能和速度上的差距,也在迅速地缩小(可参考Dyna Chips公司(www.dyna.com)的DY8000器件,和前面提到过了Altera公司和Xilinx公司的结构)。不过,互连接点丰富的ASIC逻辑器的最高速度一直都比被路由矩阵制约的CPLD和受通过-晶体管限制的FPGA的速度要快,在某种程度上说,甚至比反熔丝的FPGA还快。
还有没有别的用ASIC做的高速逻辑芯核的新的应用领域呢?如果有,这对可编程逻辑器件的灵活性也会增加一定的砝码。虽然FPGA厂家开始表白他们有信心支持顺控制器用于133MHz和双数据速率(DOR)同步DRAM,以及用于无等待延迟、DDR和四数据速率同步SRAM的存储控制器,但他们都闭口不谈Rambus公司(www.rambus.com)的DRAM(RDRAM)控制器(RAC)。RAC有很高的功能要求,它们从外部到内部的带宽扇出,会使可编程-逻辑-路由的资源受到破坏。
RDRAM的单存储器宽度信道接口能实现的系统颗粒度,比它用宽总线SDRAM获得同样峰值带宽所用的最低密度还小。在嵌套式设计中,这个因素具有特别的价值。PC和其他消费类产品的制造商,如Sony公司(www.sony.com)的Playstation2,都在尽量地加大其产量,以求降低目前RDRAM与异步的DRAM和SDRAM相比不断升高的成本。所以,如果在不远的将来,混合式芯片的生产厂家会提供可编程逻辑器件与RAC的组合器件,那就没有什么大惊小怪的了。
许多高速网络化接口和通信接口规约,对速度的要求也是可编程逻辑器件目前不能处理的难题。其中另外一条对许多器件都是共同的需要的,那就是混合信号集成,这一条也给ASIC-加-可编程-逻辑混合器件带来了新的生机,除了PLL外,今天的CPLD和FPGA显然已无法处理模拟信号。专用钟频恢复电路和无线基带处理,是标准单元电路和定制ASIC处理所独具的模拟功能实例。
在用CPLD和FPGA做较大设计中,功耗仍然是伤脑筋的事情(参考文献8)。在许多情况下,通过封装工艺和缩微印刷技术的不断改进,生产厂家已经能够使器件的工作电压逐步降低,从而也使器件能保持(基本上保持)在工作温度的阈值以下,因为超过工作温度阈限值器件的功能和长期可靠性就会遭到损坏。I/O缓冲器的灵活性使得可以把这些器件与电源电压和输入电平较高、输出摆幅也较大的那些传统器件相连接。但是,过高的工频加上内部逻辑节点频繁的触动,会要求增加散热处理或强制通风冷却,或两者都要具备。在ASIC里加上一些快速逻辑电路就会降低整个器件的功耗;但对芯片的"热点"仍然不能掉以轻心。开路先锋PCI的被普遍认可不仅是在PC领域,在各式各样的嵌套式设计中也大受欢迎,这就使生产厂家自然而然地把用PCI做的产品,作为打向混合芯片新天地的第一块问路石(请阅附文"全体到场了吗?")。在开发OR3TP12的过程中,Lncent Technologies公司用一个以ASIC为基础的85000个门的门阵列64位、66MHz PCI启动程序目标芯核,来代替72个OR3T55的324个逻辑单元电路。OR3TP12还保留252个可编程逻辑单元,Lucent公司估计能容纳专用逻辑30000到60000个门。
以0.35μm工艺制作的OR3TP12上包含有两个64T32位的启动程序和两个64T16位的目标FIFO存储器。四个16位或两个32位的信号通道在ASIC芯核和FPGA分隔区之间形成桥路。Lucent公司也刚开始销售OR3LP26B,这是OR3TP12的改进型号,它以0.25μm工艺制造,可以使FPGA逻辑器件的功能更快,并把PCI芯核与FPGA子阵列之间的互连接点翻了一番。Lucent公司还把OR3LP26B上的FPGA逻辑器件的数量也翻了一番,并改进了在PCI芯核和可编程逻辑器件之间运行的钟频分布集成网络。
在半导体厂家中也只有Lucent公司和Atmel公司,在同一个公司"屋檐"下既有ASIC事业部,又有可编程逻辑事业部。Luecnt公司打算利用这种混合逻辑器件的能力,把PCI再瞄向通信接口市场的其他领域。该公司的ORT4622在2000年的第一季度投产,就是这种打算中的首个例子(图2)。这种芯片上有四个78MHz、8位、双向接口变换成有622Mbps同步光纤网络(SONET)能力的四条全双工串行信道。
也就是说,这个方法能使2.5千兆位的数据流同时流入和流出ORT4622。这个芯片还集成了一些以模拟为中心的电路,如钟频和数据恢复,帧功能和指针解释器,以及相应的FIFO缓冲器。同样的器件通过其通用的259引脚FPGA分隔区,能支持许多的后端接口,对此该公司声称可容纳60000至120000个门电路。Lucent公司用标准单元ASIC制作SONET芯核,也可能对所有今后的ASIC+FPGA的各种器件,采用标准单元电路的加工工艺。该公司计划在2000年上半年再推出3种以通信为对象的混合芯片,目前正对DSP芯核的集成进行调研。
Quicklogic公司也正在促使PCI与QL5064和QL5032合作上下功夫(图3)。5064集成的是64位启动程序目标芯核(也可用作32位),运行频率可高达75MHz,而第二种芯片又纳入了一个32位专用的启动程序目标芯核,其工频速度为33MHz。该公司75MHz的选项产品并不是要严格顺从PCI的产品,封闭型的机箱系统可能用来提高性能。出于同样的原因,Lucent公司也对其OR3TP12提供一个50MHz的选项。QL5064有片上12.7千位的RAM和用户可配置的反熔丝式逻辑电路近30000门,器件以456引脚的PBGA封装。
Quicklogic公司目前在评估一种高速的32位专用的启动程序目标器件,该器件可能从QL5064派生出来,但封装引脚要少一些。QL5032是一种208引脚PQFP和26凸缘PBGA封装,含有16千位片上RAM,并提供可编程逻辑14.5,000门,同样也是在厂家PASIC3FPGA系列的基础之上。Quicklogic公司刚把以QL5030为基础的QL5130投产,有57千位的RAM,13.8,000 FPGA门,同时投产的还有从QL5032派生的QL5232,RAM为25.3千位,FPGA门数为122000个(附文"一个主题,多种表达")。该公司声称其反熔丝技术提供的在PCI芯核和用户可编程逻辑器件之间坚固耐用的互连点数量,并打算纳入覆盖PCI功能范围的产品,包括新的标准,如PCI-X,经及高速串行总线和各种通信应用。微型成为时尚
有些公司已经进行(也可能正计划进行)把基于ASIC的微处理器或DSP芯核,与可编程逻辑阵列集成组合在一块芯片上。这些厂家包括Chameleon Systems公司(www.chameleon systems.com)、Malleable Technologies公司(www.malleable com)、Morphics Technology公司(www.morphics.com)、Quick Silver Technology公司(www.quick silvertech.com)及Triscend公司(www.triscend.com)。单片可编程逻辑器件有多种用途:可以立即解决否则要在系统板上做成分立的"胶合逻辑器件",作为适配协处理器,或实现外设功能的用户专用集。
与Triscend公司一样,Semiconductor Design Solutions公司也把其现场可编程系统做在一块8051芯核的单个芯片上(FIPSOC)(表2)。模拟的和数字的外设子系统都是用户可编程的。每个数字宏单元包括四个4输入查表和四个触发器。可配置的模拟电路块就能实现专用功能,如差分放大,比较和数据转换。该公司就用这些块搭成电路,用作信号调节前端,而不是像更常用的模拟应用中那样。三重阵列配置存储器板使你能在FIPSOC运行中下载新的位流,并迅速地部分地或全部地完成器件的重新配置。
在这越来越拥挤的赛跑中,Atmel公司以其第一个2.7V现场可编程系统级IC(FPSLIC)系列而成为角逐新手。所有的器件都有一个30MIPS以上的AVR RISC微控制器芯核,在其上Atmel公司又加了一个专用的硬件乘法单元,32千字节 的用户可分隔代码和数据RAM、多引脚封装上的SPI、两个UART、两个8位的实时计数器、一个16位定时器/计数器,一个看门狗计时器和一个实时时钟。这种可编程逻辑阵列有576到2304个逻辑单元(估计10000至40000个门)和4.6至18.4千位的专用RAM,是以Atmel公司的AT40K FPGA中派生出来的。在CPU和FPGA之间的通信信道,有多到四个FPGA生成的中断。
要把单片系统的广告变成现实,设计工具的支持至少与半导体器件的能力同样重要。Atmel公司的System Designer(系统设计师)工具集,把厂家的IDS FPGA合成及布局-路由软件与Studio AVR编译程序组合在一起。System Designer也把Mentor Graphics公司(www.mentorg.com)的功能互-验难工具和Model Technologies公司(www.model.com)的仿真器和波形观察器合在一起(图4)。AT40K FPGA结构自然适用于适配性硬件加速功能,而且System Designer还能使你快速地鉴定多个硬件对软件的分隔方案,而用不着在线仿真器或试验板上进行。
更为通用的方案
选择一个专项应用的标准产品,例如Atmel公司、Lucent公司或Quicklogic公司的某个器件作借鉴,在你设计自己的专用片子而用其他方法派生时,你就会从中获得不同的受益。你不必担心NRE的费用、最低产量要求及昂贵的设计工具,上市的时间以及首次功能风险。你还可以避开在剩下设计中涉及到购买、修改及知识产权(IP)等潜在的麻烦事情。但是,有时买来的现成片子并不适合你的要求;可能缺少你设计中要求的某些性能,也可能含有许多你不需要也不愿为之付出代价的功能等等。
LSI Logic公司是一家ASIC生产厂家,并成了可编程逻辑IP的供应商,还同Adaptive Silicon公司结成伙伴关系。LSI Logic公司在其0.18μmG12加工工艺基础上开始提供可编程逻辑器件嵌入芯核的能力。Adaptive Silicon公司逻辑单元的技术继承又延伸回到National Semiconductor公司的Clay和NAPA结构(www.national.com/appinfo/milaero/napa1000),以及Concurrent Logic公司的技术,而这又成为Atmel公司AT6000系列的基础。
LSI Logic公司和Adaptive Silicon公司目前与为数不多的几家用户对半导体器件和设计软件做了第一步的测试;两家公司希望在明年上半年能把范围加大。与更为通用的多路复用逻辑单元或查表逻辑不同,LSI Logic公司选择用Adaptive Silicon公司的半加器单元,这种单元能与算法专用电路很好地协调。更为通用的设计也要求更完备的路由资源,但与Adaptiver Silicon公司的结构,就未必能有效地配合。
这两家公司都看到了嵌入芯核会有一系列的应用项目。这些应用包括可以为多种系统配置服务的通用ASIC,方法是将逻辑器件的子集置入可编程门电路,或是现场可重编程的ASIC,以此应对不断演变的标准或查定故障。可重配置计算是另一种可能的使用模式,而且即使你的目标是百分之百的用ASIC做的片子,也可以用混合器件使产品迅速上市。查定故障是这些方案中可行性最差的,因为当你完成ASIC时,你并不知道以后问题会出在什么地方。不过,你可以把可编程逻辑器件放在风险特别大的ASIC附近,并希望片上的互连足以弥补设计上其余部分的FPGA 阵列。