.

干货FPGA芯片的介绍编程技术芯

北京皮肤病医院治疗 http://m.39.net/news/a_6508755.html

来源:芯师爷

导语:随着半导体产业的发展以及新兴产业的需要,FPGA的作用逐渐突显。相比于CPU、GPU,FPGA并不为大众所熟知。那什么是FPGA?它有什么特点?又是如何工作的?……,读完这篇,你就知道了!

近日,有媒体报道称,北京微电子技术研究所日前成功研制出国内首个自主可控的宇航用千万门级高性能高可靠FPGA(现场可编程门阵列)芯片。

FPGA一直是国内的短板,市场基本被国外垄断。据统计,年国内超过亿元的FPGA市场中,国产市占率仅为4%。目前,全球FPGA市场基本被四大巨头垄断:Xilinx(赛灵思)、Intel(英特尔,此前收购了Altera)、Lattice(莱迪思)、Microsemi(美高森美)。国内FPGA厂商有高云半导体、京微齐力、上海安路、紫光同创、AGM和上海复旦微等。

来源:紫光同创

随着消费电子和通信等终端设备需求总量的增长,人工智能、大数据、云计算、智能汽车以及物联网边缘计算的发展,对FPGA的需求也将大增。相比于CPU、GPU,FPGA并不广为大众所熟知。接下来我们也为您简单介绍下这一“万能芯片”。

什么是FPGA?

FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA利用小型查找表(16times;1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。

FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。

FPGA的特点

1.采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。2.FPGA可做其它全定制或半定制ASIC电路的中试样片。3.FPGA内部有丰富的触发器和I/O引脚。4.FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5.FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。FPGA编程技术

目前,市场上有三种基本的FPGA编程技术:SRAM、反熔丝、Flash。其中,SRAM是迄今为止应用范围最广的架构,主要因为它速度快且具有可重编程能力,而反熔丝FPGA只具有一次可编程能力。基于Flash的FPGA是比较新的技术,也能提供可重编程功能。

基于SRAM的FPGA器件经常带来一些其他的成本,包括启动PROMS支持安全和保密应用的备用电池等。基于Flash和反熔丝的FPGA没有这些隐含成本,因此可保证较低的总系统成本。

1.基于SRAM的FPGA

这类产品是基于SRAM结构的可再配置型器件,通电时要将配置数据读入片内SRAM中,配置完成就可进入工作状态。断电后SRAM中的配置数据丢失,FPGA内部逻辑关机也随之消失,这种基于SRAM的FPGA可反复使用。

2.反熔丝FPGA

采用反熔丝编程技术的FPGA内部具有反熔丝阵列开关结构,其逻辑功能的定义由专用编程器根据设计实现所给出的数据文件,对其内部反熔丝真累进行烧录,从而使器件实现相应的逻辑功能。

这种器件的缺点是只能一次性编程,有点是具有高抗干扰性和低功耗,适合于要求高可靠性、高保密性的定型产品。

3.基于Flash的FPGA

在这类FPGA器件中集成了SRAM和非易失性EEPROM两类存储结构。其中SRAM用于在器件正常工作时对系统进行控制,而EEPROM则用来装载SRAM。由于这类FPGA将EEPROM集成在基于SRAM工艺的现场可编辑器件中,因而可以充分发挥EEPROM的非易失性和SRAM的重配置性。

断电后,配置信息保存在片内的EEPROM重,因此不需要片外的配置芯片,有助于降低系统成本、提高设计的安全性。

FPGA芯片结构

FPGA芯片主要由三部分组成,分别是IOE(inputoutputelement,输入输出单元)、LAB(logicarrayblock,逻辑阵列块,对于Xilinx称之为可配置逻辑块CLB)和Interconnect(内部连接线)。

1.IOE

IOE是芯片与外部电路的物理接口,主要完成不同电气特性下输入/输出信号的驱动与匹配要求,比如从基本的LVTTL/LVCMOS接口到PCI/LVDS/RSDS甚至各种各样的差分接口,从5V兼容到3.3V/2.5V/1.8V/1.5V的电平接口,下面是ALTERA公司的CycloneIVEP4CEF29设备的IOE结构

EP4CEF29设备的IOE结构图

FPGA的IOE按组分类,每组都能够独立地支持不同的I/O标准,通过软件的灵活配置,可匹配不同的电器标准与IO物理特性,而且可以调整驱动电流的大小,可以改变上/下拉电阻,CycloneIV设备有8个IOblank(组),见下图:

CycloneIV设备的IO组

2.LAB

LAB是FPGA的基本逻辑单元,其实际的数量和特性依据所采用的器件的不同而不同,EP4CEF29设备的每个LAB的布局包括16个LE、LAB控制信号、LEcarrychains、Registerchains和Localinterconnect,其LAB结构图如下:

LAB结构图

LE是CycloneIV设备最小的逻辑单元,每个LE主要有LUT和寄存器组成的。

LE的结构图

查找表LUT(Look-Up-Table)其本质是一个静态存储器SRAM,目前FPGA多采用4输入的LUT,每个LUT可以看作一个有4位地址线的16x1的RAM。当我们通过原理图或HDL语言描述了一个逻辑电路后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。

这样,在FPGA工作时,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出。

LUT的实现原理图

3.Interconnect

FPGA内部连接线很丰富,根据数据手册的描述,主要有Rowinterconnect、columninterconnect、Directlinkinterconnect、Localinterconnect和Registerchaininterconnect(寄存器之间连接的连接线)。

内部连接线联通FPGA内部的所有单元,而连线的长度和工艺决定着信号再连接线上的驱动能力和传输速度。在实际开发中,设计者不需要直接选择连接线,布局布线器可自动地根据输入逻辑网表(这由综合生成)的拓扑结构和约束条件选择连接线来连通各个逻辑单元,所以,从本质上来说,布线资源的使用方法和设计的结果有密切和直接、直接的关系。

FPGA开发流程

原理图和HDL(HardwareDescriptiIonLanguage,硬件描述语言)是两种最常用的数字硬件电路描述方法,其中HDL设计法具有更好的可移植性、通用性和模块划分与重用性的特点,在目前的工程设计中被广泛使用,下面对FPGA设计熟悉电路时的开发流程是基于HDL的。

1.系统功能设计

在系统设计之前,首先要进行的是方案论证、系统设计和FPGA芯片选择等准备工作。系统工程师根据任务要求,如系统的指标和复杂度,对工作速度和芯片本身的各种资源、成本等方面进行权衡,选择合理的设计方案和合适的器件类型。一般都采用自顶向下的设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用EDA元件库为止。

2.RTL级HDL设计

RTL级(RegisterTransferLevel,寄存器传输级)指不


转载请注明:http://www.abachildren.com/sszl/34.html