FPGA 基础知识 – 第 2 部分:Lattice Semiconductor 的 FPGA 使用入门

winniewei 提交于 周四, 04/30/2020
FPGA 基础知识 – 第 2 部分:Lattice Semiconductor 的 FPGA 使用入门

作者:Clive "Max" Maxfield

投稿人:Digi-Key 北美编辑

编者按:最佳处理解决方案常常是由 RISC、CISC、图形处理器与 FPGA 的组合提供,或由 FPGA 单独提供,或以硬处理器内核作为部分结构的 FPGA 提供。然而,许多设计人员不熟悉 FPGA 的功能、其发展脉络以及如何使用 FPGA。本系列文章由多个部分组成,第 1 部分详细介绍了 FPGA 并说明了为何需要这类器件。作为第 2 部分,本文着重介绍了 FPGA 供应商 Lattice Semiconductor 推出的 FPGA 器件系列及相关设计工具。第 3、4 和 5 部分则相应介绍 AlteraMicrochipXilinx 的 FPGA 产品。

如第 1 部分所述,现场可编程门阵列 (FPGA) 具有诸多特性,无论是单独使用,抑或采用多样化架构,皆可作为宝贵的计算资产;但是许多设计人员并不熟悉 FPGA,亦不清楚如何将这类器件整合到设计中。

解决办法之一是深入研究主要供应商提供的 FPGA 架构及相关工具。本文则从 Lattice Semiconductor 产品系列开始着手。

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)。(图片来源:Max Maxfield)

图 1:最简单的 FPGA 仅包含可编程结构和可配置通用 IO (GPIO) (a);不同架构是在此基本结构上增加其他元件而形成:SRAM 块、PLL 和时钟管理器 (b),DSP 块和 SERDES 接口 (c),以及硬处理器内核和外设 (d)。(图片来源:Max Maxfield)

外设接口功能(如 CAN、I2C、SPI、UART 和 USB)可以实现为可编程结构中的软内核,但许多 FPGA 将其作为硬内核在硅片中实现。同样,微处理器也可以实现为可编程结构中的软内核,或作为硬内核在硅片中实现(图 1d)。不同 FPGA 针对不同的市场和应用提供不同的功能、特性和容量集合。

FPGA 供应商有很多,包括 Altera(被 Intel 收购)、Atmel(被 Microchip Technology 收购)、Lattice Semiconductor、Microsemi(也被 Microchip Technology 收购)和 Xilinx。

所有这些供应商都提供多个 FPGA 系列;有的提供片上系统 (SoC) FPGA(包含硬处理器内核),有的则针对航天等高辐射环境提供耐辐射器件。由于产品系列众多,每个系列提供不同的资源,因此为眼前的任务选择最佳器件可能很棘手。本文着重介绍了 Lattice Semiconductor 推出的器件系列及相关设计工具。

Lattice Semiconductor 的 FPGA 介绍

Lattice Semiconductor 的 FPGA 产品范围覆盖低中端,专注于低功耗器件,应用遍及通信、计算、工业、汽车和消费类等迅速增长的市场,以此帮助客户解决从边缘到云的网络问题。

Lattice 推出了四个主要的 FPGA 系列:

  • iCE(堪称世界上最小的超低功耗 FPGA)
  • CrossLink 和 CrossLinkPlus(针对高速视频和传感器应用进行了优化)
  • MachXO(针对桥接、扩展、平台管理和安全应用进行了优化)
  • ECP(针对连接和加速应用的通用器件)

此外,Lattice 还推出了诸多设计和验证工具套件,包括 Lattice Diamond 软件(用于 CrossLink/CrossLinkPlus、MachXO 和 ECP 器件)、Lattice Radiant 软件(用于 iCE FPGA 和未来架构)、LatticeMico(用于创建基于软微处理器设计的图形工具),以及 Lattice sensAI 堆栈神经网络编译器(用于人工智能 (AI) 和机器学习 (ML) 设计)。

传统:ECP FPGA

许多设计人员都认为 Lattice 的 ECP 器件是“传统”FPGA 器件。这类器件采用 10 mm x 10 mm 封装,引脚间距 0.5 mm,最多可包含 85,000 (k) 个四输入查找表 (LUT)。静态和动态功耗较低,协议无关单通道 SERDES 功能器件的功耗低于 0.25 W,四通道 SERDES 功能器件则低于 0.5 W。

