第一部分 FPGA基础理论
第1章 浅谈FPGA技术、优势、学习途径
1.1 FPGA的诞生、发展与未来
1.1.1 FPGA的诞生
说到FPGA—现场可编程门阵列,在电子行业中,相信每一位开发者都耳熟能详。FPGA是在PAL、GAL、CPLD等可编程器件的基础上发展起来的新型高性能产物,是作为专用集成电路(ASIC)领域中的一种半定制芯片出现的,它既解决了流片费用高昂的问题,又克服了原有可编程器件门电路数有限的缺点。由于具有容量大、速度高、集成度高、灵活性强等特点,FPGA芯片可以完成极其复杂的时序和组合逻辑电路功能,在信号处理、通信协议、视频图像处理,以及人工智能等领域得到了越来越多的运用。
由于Altera公司全球大学计划做得较好,同时其GUI界面相对更为友善,且低端产品价格亲民,所以对于刚迈出校门的学生来说,他们最熟悉的是Altera公司的FPGA;而对于企业用户、研究所等工程师来说,涉及产品设计时,则更多地要考虑性能、开发周期、产品的支持力度,因此选择上没有太大的局限。不过,亚洲地区用户使用Altera公司产品的较多,而欧洲地区的用户使用Xilinx公司产品的更多(近年来在高端市场上,Xilinx公司的产品占据上风,而在低端市场上,Altera公司产品依然具有很强的竞争力)。
Altera公司与Xilinx公司是目前FPGA界的两大“巨头”,都是“十大最受中国市场欢迎的半导体品牌”之一,市场份额平分秋色,各有千秋。目前,Altera公司与Xilinx公司的市场占有率近90%,排在第三位的是Lattice公司,然后才是其他的一些公司。Altera公司、Xilinx公司和Lattice公司的Logo如图1.1所示。
图1.1 Altera公司、Xilinx公司和Lattice公司的Logo
20世纪90年代是电信行业和集成电路行业迅速发展的时代。为了解决逻辑黏连,以及集成电路复杂度不断上升等问题,PLD(可编程逻辑器件)应运而生。PLD最先由Altera公司发明,早期采用EEPROM工艺,基于乘积项(Product Term)结构。最早进入中国市场的是Lattice(莱迪斯)公司,而并非Altera公司或Xilinx公司。Lattice公司成立于1983年,专业从事设计、开发和销售高性能可编程器件及其相关软件。
1991年,Lattice公司革命性地推出了ISP技术—在线系统可编程技术,从而开创了可编程逻辑器件的市场。利用ISP技术,工程师可以直接对器件进行编程,甚至擦除(不再需要利用紫外线擦除),从而有效地缩短了产品的上市周期,降低了生产成本。正因为ISP技术的优越性,Lattice公司率先占领了中国的市场,成为通信企业、研究所等青睐的产品。
由于Altera公司的产品具有人性化的GUI开发界面,以及灵活强大的功能,所以吸引了一部分工程师,所以从1996年起,Altera公司开始逐渐挽回PLD在中国的市场。随后,Altera公司又推出了MAX7000系列PLD,其在设计与性能上的优势超越了Lattice公司的产品,从而奠定了Altera公司在中国市场的基础。
由于当时市场上的PLD的加密性不好,同时又不能防辐射,所以它并不太适合用于航天产品。不过,Actel公司与QuickLogic公司的PLD采用了Antifuse(反熔丝)技术,以烧断熔丝为代价解决了加密的缺陷。这两家公司的PLD有一个最大的优势,那就是防辐射,以及支持军用温度,因此在航天和军事领域,这两家公司的产品也有属于自己的市场。Actel公司与QuickLogic公司的Logo如图1.2所示。
图1.2 Actel公司与QuickLogic公司的Logo
不过,由于Actel公司[1]与QuickLogic公司的产品具有反熔丝特性,使得其在PLD设计上不通用,因此这两家公司的产品在民用市场所占的份额不是很大。此时,还有一些小市场份额的厂家,如Atmel公司、Cypress公司等,也开始进入FPGA市场,虽然他们也有一定的用户群,但是PLD并非他们的主要业务。Atmel公司与Cypress公司的Logo如图1.3所示。
图1.3 Atmel公司与Cypress公司的Logo
随着集成电路的不断发展,原有的PLD架构及设计的资源已经无法满足产品设计的需求;同时,由于PLD的制造成本高,且要求使用者需要有一定的专业水平,但烧录次数有限,使其的发展遇到了一定的瓶颈。
作为FPGA的发明者,Xilinx公司在1985年推出了全球第一款FPGA产品—XC2064。当时的XC2064是现在FPGA的一个最原始的雏形—采用2μm工艺,包含64个逻辑模块和85000个晶体管,门数不超过1000个。当时,注定要使用大量芯片的PC刚刚走出硅谷的实验室进入商业市场,因此创新的可编程产品似乎并没有什么用武之地。
但是,事实并非如此。最初,PLD只应用了胶合逻辑(Glue Logic);后来,发展出数字信号处理、高速串行收发器和嵌入式处理器,PLD逐渐地演变为FPGA。在过去几十年内,尤其是近10年,FPGA以闪电般的速度发展,甚至嵌入ARM与DSP,几乎有望成为未来数字世界的主宰。30多年后的今天,FPGA业界双雄—Xilinx公司和Altera公司,纷纷推出了嵌入双核28nm Cortex-A9的SoC FPGA,以及集成了A53、GPU、Codec、DSP等计算单元的异构FPGA。FPGA现在的发展速度在当初几乎不可想象。
回顾历史,Xilinx公司成立的日期比Altera公司晚了一年。但Xilinx公司能够有今天的业绩,主要是源于其当初开创的一个新结构,即“先组合、后时序”。Xilinx公司产品的特点是细颗粒查找表结构、丰富的寄存器资源,以及分段式路由布线结构、电路上电加载。Xilinx公司产品的这种设计的好处在于:
① 电路的规模得到空前的提高;
② 适合进行加减法运算;
③ 无限制地更新电路。
衡量一个PLD很重要的指标就是FPGA的设计资源与规模,因此从这个角度来看,Xilinx公司的产品无疑走到了世界的最前面。当然,由于SRAM架构的FPGA需要外部存储器作为配置芯片,所以也有人说Xinlinx公司的设计不可靠,其设计指标难以预测,且设计无法保密。但是Xilinx公司在市场上的成功及其对应用需求的推动,证明了这些说法都是错误的。
与此同时,Altera公司并没有甘拜下风。Xilinx公司的成功激励了Altera公司新产品的推出,同时也使其有了革命性的突破。Altera公司产品以其粗颗粒结构、嵌入式存储器、长连线结构又重新占领了市场。Altera公司在1992年推出的FLEX 8000系列FPGA,成为当时攻击Xilinx公司的武器,为未来与Xilinx公司平分秋色奠定了基础。1992—1996年Altera公司推出的革命性产品如表1.1所示。
表1.1 Altera公司的FLEX系列FPGA的发展历程
当时的Altera公司已经意识到了大规模发展FPGA才是王道,高速嵌入式RAM及嵌入式PLL是一个极具开创性的思维。因此,虽然当时Xilinx公司的分布式RAM及内置三态的结构的确有占领市场的优势,但是Altera FLEX 10K的出现,有效地提高了Altera FPGA的产品性能,使其市场份额不断地上升。Altera FLEX 10K的这种设计结构的优势在于:
① 采用多选一或一对多的MUX结构,实现了三态门的功能;
② ESB的Memory结构,用来构成FIFO、DPRAM、大型查找表都非常方便;
③ 布线资源以长连线资源为主,编译速度快。
尽管当时Xilinx公司的分布式RAM也很灵活,但是随着RAM容量的增加,访问速度随之递减,所以无形中降低了产品的性能,同时消耗了大量的逻辑资源。正是由于两家公司各自的优势与缺陷,使得Altera公司与Xilinx公司势均力敌,各自占领了PLD市场的半壁江山。
在Altera公司与Xilinx公司的这一角逐过程中,Lattice公司并没能推出新的产品。此时,Lattice公司的噩梦才刚刚开始,由于设计规模的不断攀升,FPGA的资源已经决定了产品的去向,而Lattice公司一直没有其代表作,因此其市场份额逐渐被Altera公司与Xilinx公司吞噬。
Altera公司与Xilinx公司的FPGA有各自的优缺点,主要区别如下。
① Altera公司的FPGA没有宇航级的,而Xilinx公司有,因此在航天和军工领域,Altera公司的市场份额较少。
② 过去在顶级器件的速度和性能上,Altera公司的FPGA要略逊于Xilinx;但Altera公司最新发布的104nm工艺的Stratix 10TX FPGA,号称最快的FPGA,浮点性能达到10RFLOPS(10万亿次每秒)。
③ 从FPGA的资源上看,Xilinx公司的短线资源比Altera公司的丰富。正因为如此,对于相同速度等级和逻辑资源的器件,Xilinx公司器件的成本与售价均比Altera公司的高。因此,如果Altera公司的FPGA能满足设计要求,将比Xilinx公司的产品有更高的性价比。
④ Altera公司的Quartus Ⅱ软件的集成界面的易用性比Xilinx公司的ISE好,而ISE的脚本支持比Quartus Ⅱ做得好。因此,对初学者或高校学生来说,Quartus Ⅱ更容易入门;而对于熟练用户而言,在大型设计项目的开发中,ISE可能会显得更顺手。自2012年起,Xilinx公司已全面推广Vivado(部分老器件如Spartan6 FPGA只能用ISE),这是更为复杂的高级综合调试工具,对初学者而言有更大的压力。
1.1.2 FPGA的发展与未来
FPGA这一名字在1984年就已经出现了,至今已经超过30年,不过在刚开始的10多年内,FPGA并未受到太多的重视,其原因是FPGA的功耗大、成本高,电路稳定性等性能均不如ASIC。因此,在这10多年时间内FPGA多半只应用在一些特殊领域,如芯片制造者针对新产品测试市场反应时,如果初期产品未能达到量产规模,则可以首先用FPGA制成产品进行测试。
回首半导体行业的芯片制造工艺发展过程,几十年内,其技术的突破简直难以想象—芯片不断向小封装、高集成度、低功耗方向发展,曾经是庞然大物的计算机,如今已经发展成为我们的掌中之物。以Intel公司产品的工艺为例,其半导体制造工艺发展进程如图1.4所示。
图1.4 Intel公司产品半导体制造工艺发展进程
由图1.4可见,近10年来,以Intel公司产品为代表的IC制造工艺,从180nm、130nm、90nm、65nm发展到45nm、22nm、14nm,并且10nm近在眼前。FPGA产品的每次重大飞跃,都离不开IC生产工艺的更新。如果想在FPGA上寻求重大突破,除设计结构上的更新外,更重要的是要借助先进的工艺制程。但是,半导体工艺的开发成本和技术门槛高、风险大,使得并不是所有厂商都能“玩得起”,只有实力雄厚、产业链关系稳固的厂商才有实力和勇气参与其中。在FPGA市场上,目前也只有Altera公司和Xilinx公司这两大霸主有资本和能力敢在最新半导体工艺方面“赌一赌”(不得不说的是,Intel公司收购了Altera公司后,其世界一流的工艺必将推动其FPGA的革新)。
FPGA市场风云变幻,Altera公司与Xilinx公司推出的双核ARM Cortex-A9的28nm工艺FPGA,是目前最受嵌入式处理器欢迎的FPGA器件。它以软、硬件结合的架构,完善了嵌入式ARM的处理与FPGA硬件加速的功能,实现了片间通信的无缝连接。使系统集成再次突破极限,这一代FPGA已经从制造工艺、设计架构方面完全突破了传统的概念。以Altera公司的Cyclone V/Arria V FPGA与Xilinx公司的ZYNQ系列FPGA为代表,它们是目前最受欢迎的SoC FPGA,与传统ARM+DSP等多处理器系统的集成设计相比,它们具有绝对优势。
由于双核A9的性能远远满足不了工业界的需求,因此Altera公司的14nm Stratix 10TX系列FPGA,以及Xilinx公司的16nm Ultrascale+系列FPGA,均为集成了四核A53的异构FPGA,从而在终端和云端均受到了市场的青睐,正式将FPGA从单纯的协处理器加速引擎转变为超大规模异构FPGA处理器,使得行业可以采用单片FPGA,以完成CPU、DSP与FPGA等功能的定制开发,FPGA距离统一三大处理器的目标又更近了一步。
随着半导体工艺和技术的不断发展,Altera公司与Xilinx公司的FPGA工艺也在不断更新,FPGA工艺的发展符合摩尔定律,发展到今天的20nm,已经超出了人们以往的想象。Altera FPGA工艺的发展如图1.5所示,从130nm到现在的20nm,我们已经在不知不觉中经历了好几代产品。
图1.5 Altera FPGA工艺的发展
在30多年的FPGA发展进程中,Altera公司与Xilinx公司一直是针锋相对、你追我赶、相辅相成的。无论是130nm工艺的角逐,还是90nm、45nm的市场占领,抑或是从28nm到14nm的竞争,Altera公司与Xilinx公司为求得更大的市场份额,为了在FPGA界占据主宰的地位,不断地创新技术,突破极限,完善自我,以赛跑式的竞争统一FPGA的天下。
除Altera公司与Xilinx公司这两家最大的FPGA厂商外,在一些尖端领域,或者现有FPGA无法满足的应用中,也出现了一些创新型公司,如Achronix半导体公司。Achronix半导体公司是一家提供高性能、高密度FPGA方案的美国高科技公司。Achronix半导体公司与Intel公司合作,推出了业界最先进的22nm 3D FinFET技术,以及新一代FPGA器件。Achronix半导体公司的网址为http://www.achronix.com,其主页如图1.6所示。
图1.6 Achronix半导体公司的主页
Achronix半导体公司是一家产品以速度和性能著称的初创型企业,其产品主要应用于高速数字领域。Achronix半导体公司的Speedster22i器件系列是业界速度最快、功耗最低的高密度FPGA。其可编程逻辑主频达到兆级,同时SerDes的速率最高可达到12.75Gbps, DDR3 PHY控制器能实现2133Mbps的速率。此外,以太网控制器能实现10G/40G/100G的带宽。
近几十年来,FPGA作为核心关键技术,一直被美国垄断,全球最大的几个FPGA厂商(Xilinx、Altera、Actel、Microsemi(Lattice))都在美国本土,并且占据了几乎全球市场,也就是说,在全世界范围里,FPGA几乎是美国独有的。近几年,我国国产FPGA正在崛起,国内半导体行业正在悄悄地改变。
FPGA是芯片行业最难走的一条路,众多半导体强国,如日本、韩国、欧洲各国都没有FPGA公司。我国业界深刻认识到唯有自主研发国产FPGA,在市场竞争中不断积累突破,才是唯一的出路。
多年来,中国企业始终没有停止研发FPGA的脚步,国产FPGA的厂家主要有深圳市紫光同创电子有限公司、上海安路信息科技有限公司、广东高云半导体科技股份有限公司、上海遨格芯微电子有限公司(AGM)、京微雅格(北京)科技有限公司等。我国几家成长中的国产FPGA品牌的Logo如图1.7所示。
图1.7 我国几家成长中的国产FPGA品牌的Logo
深圳市紫光同创电子有限公司作为中国可编程逻辑器件领导厂商,专业从事大规模、高性能、高性价比FPGA产品的研发与销售,拥有中国第一款千万门级的高性能自主FPGA产品。其产品主要供给国内航天和军工领域研究所,以及中兴、华为等公司,是有大规模、高性能FPGA设计能力的公司。
上海安路信息科技有限公司、广东高云半导体科技股份有限公司均致力于中低端FPGA的研发,专注高集成化程度、高性价比、低功耗的可编程逻辑器件。这两家公司在国内的LED/LCD显示驱动、工业控制等领域占有一定的份额。目前,其产品均采用55nm低功耗工艺,可覆盖市场所有18K~20K LEs以下产品需求(更好的工艺据说费用过高)。
上海遨格芯微电子有限公司同样为一家中低端、低密度FPGA的芯片提供商,其IoT FPGA芯片通过了三星公司严格的供应商测试认证,成为三星Galaxy手机除Lattice外唯一备选的FPGA。
京微雅格(北京)科技有限公司是一家国家最早投资的FPGA生产厂商,也是以上几家公司中成立最久的。笔者早在2011年、2013年就用过该公司的不同产品,曾经以为该公司一定能够成功,但遗憾的是,不知是由于市场做得不好还是资金链断链,该公司这两年已经偃旗息鼓(据说关门后部分工程师被其他四家公司收编了,随后该公司又进行了重组)。
中国的国产FPGA之路依然艰辛,要与Altera公司、Xilinx公司竞争依然还有很长的路要走,笔者希望政府多以投资或政策支持的方式扶持国产FPGA,未雨绸缪,打造中国之芯;同时希望国产FPGA可以尽快走进高校,走进公司,成为我们首要的选型。
1.1.3 博弈,在入门之前
FPGA的设计平台并不统一。各公司各自生产FPGA芯片,只有公司自己对自己芯片的特性最为了解,因此设计者在选择使用哪个公司的芯片时,就默认选择了相应的开发平台。因此,初学者在入门之前就要选择使用哪家公司的开发平台和系列芯片,并且需要用相当长的时间来掌握平台及产品,这便是设计者在入门之前的一次博弈。为了让读者在抉择之前对各家公司及其芯片有所了解,本书对Altera公司、Xilinx公司、Microsemi(Actel)公司等主要的FPGA公司进行介绍。
Altera公司作为最早的可编程逻辑器件的厂家,也是可编程逻辑器件的发明者,开发平台主要有当年的MAX+PLUS II和后来的Quartus II。Altera公司的主流FPGA分为三大类:第一类FPGA定位为低端产品,侧重低成本应用,容量中等,性能可以满足一般的逻辑设计要求,如Cyclone~Cyclone10系列,其工艺技术为130~20nm,集成化程度不断提高,而且在Cyclone V系列中集成了硬核处理器和高速收发器等资源,从而减小了电路板的面积;第二类FPGA定位为中端产品,如Arria的多个系列,更注重于高级串行接口技术、低功耗、高带宽的应用;第三类FPGA定位为高端产品,侧重于高性能应用,容量大,性能可以满足各类高端应用,如Startix~Stratix10等,用户可以根据自己的实际应用要求进行选择。在性能可以满足的情况下,优先选择低成本的器件。
笔者点评:Altera公司的芯片具有很好的性价比。与Xilinx公司相比,Altera公司更注重亚太地区的市场和各大高校的实验室建设,在我国具有更广泛的应用。笔者在2008—2012年的本科学习期间,笔者所在学校的数字电路的实验室使用的都是MAX+PLUS II和基于Altera FPGA的开发套件。经过Altera公司的不断努力,其新版本的开发平台Quartus II作为MAX+PLUS II的替换版本,具有更好的开发环境,使初学者更容易上手。Altera公司每年都会举办FPGA设计大赛,该比赛是FPGA系统设计领域的顶级赛事之一,我国众多高校将其奖项作为奖学金评定的参考标准。
Xilinx公司是FPGA的发明者,拥有世界近一半的市场,其开发软件为ISE。Xilinx公司的主流FPGA分为两大类:一类侧重于低成本应用,容量中等,性能可以满足一般的逻辑设计要求,如Spartan系列;另一类侧重于高性能应用,容量大,性能可以满足各类高端应用,如Virtex系列,用户可以根据自己的实际应用需求进行选择。
笔者点评:Xilinx公司的开发平台(ISE)的界面相对较为严谨,初学者上手速度比较慢。其产品价格相对偏高,这主要是由于其产品中短线资源较多,相应地增加了成本,但短线资源丰富的优点提高了资源占用较满时布线的成功率。Xilinx公司的产品在国外应用较多,尤其是在一些国际型的FPGA设计公司中应用较为广泛。
Microsemi公司于2010年收购了Actel公司及其相关业务,该公司主要提供非易失性FPGA,其产品主要基于反熔丝工艺和Flash工艺,主要用于军工和航天领域。Actel公司是美国军方的合作伙伴,占据了美国90%以上的航空/航天FPGA市场。在过去的10多年中,Actel公司反熔丝的FPGA已经成功地应用于300多个太空计划,这些应用足以证明Actel公司的FPGA在可靠性方面是毋庸置疑的。2005年,Actel公司推出了第三代Flash架构的FPGA—ProASIC3/E,是为适应市场对全功能、低成本FPGA的强劲需求而设计的,主要面向汽车及其他成本敏感的应用领域。
笔者点评:Microsemi(Actel)公司的产品由于采用了基于Flash的结构,所以上电后无须进行程序加载,因此系统上电后在极短时间内即可达到稳定状态,并且可以节约Flash相关电路的布局空间,设计时相对简单。然而,逻辑资源和采购方式是其硬伤。从表1.2中可以看出,Microsemi(Actel)公司高端系列的A3PE1500与Altera公司的中低端系列的EP3C40相比,各项指标均处于劣势。尤其是其存储资源较少,不适用于需要大量存储资源的实时算法,如图像类算法等。由于国内外使用Actel公司产品的人较少,所以其产能不高,采购也比较困难。但由于其在航空/航天领域的特殊应用,使得在一些航空/航天领域研究所的高校招聘会上,熟悉Actel公司产品的设计者有一定的优势。
表1.2 Actel公司FPGA与Altera公司FPGA的比较