摘要
FPGA如今在各行各业应用广泛,本文介绍了FPGA如何从几十逻辑门的规模发展成现在的数千万逻辑门规模的历史,包含FPGA技术的进步与企业的发展,然后说明了与FPGA相关的几个常见名词的含义,包括PLD、CPLD、ROM、SRAM、FLASH等。
关键词:FPGA;Xilinx;CPLD;PLD
前言
FPGA全称Field Programmable Gate Array,现场可编辑逻辑门阵列。它以PAL、GAL、CPLD等可编程逻辑器件为技术基础发展而成。相较全定制的ASIC(Application Specific Integrated Circuit,专用集成电路),它是一种半定制芯片,FPGA既弥补了ASIC灵活性不足,又克服原有可编程逻辑组件门电路数有限的缺点。从用户的角度看,它是一种不需要高额费用的可实现随时定制的ASIC,更多介绍可参考:
-
百度百科-科普中国 FPGA -
维基百科 现场可编程逻辑门阵列
了解FPGA的发展历史会让我们在做FPGA设计时有一种通透感,也能帮助我们更好的认识FPGA的片上资源,很有必要。
一. 数字逻辑发展史
FPGA的发展基于数字逻辑(包括硬件描述语言)的发展。
数字逻辑发展大事记
时间 | 事件 |
---|---|
1906 | 三极管 |
1947 | 晶闸管 |
1958 | 集成电路 |
1965 | 摩尔定律 |
1969 | IBM发明了PLA(Programmable logic array,可编程逻辑阵列) |
1984 | Xilinx发明了FPGA |
1987 | VHDL成为IEEE标准 |
1995 | Verilog成为IEEE标准 |
二. FPGA逻辑门规模与企业发展史
FPGA最初是20世纪80年代由Xilinx公司发明的,距今已有三十多年的历史,40多家企业参与其中,下表展示了FPGA的逻辑门规模与企业的发展历史。
年代 | 最大逻辑门数量 | 代表器件名 | 技术特征 | 代表企业 |
---|---|---|---|---|
1970s | 几十~几百 | FPLA(Filed Programmable Logic Array,现场可编程逻辑阵列) | 用户可编程器件,使用了基于熔丝的ROM,只可被写入一次 | Signetics(曾属Philips,现属NXP) |
PAL(Programmable Array Logic,可编程阵列逻辑) | 采用双极性晶体管的高速OR阵列,只可被写入一次 | MMI(曾属Vantis,现属Lattice) | ||
1980s | 几百 | GAL(Generic Array Logic) | 采用CMOS实现低功耗,编程器件采用电可擦除/编程的EEPROM,可重复编程但集成度难以做大 | |
几百~几千 | FPGA | 实现了由可编程逻辑块,连线和I/O单元组成的基本逻辑阵列结构 | Xilinx | |
CPLD(Complex Progeammable Logic Device,复杂可编程逻辑器件) | 具有多个AND-OR阵列构造的逻辑块,具有密度高,容量大,速度快的特点 | Altera AMD Lattice |
||
反熔丝FPGA | 容易实现高速电路,具有非易失性,但只能被写入一次 | Actel QuickLogic |
||
1990s | 几千~100万 | 基于SRAM的FPGA | 主要有Flex,ORCA,VF1,AT40K等系列 | Altera AT&T AMD Atmel |
基于Flash的FPGA | 采用Flash ROM的FPGA,具有非易失性,可多次擦写 | GateField | ||
BiCMOS FPGA | 采用BiCOMS工艺高速ECL逻辑的FPGA(DL5000系列) | DynaChip | ||
2000s | 100万~1500万 | 百万门级别FPGA,SoPD(System on Progeammable Device) | 搭载处理器核心(硬核IP或软核IP),DSP块,多输入逻辑块,高速接口,多平台化 | Altera Xilinx |
初创企业FPGA -超低功耗FPGA -高速异步FPGA -动态重配置FPGA -大规模FPGA -单体 3D-FPGA |
初创企业的技术 -基于低漏电工艺和电流遮断技术的低功耗技术 -基于异步电路的数据令牌传输技术 -基于动态可重配置的虚拟3D化技术 -基于易于扩展的布线结构实现FPGA的大规模化技术 -基于非晶硅Si TFT技术的SRAM(3D化)技术 |
SiliconBlue Achronix Tabula Abound Logic Tier Logic |
||
2010s | 2000万(28nm)~5000万(20nm) | 28nm FPGA 20nm FPGA 16/14nm FinFET FPGA -新一代SOPD(现在的SoC,System on Chip) -动态重配置FPGA -3D-FPGA(2.5D-FPGA) -车载FPGA -光FPGA |
台积电28nm,20nm,16nm FinFET 3D晶体管技术 Inter的14nm FinFET 3D晶体管技术 -搭载ARM处理器的ZYNQ和Cyclone V SOC -动态可重配置技术成标配 -连接多个FPGA晶圆的2.5D-FPGA技术 -符合车载AEC-Q100和ISO-26262规格的FPGA -Vivado高层次综合工具OpenCL |
Altera Xilinx |
(垄断产生) | 一些小的FPGA公司,如QuickLogic,Atmel等相继推出市场,FPGA行业并购活跃 | 主要的4家FPGA公司: -巨头 Xilinx 和 Altera -老三和老四 Lattice 和 Actel |
||
(大型并购) | 面向数据中心和LoT市场的处理器成为主流,FPGA广泛应用于大数据分析,机器学习,虚拟化网络,高性能计算等领域 | Microsemi并购Actel Lattice并购SiliconBlue Interl并购Altera |
三. 几个重要的名词
PLD(Programmable Logic Device,可编程逻辑器件)是包括GAL,FPGA,PAL,CPLD,FPGA等器件在内的所有用户可将设计电路写入芯片的可编程逻辑器件的总称。
SPLD(Simple PLD,简单可编程逻辑器件)是FPLA,PAL,GAL等门数量在1000以下的PLD的统称,区别于后面集成度大的CPLD。
CPLD(Complex PLD,复杂可编程逻辑器件)是指将多个小规模的SPLD作为基本逻辑块,再通过开关连接而成的中大规模PLD,CPLD和SPLD一样都是采用的AND-OR阵列结构,不同的只是规模更大。CPLD逻辑部分的延时和开关部分的延时比较固定,设计较容易,
CPLD与FPGA的差异:不同于CPLD的AND-OR阵列结构,FPGA基于SRAM,通过组合使用器件内大量逻辑块来实现用户所需电路,自由度更高。现在,CPLD不管在集成度和速度上都差FPGA很多,各方面性能都被FPGA吊打,所以现在CPLD的定位是廉价的小规模PLD产品。
SRAM(Static Random-Access Memory,静态随机存储器), 谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。相对之下,动态随机存取存储器(DRAM,Dynamic RAM)里面所储存的数据就需要周期性地更新。断电后,SRAM和DRAM存储的数据都会丢失。 SRAM的基本特点是速度快但昂贵。
ROM,PROM,EPROM,EEPROM,FLASH:
存储器类型 | 说明 |
---|---|
ROM | Read-Only Memory,只读存储器,通过掩膜工艺将代码和数据永久保存,这种技术成本低但风险大,实际中很少使用 |
PROM | Programmable ROM,可编程只读存储器,出厂后只允许用户写入一次 |
EPROM | Erasable PROM,可擦写可编程只读存储器,用紫外线照射可擦除存储器中的数据,擦除后可再编程。缺点是擦除时间长,还麻烦(要紫外线) |
EEPROM | Electrically EPROM,电可擦写可编程只读存储器,使用电信号即可擦除,缺点是重编程时间长,同时可重编程次数较少 |
FLASH | 闪存,EEPROM的改进版,最大特点是必须按块(Block)进行擦除(不同厂家的块规格不同),而EEPROM一次可只擦除一个字节。因为做不到只擦除单个字节,所以FLASH ROM不能替代RAM。优点是速度快,耗电低。 |
四. FPGA发展总结
FPGA最初由Xilinx公司发明,基本架构由可编程逻辑块、I/O单元和连线构成。区别于专用芯片,FPGA是一种半定制芯片,用户可以将设计电路写入芯片使其完成特定功能。随着芯片制程的发展,FPGA内部逻辑门数量从最初的几百到几千,发展到现在的几千万,FPGA的集成度越来越高;从最初的速度不及CPLD,到1990s后期开始超过CPLD,再到现在全方面碾压CPLD,FPGA的速度越来越快;FPGA内部集成的运算单元从最初的DSP块,到处理器软核,到现在的ARM硬核,FPGA在向着SOC的方向发展,灵活性越来越高。现今,凭借着天生的并行计算能力,灵活性等各种显著优势,FPGA已人工智能,大数据,云计算等领域被广泛应用。
五. 参考
-
中国大学慕课中北京化工大学何宾老师课程《EDA原理与应用》.
-
田野英晴(日),赵谦译,《FPGA原理与结构》,第一章 .
如果本文对你有所帮助,欢迎点赞、转发、收藏、评论让更多人看到,赞赏支持就更好了。
如果对文章内容有疑问,请务必清楚描述问题,留言评论或私信告知我,我看到会回复。
徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。