除了 SRAM 块、数字信号处理 (DSP) 块、锁相环 (PLL) 和时钟管理器外,ECP FPGA 还具有可编程 I/O,支持 LVCMOS 33/25/18/15/12、XGMII、LVTTL、LVDS、Bus-LVDS、7:1 LVDS、LVPECL 和 MIPI D-PHY 输入/输出接口。

ECP FPGA 的配置单元基于 SRAM,因此与所有其他基于 SRAM 的 FPGA 一样,仅当系统通电时,才能由外部(例如闪存器件、微处理器、微控制器)加载配置。

ECP 器件的一个典型示例是 LFE5UM5G-25F-8BG381C,支持 ECP5 5G SERDES 的 FPGA,采用 10 mm x 10 mm 封装。为了使设计人员能更好地研究和试验 ECP5 FPGA 系列的特性,Lattice 还推出了相应的 ECP5-5G 开发板 LFE5UM5G-45F-VERSA-EVN(图 2)。

图 2:ECP5 评估板可作为原型开发板,具有丰富的逻辑块、I/O、5G SERDES 和扩展排针。(图片来源:Lattice Semiconductor)

图 2:ECP5 评估板可作为原型开发板,具有丰富的逻辑块、I/O、5G SERDES 和扩展排针。(图片来源:Lattice Semiconductor)

体积小巧,但功能强大:Lattice 的 iCE FPGA

iCE 器件是市面上现有体积最小的 FPGA,该系列中最小的器件采用 1.4 mm x 1.4 mm 封装,提供 18 个 I/O。iCE FPGA 采用灵活的逻辑架构,最多可包含 5k 个四输入 LUT,具有高达 128 Kb 的 Lattice 嵌入式 sysMEM BRAM、1 Mb 的单端口 RAM (SPRAM)、高性能 DSP 块,以及可定制 I/O。

iCE FPGA 器件体积小、功耗低(对于多数应用,休眠电流低至 75 µA,有功电流范围从 1 至 10 mA),但功能却很强大。例如,这类器件可实现人工神经网络 (ANN),可用于模式匹配以实现边缘应用中“始终开启”的人工智能。

iCE FPGA 的配置数据存储在非易失性存储器 (NVM) 中,因而属于一次性可编程 (OTP) 器件。尽管如此,器件仍包含基于 SRAM 的配置单元。开发过程中,可将设计直接由外部加载至基于 SRAM 的配置单元来进行测试。设计提交后,即可将其加载至 NVM 中。器件上电后,存储于 NVM 的配置将以并行传输方式自动复制到基于 SRAM 的配置单元中。

iCE 器件的一个示例是 ICE40UL1K-SWG16ITR1K iCE40 UltraLite,它是世界上外形尺寸最小的 FPGA(截至本文发布时),采用 1.4 mm x 1.4 mm 封装,静态功率为 42 µW。代表性开发板包括 HM01B0-UPD-EVN Himax HM01B0 UPduino 扩展板和 sensAI 模块化演示板(图 3)。

图 3:Himax HM01B0 UPduino 扩展板是一款完整的开发套件,适用于通过以视觉和声音作为传感器输入来实现人工智能 (AI)。(图片来源:Lattice Semiconductor)

图 3:Himax HM01B0 UPduino 扩展板是一款完整的开发套件,适用于通过以视觉和声音作为传感器输入来实现人工智能 (AI)。(图片来源:Lattice Semiconductor)

该套件基于 UPduino 2.0 开发板,这款 Arduino 外形尺寸的快速原型开发板,具有 iCE40 UltraPlus FPGA 的性能和 I/O 功能。此外,套件还包括 Himax HM01B0 低功耗图像传感器模块和两个 I2S 麦克风。

专用:CrossLink 和 CrossLinkPlus FPGA

