FPGA现状及发展趋势FPGA_engineer@163.com提纲FPGA的发展史FPGA的现状分析FPGA的发展趋势FPGA的概述可编程逻辑器件简介可编程逻辑器件(ProgrammableLogicDevice,PLD)起源于20世纪70年代,是在专用集成电路(ASIC)的基础上发展起来的一种新型逻辑器件。其特点是由用户通过软件进行配置和编程,完成某种特定功能,修改和升级,只需在计算机上修改和更新,使硬件设计工作成为软件开发工作,缩短了设计的周期,提高了实现的灵活性并降低成本,因此获得了广大硬件工程师的青睐,形成了巨大的PLD产业规模。从可编程逻辑器件诞生至今,经过二十几年的发展,芯片规模、密度、以及性能有了惊人的变化。可编程逻辑器件简介目前常见的PLD产品有:可编程只读存储器(ProgrammableReadOnlyMemory,PROM)可编程阵列逻辑(ProgrammableArrayLogic,PAL)通用阵列逻辑(GenericArrayLogic,GAL)复杂可编程逻辑器件(ComplexProgrammableLogicDevice,CPLD)现场可编程门阵列(FieldProgrammableGateArray,FPGA)可编程逻辑器件简介第一阶段•PROM、EPROM和EEPROM,•由于结构的限制,只能完成简单的数字逻辑功能。第二阶段•PAL和GAL,正式被称为PLD,能够完成各种逻辑运算功能。•由“与”、“非”阵列组成,以乘积和形式完成大量的逻辑组合。第三阶段•FPGA和CPLD能够实现超大规模的电路,编程方式也很灵活,成为产品原型设计和中小规模产品生产的首选。第四阶段•SOPC和SoC技术是PLD和ASIC技术融合的结果,涵盖了实时化数字信号处理技术、高速数据收发器、复杂计算以及嵌入式系统设计技术。FPGA概述FPGA(FieldProgrammableGateArray)是在PAL、GAL、EPLD、CPLD等可编程器件的基础上进一步发展的产物。它是作为ASIC领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构,查找表可以很好地满足这一要求。各家公司FPGA架构简单介绍:FPGA概述-架构对称阵列FPGA结构上图为对称阵列FPGA的内部结构示意图,主要由可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源和内嵌IP核等组成。FPGA核心单元-IOB1、可编程输入输出单元(IOB)可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求,提供输入缓冲、输出驱动、接口电平转换、阻抗匹配以及延迟控制等功能,FPGA内的I/O按组分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适配不同的电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。目前,I/O口的频率也越来越高,一些高端的FPGA通过DDR寄存器技术可以支持高达2Gbps的数据速率。下图是IOB的结构示意图:FPGA核心单元-IOB2、可配置逻辑块(CLB)CLB是FPGA内的基本逻辑单元。CLB的实际数量和特性会依器件的不同而不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些选型电路(多路复用器等)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。在某些FPGA器件中,CLB由多个相同的Slice和附加逻辑构成。FPGA核心单元-CLBFPGA核心单元-CLBCLB中查找表LUT目前主流FPGA采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。LUT的基本原理是:对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在2n种结果。所以如果事先将相应的结果存放于一个存储单元,就相当于实现了与非门电路的功能。某些LUT不仅可以用于实现组合逻辑、函数发生器和移位寄存器等功能。FPGA核心单元-CLBLUT作为函数发生器:FPGA核心单元-CLBLUT作为移位寄存器:FPGA核心单元-CLB3、数字时钟管理模块(DCM)大多数FPGA均提供数字时钟管理。通过该模块提供数字时钟管理和相位环路锁定。相位环路锁定能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。FPGA核心单元-DCM4、嵌入式块RAM(BRAM)大多数FPGA都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活性。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。RAM、FIFO是比较普及的概念,在此就不冗述。CAM存储器在其内部的每个存储单元中都有一个比较逻辑,写入CAM中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。除了块RAM,还可以将FPGA中的LUT灵活地配置成RAM、ROM和FIFO等结构。在实际应用中,芯片内部块RAM的数量也是选择芯片的一个重要因素。FPGA核心单元-BRAM5、丰富的布线资源布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以完成芯片Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。FPGA核心单元-布线资源6、内嵌IP核内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(HardCore),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。Xilinx的主流芯片都集成了硬核的块RAM、硬核乘加器,在高端产品还集成了PowerPC系列CPU,还内嵌了吉比特收发器(MGT)模块等。FPGA核心单元-内嵌IP核FPGA设计的实现可分为映射、布局、布线、配置比特流生成和配置几个阶段。FPGA概述-设计开发流程RTLSynthesis将设计输入(HDL源码、电路图等)转换为特定格式(一般为EDIF)的网表基础:带数据通道的有限状态机模型FSMDCDFG(控制数据流图):CFG(控制流图),DFG(数据流图)基本任务:调度和分配算法:调度算法:ASAP(AsSoonAsPossible),ALAP(AsLastAsPossible),Force-Directed,ILP(整数线性规划法)分配算法:贪婪构造法,左边缘算法,团划分,ILPFPGA概述-设计开发流程Mapping将与工艺无关的逻辑门转换成目标FPGA结构中的逻辑单元算法:基于目标优化:面积;时序;功率和布线性基于转换算法的类型:面向结构;面向功能基于输入网表的类型:组合网表;时序网表典型:FlowMap——基于最大流估算的深度优先的映射算法,耗费多项式时间。FPGA概述-设计开发流程Placement将映射后网表中逻辑单元置放于适当的物理位置算法:基于模拟退火算法:VPRPacking/Placing基于划分(partitioning):PPFF基于图嵌入和度量几何学:CAPRI布图规划:FrontierFPGA概述-设计开发流程Routing将布局后物理单元通过FPGA布线通道连接起来,其结果应满足时序和其它约束要求分为布线资源图的生成、全局布线和详细布线三个阶段算法:基于贪婪装箱算法基于模拟演化基于协商方法基于Steiner图的启发式算法典型:PathFinder——基于协商方法,通过对不同变量的评估和选择,比如对基本布线代价、过去和现在阻塞量的评估等,将全局布线和详细布线结合到一个详细资源布线图上,这样会减少所需布线通路数目。FPGA概述-设计开发流程各厂商在软件技术上也推陈出新,研发出适合新型硬件的高效算法、更加良好的人机界面以及新的设计方法学,陆续在软件中采用了时序驱动布局布线技术、模块化设计、增量设计、主动时序收敛、物理综合、形式验证、功耗分析等新技术新方法。FPGA软件开发平台FPGA的发展史FPGA的现状分析FPGA的发展趋势FPGA的概述PLD的发展史FPGA的发展史(1)•推出全球第一款FPGA产品——XC2064,采用2μm工艺,包含64个逻辑模块和85,000个晶体管,门数量不超过1,000门。1985年Xilinx•推出XC4000系列FPGA,这是第一款被广泛使用的FPGA,包含44万个晶体管。采用0.7μm工艺。1991年Xilinx•推出带有嵌入式模块RAM的FPGA•FLEX10KFPGA1995年Altera•Virtex系列,是第一个百万门级的高端FPGA,采用0.25μm工艺,FPGA架构向前迈了一大步,成为传统的基于门阵列或标准单元技术ASIC器件的可编程替代选择方案。1998年XilinxFPGA的发展史(2)•世界上第一款带有硬件嵌入式处理器的FPGA——基于ARM的Excalibur器件。2000年Altera•世界上第一款带有嵌入式收发器的0.18umFPGA——MercuryFPGA2001年Altera•世界上第一款带有嵌入式DSP模块的FPGA——Stratix•采用0.13um工艺的成本最低的FPGA——Cyclone2002年Altera•世界上第一款90nmFPGA——Spartan-3系列FPGA2003年XilinxFPGA的发展史(3)•全球首个65nmVirtex-5系列产品,该FPGA基于业内最先进的65nm散栅极氧化技术,取得突破性进展的新ExpressFabric技术和工人的ASMBL架构。2006年Xilinx•业界首款40nmFPGA——StratixIVFPGA,具有高密度、最好性能、最低功耗、最大的收发器带宽。2008年Altera•Virtex-6采用40nm工艺构建是目标设计平台的高性能芯片基础。功耗和成本分别比上一代产品低50%和20%。2009年Xilinx•业界带宽最大的FPGA——StratixV,具有1.6Tbps串行交换能力,采用各种创新技术和前沿28-nm工艺,降低了宽带应用的成本和功耗。2010年Altera•7系列FPGA统计架构•利用高-K金属栅、高性能、低功耗28nm工艺技术,为您实现低功耗、最高性能和生产力最大化。2010年XilinxXilinx公司简介Xilinx公司成立于1984年,首创了现场可编程逻辑阵列(FPGA)这一创新性的技术,并于1985年首次推出商业化产品。目前Xilinx占有全世界FPGA产品一半以上的市场份额。Xilinx公司的FPGA器件基于SRAM架构,可“无限次”编程;LUT可配置为分布式RAM;块RAM可配置为多种模式;全数字式的时钟管理系统,可提供灵活精确的时钟信号;VersaRing提供了IOB与CLB的连接,可以更便利的实现PIN锁定。Xilinx主要产品列表产品系列系统门(K)CLBRAM大小(K)工艺电压(V)分布式块低端XC4000E2~45100~1,0243~32无0.6umCMOS3层金属5XC4000EX18~651024~1,29632~40无0.5umCMOS4层金属5XC4000XL3~18064~3,1362~98无0.35umSRAM5层金属3.3XC4000XLA30~180576~3,13618~98无0.35umCMOS5层金属3.3XC4000XV220~5004,096~9,464131~271无0.25umCMOS5层金属2.5S