编者按:处理解决方案常常是由RISC、CISC、图形处理器与FPGA的组合提供,或由FPGA单独提供,或以硬处理器内核作为部分结构的FPGA提供。然而,许多设计人员不熟悉FPGA的功能、其发展脉络以及如何使用FPGA。本系列文章由多个部分组成:
现场可编程门阵列(FPGA)具有诸多特性,无论是单独使用,抑或采用多样化架构,皆可作为宝贵的计算资产;但是许多设计人员并不熟悉FPGA,亦不清楚如何将这类器件整合到设计中。
解决办法之一是深入研究主要供应商提供的FPGA架构及相关工具。本文将从LatticeSemiconductor产品系列开始着手,为大家做详细的介绍。
FPGA选件高级概述
市场上有许多不同类型的FPGA,每种类型都有不同的功能和特性组合。可编程结构是所有FPGA的核心,并以可编程逻辑块阵列的形式呈现(图1a)。FPGA结构进一步扩展可包括SRAM块(称为块RAM(BRAM))、锁相环(PLL)和时钟管理器等组件(图1b)。此外,还可以添加数字信号处理(DSP)块(DSP切片)和高速串行器/解串器(SERDES)(图1c)。
图1:简单的FPGA仅包含可编程结构和可配置通用IO(GPIO)(a);不同架构是在此基本结构上增加其他元件而形成:SRAM块、PLL和时钟管理器(b),DSP块和SERDES接口(c),以及硬处理器内核和外设(d)。(图片来源:CliveMaxMaxfield)
外设接口功能(如CAN、I2C、SPI、UART和USB)可以实现为可编程结构中的软内核,但许多FPGA将其作为硬内核在硅片中实现。同样,微处理器也可以实现为可编程结构中的软内核,或作为硬内核在硅片中实现(图1d)。不同FPGA针对不同的市场和应用提供不同的功能、特性和容量集合。
FPGA供应商有很多,包括Altera(被Intel收购)、Atmel(被MicrochipTechnology收购)、LatticeSemiconductor、Microsemi(也被MicrochipTechnology收购)和Xilinx。
所有这些供应商都提供多个FPGA系列;有的提供片上系统(SoC)FPGA(包含硬处理器内核),有的则针对航天等高辐射环境提供耐辐射器件。由于产品系列众多,每个系列提供不同的资源,因此为眼前的任务选择器件可能很棘手。本文着重介绍了LatticeSemiconductor推出的器件系列及相关设计工具。
LatticeSemiconductor的FPGA介绍
LatticeSemiconductor的FPGA产品范围覆盖低中端,专注于低功耗器件,应用遍及通信、计算、工业、汽车和消费类等迅速增长的市场,以此帮助客户解决从边缘到云的网络问题。
Lattice推出了四个主要的FPGA系列:
iCE(堪称世界上小的超低功耗FPGA)
CrossLink和CrossLinkPlus(针对高速视频和传感器应用进行了优化)
MachXO(针对桥接、扩展、平台管理和安全应用进行了优化)
ECP(针对连接和加速应用的通用器件)
此外,Lattice还推出了诸多设计和验证工具套件,包括LatticeDiamond软件(用于CrossLink/CrossLinkPlus、MachXO和ECP器件)、LatticeRadiant软件(用于iCEFPGA和未来架构)、LatticeMico(用于创建基于软微处理器设计的图形工具),以及LatticesensAI堆栈和神经网络编译器(用于人工智能(AI)和机器学习(ML)设计)。
传统:ECPFPGA
许多设计人员都认为Lattice的ECP器件是“传统”FPGA器件。这类器件采用10mmx10mm封装,引脚间距0.5mm,多可包含85,000(k)个四输入查找表(LUT)。静态和动态功耗较低,协议无关单通道SERDES功能器件的功耗低于0.25W,四通道SERDES功能器件则低于0.5W。
除了SRAM块、数字信号处理(DSP)块、锁相环(PLL)和时钟管理器外,ECPFPGA还具有可编程I/O,支持LVCMOS33/25/18/15/12、XGMII、LVTTL、LVDS、Bus-LVDS、7:1LVDS、LVPECL和MIPID-PHY输入/输出接口。
ECPFPGA的配置单元基于SRAM,因此与所有其他基于SRAM的FPGA一样,仅当系统通电时,才能由外部(例如闪存器件、微处理器、微控制器)加载配置。
ECP器件的一个典型示例是LFE5UM5G-25F-8BG381C,支持ECP55GSERDES的FPGA,采用10mmx10mm封装。为了使设计人员能更好地研究和试验ECP5FPGA系列的特性,Lattice还推出了相应的ECP5-5G开发板LFE5UM5G-45F-VERSA-EVN(图2)。
图2:ECP5评估板可作为原型开发板,具有丰富的逻辑块、I/O、5GSERDES和扩展排针。(图片来源:LatticeSemiconductor)
体积小巧,但功能强大:Lattice的iCEFPGA
iCE器件是市面上现有体积较为小的FPGA,该系列中较为小的器件采用1.4mmx1.4mm封装,提供18个I/O。iCEFPGA采用灵活的逻辑架构,较多可包含5k个四输入LUT,具有高达128Kb的Lattice嵌入式sysMEMBRAM、1Mb的单端口RAM(SPRAM)、高性能DSP块,以及可定制I/O。
iCEFPGA器件体积小、功耗低(对于多数应用,休眠电流低至75µA,有功电流范围从1至10mA),但功能却很强大。例如,这类器件可实现人工神经网络(ANN),可用于模式匹配以实现边缘应用中“始终开启”的人工智能。
iCEFPGA的配置数据存储在非易失性存储器(NVM)中,因而属于一次性可编程(OTP)器件。尽管如此,器件仍包含基于SRAM的配置单元。开发过程中,可将设计直接由外部加载至基于SRAM的配置单元来进行测试。设计提交后,即可将其加载至NVM中。器件上电后,存储于NVM的配置将以并行传输方式自动复制到基于SRAM的配置单元中。
iCE器件的一个示例是ICE40UL1K-SWG16ITR1KiCE40UltraLite,它是世界上外形尺寸较小的FPGA(截至本文发布时),采用1.4mmx1.4mm封装,静态功率为42µW。代表性开发板包括HM01B0-UPD-EVNHimaxHM01B0UPduino扩展板和sensAI模块化演示板(图3)。
图3:HimaxHM01B0UPduino扩展板是一款完整的开发套件,适用于通过以视觉和声音作为传感器输入来实现人工智能(AI)。(图片来源:LatticeSemiconductor)
该套件基于UPduino2.0开发板,这款Arduino外形尺寸的快速原型开发板,具有iCE40UltraPlusFPGA的性能和I/O功能。此外,套件还包括HimaxHM01B0低功耗图像传感器模块和两个I2S麦克风。
专用:CrossLink和CrossLinkPlusFPGA
CrossLink和CrossLinkPlus系列都是专用FPGA,除了可编程逻辑和强大的I/O功能外,器件规格经过强化,因而可广泛适用于工业和汽车应用。其中包括移动行业处理器接口(MIPI)D-PHY高速数据通信物理层标准、相机串行接口2(CSI2)和显示串行接口2(DSI2)内核;封装分别采用6mmx6mm(CrossLink)和3.5mmx3.5mm(CrossLinkPlus)。
与iCEFPGA一样,CrossLink器件的配置数据存储在OTPNVM中,也包含基于SRAM的配置单元,开发过程中可直接加载进行测试。设计提交后,则将其加载至NVM中。器件上电后,数据以并行传输方式自动复制到基于SRAM的配置单元中。相比之下,CrossLinkPlus器件的配置单元基于闪存,因此可根据需要对这些器件进行重新编程;此外,器件还具有不足10ms的即时启动功能。
CrossLink器件的一个示例是LIF-MD6000-6JMG80I,具有5,936个逻辑单元和37个I/O,总RAM位数为184,320。在着手开始嵌入式视觉设计时,设计人员可借助LF-EVDK1-EVN嵌入式视觉开发套件,将基于CrossLink的MIPI输入与ECP5FPGA处理整合,用以进行嵌入式视觉设计的原型开发(图4)。
图4:Lattice的LF-EVDK1-EVN嵌入式视觉开发套件为嵌入式系统设计人员提供了软件和硬件原型开发环境,套件功能包括输入和输出板之间的组合和匹配,以连接各类图像传感器和显示屏。(图片来源:LatticeSemiconductor)
具有I/O和电源管理功能:MachXOFPGA
MachXOFPGA具有数百个I/O,对需要GPIO扩展、接口桥接和上电管理功能的各种应用而言,较好选择。系列中的较新产品旨在符合NIST标准,另增安全功能以确保系统硬件和固件的安全性。
MachXOFPGA具有一组功能强大的GPIO,包括“热插拔”等功能,因而无论电源轨状态如何,都可向I/O施加电压。此外,虽然多数FPGA输入默认为上拉状态,但MachXO输入默认为下拉状态,因此非常适合控制功能应用。MachXOFPGA具有不足10ms的即时启动功能,可作为“先启后停”控制器件的理想解决方案,在系统上电和断电期间用于对其他元器件进行管理和排序。
MachXO器件的配置数据存储在闪存中。这类器件也包含基于SRAM的配置单元。器件上电后,存储于闪存的配置数据将以并行传输方式自动复制到基于SRAM的配置单元中。此外,器件运行时,可将新配置加载至闪存中,之后可选择在适当的时候将新配置复制到SRAM单元中。
MachXO器件的一个典型示例是LCMXO3LF-9400C-6BG256C,具有9,400个逻辑单元和206个I/O,总RAM位数为442,368。代表性开发板是LCMXO3LF-6900C-S-EVNMachXO3入门套件(MachX03L版本)。
图5:MachXO3L入门套件是一款基础分线板,在基于MachXO3L的设计中可用于简单的评估和开发。(图片来源:LatticeSemiconductor)
套件板具有SPI闪存,可用于评估外部启动或双重启动功能。评估MIPIDSI和CSI2I/O时,建议使用LCMXO3L-DSI-EVNMachXO3LDSI分线板;评估高速差分I/O时,建议使用LCMXO3L-SMA-EVNMachXO3LSMA分线板。
LatticeSemiconductor的FPGA设计和开发
伴随FPGA发展的较常见技术之一是语言驱动设计(LDD)。这涉及使用Verilog或VHDL等硬件描述语言(HDL),在抽象级别(即寄存器传送级(RTL))上捕获设计意图。通过逻辑仿真进行验证之后,该表达式将连同目标FPGA类型、引脚分配和时序约束(例如较大输入到输出延迟)等其他信息一并传输至合成引擎。合成引擎输出的配置文件可以直接加载至FPGA中,或者对基于SRAM的FPGA而言,可加载至外部存储器件中(图6)。
图6:通过逻辑仿真进行验证之后,RTL设计描述将与FPGA类型、引脚分配和时序约束等其他设计细节一并传输至合成引擎。合成引擎输出的配置文件,可以直接加载至FPGA中(对基于NVM或闪存的器件),或加载至外部存储器件中(对基于SRAM的器件)。(图片来源:CliveMaxMaxfield)
LatticeDiamond属于这类工具,可提供完整的基于GUI的FPGA设计和验证环境,适用于CrossLink、MachXO和ECP器件。
与LatticeDiamond一样,LatticeRadiant也可提供完整的基于GUI的FPGA设计和验证环境,但后者主要针对iCEFPGA和未来架构。
LatticeRadiant功能众多:
行业标准IEEE1735知识产权(IP)加密和Synopsys设计约束(SDC),实现互操作性
集成的工具组环境,简化设计导航和调试功能
全新的ProcessToolbar支持简单的“一键式”设计执行功能
完整的物理到逻辑闭环设计流程,实现交叉探索
IP数据打包功能,使开发人员和第三方IP提供商能够以适合分发的形式打包经加密的IP数据包
LatticeMico系统开发工具
Lattice推出了两款软处理器内核——LatticeMico8和LatticeMico32,两者均可应用于FPGA的可编程结构。
LatticeMico8是一款8位微控制器,针对MachXO2可编程逻辑器件(PLD)系列进行了优化和全面测试。此外,该器件也可用于其他FPGA系列的参考设计。微控制器内核结合了完整的18位宽指令集与32个通用寄存器,在保留丰富功能的同时,减少消耗的器件资源——较小配置中LUT少于200个。
LatticeMico32是一款32位哈佛架构RISC微处理器。LatticeMico32结合了32位宽指令集与32个通用寄存器,因而性能和灵活性适合各种市场应用。采用RISC架构,在确保性能满足各种应用所需的同时,使内核消耗的器件资源较少。为了加速微处理器系统的开发,可将LatticeMico32与几种兼容WISHBONE控制器的可选外设元器件集成。
LatticeMico系统开发工具具有图形用户界面,使用户可对LatticeMico处理器内核和外设进行拖放式操作,将其连接至总线,并为各元器件定义各种参数,例如在处理器地址空间中的位置。系统定义完成后,该工具即可自动生成相应的RTL以进行仿真和合成。此外,该系统提供的工具使用户能够生成软件,用以在处理器内核上运行。
机器学习工具:LatticesensAI堆栈和神经网络编译器
目前,机器学习(ML)和人工智能(AI)应用广泛部署于各种嵌入式系统和整个物联网(IoT),包括工业物联网(IIoT)。
LatticesensAI堆栈包含评估、开发和部署基于FPGA的ML/AI解决方案所需的一切功能,包括模块化硬件平台、示例演示、参考设计、神经网络IP内核,软件开发工具和定制设计服务。在消费类和工业物联网应用中,开发人员可借助该堆栈实现灵活的机器学习推断引擎,加快上市时间。
Lattice卷积神经网络(CNN)加速器IP内核是用于深度神经网络(DNN)的计算引擎。该引擎针对卷积神经网络进行了优化,因此可用于分类、对象检测和跟踪等基于视觉的应用。CNNIP内核本身可执行所需的计算,因此无需额外添加处理器。
同时,借助Lattice神经网络编译器,设计人员可使用TensorFlow、Caffe和Keras等通用开发框架下创建的神经网络,并将其编译以在LatticeCNN和紧凑型CNN加速器IP内核中实施。
总结
设计解决方案常常是由处理器与FPGA的组合提供,或由FPGA单独提供,或以硬处理器内核作为部分结构的FPGA提供。作为一项技术,FPGA多年来发展迅速,如今已经能够满足灵活性、处理速度、功耗等多方面的设计需求,非常适合智能接口、机器视觉和AI等众多应用。
如上所述,LatticeSemiconductor的FPGA产品范围覆盖低中端,专注于低功耗器件,应用遍及通信、计算、工业、汽车和消费类等迅速增长的市场,以此解决从边缘到云的网络问题。此外,Lattice还推出了若干设计和验证工具套件,适用于基于语言的设计、基于图形处理器的设计以及专注于机器学习和人工智能应用的设计等各种设计流程。
精彩评论