CrossLink 和 CrossLinkPlus 系列都是专用 FPGA,除了可编程逻辑和强大的 I/O 功能外,器件规格经过强化,因而可广泛适用于工业和汽车应用。其中包括移动行业处理器接口 (MIPI) D-PHY 高速数据通信物理层标准、相机串行接口 2 (CSI2) 和显示串行接口 2 (DSI2) 内核;封装分别采用 6 mm x 6 mm (CrossLink) 和 3.5 mm x 3.5 mm (CrossLinkPlus)。

与 iCE FPGA 一样,CrossLink 器件的配置数据存储在 OTP NVM 中,也包含基于 SRAM 的配置单元,开发过程中可直接加载进行测试。设计提交后,则将其加载至 NVM 中。器件上电后,数据以并行传输方式自动复制到基于 SRAM 的配置单元中。相比之下,CrossLinkPlus 器件的配置单元基于闪存,因此可根据需要对这些器件进行重新编程;此外,器件还具有不足 10 ms 的即时启动功能。

CrossLink 器件的一个示例是 LIF-MD6000-6JMG80I,具有 5,936 个逻辑单元和 37 个 I/O,总 RAM 位数为 184,320。在着手开始嵌入式视觉设计时,设计人员可借助 LF-EVDK1-EVN 嵌入式视觉开发套件,将基于 CrossLink 的 MIPI 输入与 ECP5 FPGA 处理整合,用以进行嵌入式视觉设计的原型开发(图 4)。

图 4:Lattice 的 LF-EVDK1-EVN 嵌入式视觉开发套件为嵌入式系统设计人员提供了软件和硬件原型开发环境,套件功能包括输入和输出板之间的组合和匹配,以连接各类图像传感器和显示屏。(图片来源:Lattice Semiconductor)

图 4:Lattice 的 LF-EVDK1-EVN 嵌入式视觉开发套件为嵌入式系统设计人员提供了软件和硬件原型开发环境,套件功能包括输入和输出板之间的组合和匹配,以连接各类图像传感器和显示屏。(图片来源:Lattice Semiconductor)

具有 I/O 和电源管理功能:MachXO FPGA

MachXO FPGA 具有数百个 I/O,对需要 GPIO 扩展、接口桥接和上电管理功能的各种应用而言,可谓绝佳选择。系列中的最新产品旨在符合 NIST 标准,另增安全功能以确保系统硬件和固件的安全性。

MachXO FPGA 具有一组功能强大的 GPIO,包括“热插拔”等功能,因而无论电源轨状态如何,都可向 I/O 施加电压。此外,虽然多数 FPGA 输入默认为上拉状态,但 MachXO 输入默认为下拉状态,因此非常适合控制功能应用。MachXO FPGA 具有不足 10 ms 的即时启动功能,可作为“先启后停”控制器件的理想解决方案,在系统上电和断电期间用于对其他元器件进行管理和排序。

MachXO 器件的配置数据存储在闪存中。这类器件也包含基于 SRAM 的配置单元。器件上电后,存储于闪存的配置数据将以并行传输方式自动复制到基于 SRAM 的配置单元中。此外,器件运行时,可将新配置加载至闪存中,之后可选择在适当的时候将新配置复制到 SRAM 单元中。

MachXO 器件的一个典型示例是 LCMXO3LF-9400C-6BG256C,具有 9,400 个逻辑单元和 206 个 I/O,总 RAM 位数为 442,368。代表性开发板是 LCMXO3LF-6900C-S-EVN MachXO3 入门套件(MachX03L 版本)。

图 5:MachXO3L 入门套件是一款基础分线板,在基于 MachXO3L 的设计中可用于简单的评估和开发。(图片来源:Lattice Semiconductor)

图 5:MachXO3L 入门套件是一款基础分线板,在基于 MachXO3L 的设计中可用于简单的评估和开发。(图片来源:Lattice Semiconductor)

套件板具有 SPI 闪存,可用于评估外部启动或双重启动功能。评估 MIPI DSI 和 CSI2 I/O 时,建议使用 LCMXO3L-DSI-EVN MachXO3L DSI 分线板;评估高速差分 I/O 时,建议使用 LCMXO3L-SMA-EVN MachXO3L SMA 分线板。

Lattice Semiconductor 的 FPGA 设计和开发

