本文以汽车电子的可编程逻辑基础知识、FPGA 架构、FPGA 实现技术、处理器内核、SoPC 优势和处理器灵活性为例进行了简要讨论。
大型可编程逻辑器件,如现场可编程门阵列 (FPGA) 和复杂可编程逻辑器件 (CPLD),自从几十年前作为胶合逻辑的替代品和 ASIC 原型器件首次推出以来,其功能迅速发展。嵌入式加速器和微处理器使它们成为许多曾经被认为是 DSP 和 ASSP 专属领域的应用的有力候选者。一旦设计人员了解了 FPGA 和 CPLD 架构的基础知识,他们就可以提高许多设计的性能、效率和设计周期。
可编程逻辑在其在 FPGA 和 CPLD 中达到最先进的形式之前有很长的发展历史。这两种技术在架构上的差异是由名称本身来表示的。FPGA 的结构非常类似于门阵列 ASIC,事实上,最初用于 ASIC 原型设计。CPLD 是一个可编程逻辑元件网络,这些元件连接起来可以创建一个更大的系统。
可编程逻辑基础
通过回顾可编程阵列逻辑 (PAL) 的特性,可以快速了解 FPGA 和 CPLD 的基本配置思想,该特性始于一个用于对输入进行与运算的广泛的可编程与平面。OR 平面是固定的,这限制了可以进行 OR 运算的项数。添加了基本逻辑设备,如多路复用器、异或和锁存器,还包括时钟元件,如触发器。
电路元件的这种组合使设计者能够实现大量逻辑功能,包括状态机所需的时钟时序逻辑。PAL 是速度非常快的设备,它取代了上一代设计中的大部分标准逻辑。图 1 显示了一个基本的 PAL,其中可编程元件(显示为熔丝)将真输入和互补输入都连接到与门。AND 门,也称为乘积项,它们被 OR 运算在一起以形成乘积和逻辑阵列。
简化 PAL
CPLD 和 FPGA 在 PAL 和 ASIC 门阵列之间创建了一个愉快且可扩展的媒介。CPLD 与 PAL 一样快,但更复杂。FPGA 接近门阵列的复杂性并且是可编程的。
CPLD 架构
简化的 CPLD 架构
FPGA架构
FPGA 架构与 ASIC 相似,但与 CPLD 完全不同。通用 FPGA 架构由一组可配置逻辑块 (CLB)、I/O 焊盘和可编程互连组成,如图 3 所示。添加时钟电路以将时钟信号驱动到每个逻辑块。算术逻辑单元、存储器和解码器也是典型的元件。
基本FPGA架构
FPGA 逻辑包含在 CLB 中,其中包含用于创建组合逻辑功能的 RAM,也称为查找表 (LUT)。它还包含用于时钟存储元件的触发器,以及用于在块内和外部资源之间路由逻辑的多路复用器。多路复用器还用于极性选择和复位和清除输入选择。
FPGA 实现技术
FPGA 传统上是根据用于存储 FPGA 逻辑配置的存储器技术来描述的。目前使用的有四种,每种都有其优点和缺点:基于 SRAM 的 FPGA、带有内部闪存的 SRAM、基于闪存的和反熔丝(也称为 OTP,因为它们是一次性可编程的)。
基于 SRAM 的 FPGA 将逻辑单元配置存储在组织为锁存器阵列的静态存储器中。由于 SRAM 是易失性的,因此每次系统启动时都必须对此类 FPGA 进行编程。有两种基本的编程模式:
主模式,即 FPGA 从外部源(例如外部闪存芯片)读取配置数据。
Slave 模式,FPGA 由外部主设备(例如处理器)进行配置。通常,这是通过专用配置接口或使用边界扫描 (JTAG) 接口完成的。
带有内部闪存的基于 SRAM 的 FPGA 包含内部闪存块,无需外部非易失性存储器。
真正基于闪存的 FPGA 使用闪存作为配置存储的主要资源,因此不需要外部非易失性存储器。与基于 SRAM 的 FPGA 相比,该技术的功耗更低,并且更能容忍辐射的影响。
基于反熔丝 (OTP) 的 FPGA 与前面提到的技术不同,因为它们只能编程一次。(反熔丝装置最初不传导电流,但可以烧毁到传导状态。)
处理器核心
尽管可编程器件最初是作为胶合逻辑替代品开发的,但随着门密度的增加,FPGA 和 CPLD 供应商开始添加具有专用功能的电路,以补充未分配的门和逻辑功能。结果被称为可编程芯片上的系统 (SoPC),其中由处理器等复杂设备组成的整个系统被集成到单个可编程逻辑设备中。
今天,大多数 FPGA 和 CPLD 供应商提供的产品系列提供 MCU 和其他 IP 核的功能。使用内核使系统设计人员可以访问熟悉的开发工具集、操作系统和可选择的性能以适应应用程序。
芯片优势
考虑使用包含 MCU 功能的 SoPC 有几个令人信服的理由。首先是认识到使用专用 MCU 的隐性成本。例如,如果部件没有正确的功能组合,则必须开发外部逻辑和软件来填补功能漏洞。虽然 MCU 供应商提供具有特殊功能的设备以适应特定应用,但这些芯片并未考虑可能需要(例如,在很短的时间内需要新接口或外设)的动态市场条件。
示例:汽车电子的处理器灵活性
汽车对集成 MCU 有着无限的需求。每个主要系统——发动机控制、制动、底盘和娱乐系统,仅举三个——至少有一个。传统上,需求是通过特定于应用程序的 MCU 来满足的,但随着应用程序(和 MCU 变体)数量的增加,这种策略受到质疑。汽车制造商正在寻找更灵活、更易于定制的解决方案,在某些情况下,FPGA 就是答案。