伴随 FPGA 发展的最常见技术之一是语言驱动设计 (LDD)。这涉及使用 Verilog 或 VHDL 等硬件描述语言 (HDL),在抽象级别(即寄存器传送级 (RTL))上捕获设计意图。通过逻辑仿真进行验证之后,该表达式将连同目标 FPGA 类型、引脚分配和时序约束(例如最大输入到输出延迟)等其他信息一并传输至合成引擎。合成引擎输出的配置文件可以直接加载至 FPGA 中,或者对基于 SRAM 的 FPGA 而言,可加载至外部存储器件中(图 6)。

图 6:通过逻辑仿真进行验证之后,RTL 设计描述将与 FPGA 类型、引脚分配和时序约束等其他设计细节一并传输至合成引擎。合成引擎输出的配置文件,可以直接加载至 FPGA 中(对基于 NVM 或闪存的器件),或加载至外部存储器件中(对基于 SRAM 的器件)。(图片来源:Max Maxfield)

图 6:通过逻辑仿真进行验证之后,RTL 设计描述将与 FPGA 类型、引脚分配和时序约束等其他设计细节一并传输至合成引擎。合成引擎输出的配置文件,可以直接加载至 FPGA 中(对基于 NVM 或闪存的器件),或加载至外部存储器件中(对基于 SRAM 的器件)。(图片来源:Max Maxfield)

Lattice Diamond 属于这类工具,可提供完整的基于 GUI 的 FPGA 设计和验证环境,适用于 CrossLink、MachXO 和 ECP 器件。

与 Lattice Diamond 一样,Lattice Radiant 也可提供完整的基于 GUI 的 FPGA 设计和验证环境,但后者主要针对 iCE FPGA 和未来架构。

Lattice Radiant 功能众多:

  • 行业标准 IEEE 1735 知识产权 (IP) 加密和 Synopsys 设计约束 (SDC),实现最佳互操作性
  • 集成的工具组环境,简化设计导航和调试功能
  • 全新的 Process Toolbar 支持简单的“一键式”设计执行功能
  • 完整的物理到逻辑闭环设计流程,实现交叉探索
  • 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 以进行仿真和合成。此外,该系统提供的工具使用户能够生成软件,用以在处理器内核上运行。

机器学习工具:Lattice sensAI 堆栈和神经网络编译器

目前,机器学习 (ML) 和人工智能 (AI) 应用广泛部署于各种嵌入式系统和整个物联网 (IoT),包括工业物联网 (IIoT)。

Lattice sensAI 堆栈包含评估、开发和部署基于 FPGA 的 ML/AI 解决方案所需的一切功能,包括模块化硬件平台、示例演示、参考设计、神经网络 IP 内核,软件开发工具和定制设计服务。在消费类和工业物联网应用中,开发人员可借助该堆栈实现灵活的机器学习推断引擎,加快上市时间。

Lattice 卷积神经网络 (CNN) 加速器 IP 内核是用于深度神经网络 (DNN) 的计算引擎。该引擎针对卷积神经网络进行了优化,因此可用于分类、对象检测和跟踪等基于视觉的应用。CNN IP 内核本身可执行所需的计算,因此无需额外添加处理器。

同时,借助 Lattice 神经网络编译器,设计人员可使用 TensorFlow、Caffe 和 Keras 等通用开发框架下创建的神经网络,并将其编译以在 Lattice CNN 和紧凑型 CNN 加速器 IP 内核中实施。

总结

最佳设计解决方案常常是由处理器与 FPGA 的组合提供,或由 FPGA 单独提供,或以硬处理器内核作为部分结构的 FPGA 提供。作为一项技术,FPGA 多年来发展迅速,如今已经能够满足灵活性、处理速度、功耗等多方面的设计需求,非常适合智能接口、机器视觉和 AI 等众多应用。

如上所述,Lattice Semiconductor 的 FPGA 产品范围覆盖低中端,专注于低功耗器件,应用遍及通信、计算、工业、汽车和消费类等迅速增长的市场,以此解决从边缘到云的网络问题。此外,Lattice 还推出了若干设计和验证工具套件,适用于基于语言的设计、基于图形处理器的设计以及专注于机器学习和人工智能应用的设计等各种设计流程。

来源:Digi-Key

相关文章

Digi-Key