现场可编程逻辑门阵列

编辑
本词条由“匿名用户” 建档。

FPGA(现场可编辑程序门户队列的首字母缩写)是一种数字技术集成电路(IC),其中可以加载逻辑电路。该术语可以翻译为可以在现场(即现场,客户处)编程的(逻辑)门布置。 与计算机、微控制器或控制器的编程不同,术语编程不仅指时间序列的规范,而且最重要的是指所需电路结构的定义。这是使用硬件描述语言制定的,并由生成器软件翻译成配置文件,它指定了FPGA中的物理元素如何互连。因此,人们还谈到了FPGA的配置...

现场可编程逻辑门阵列

编辑

FPGA(现场可编辑程序门户队列的首字母缩写)是一种数字技术集成电路 (IC),其中可以加载逻辑电路。 该术语可以翻译为可以在现场(即现场,客户处)编程的(逻辑)门布置。

计算机微控制器或控制器的编程不同,术语编程不仅指时间序列的规范,而且最重要的是指所需电路结构的定义。 这是使用硬件描述语言制定的,并由生成器软件翻译成配置文件,它指定了 FPGA 中的物理元素如何互连。 因此,人们还谈到了 FPGA 的配置。 没有这个,块就没有功能

FPGA 是 PLD 的进一步发展,用于数字电子的许多领域。

申请

编辑

通过配置内部元件,可以在 FPGA 中实现各种电路和功能。 这些范围从低复杂度的电路,如用于数字组件的简单同步计数器或接口,直至高度复杂的电路,例如存储控制器和完整的微处理器

FPGA 用于数字技术的所有领域,尤其是在快速信号处理和灵活更改电路非常重要的领域,例如能够在不直接更改硬件的情况下对已实现的功能进行后续改进。 一个很大的应用领域是在 ASIC 开发中创建原型以进行预先测试,以及维护领域,其目的是为不再可用的旧数字组件或微控制器提供电子产品

随着 FPGA 的引入,紧凑的、用户特定的小批量电路成为可能。 今天,它们允许以低廉且灵活的方式制造移动电话基站复杂系统,作为半导体制造商更昂贵的合同制造的替代方案。

除了 FPGA 之外,还有 FPAA(现场可编程模拟阵列),它不仅包含数字功能块,而且主要包含可由用户编程和互连的模拟功能块。 这些主要是过滤器和 HF 组件。

建筑与结构

编辑

FPGA 的基本基本结构是一组基本块,每个块都有一个简单的可编程查找表 (LUT) 和一个 1 位寄存器(触发器)。 根据可用输入的数量,LUT 可以实现任何 n 位二进制函数。 通过将定义真值表存储在 LUT 的 SRAM 单元中来编程所需函数,并通过读出由输入确定的存储器地址来计算函数。 具有 4 个二进制输入的 LUT 结构在很长一段时间内都很常见。 最近的 FPGA 正在转向具有多达 6 个输入的 LUT,以减少 LUT 到 LUT 连接的开销,以实现具有更多输入的功能。

除了LUT,元器件的互连也可以在FPGA上自由配置。 基本块中的多路复用器结构通常能够实现非常快速的本地信号路径,以包括或绕过触发器、反馈其输出、连接相邻块等。 对于进一步的连接,在基本块之间有一个巨大的总线结构网格,可以连接输入和输出。 网格交叉点中的更多可编程开关组件允许信号分布在整个芯片上。

其他组件

FPGA 的其他常见元素是:

  • 输入/输出块(IO 块或 IOB)用于与外界通信。 它们用于将 FPGA 的外部连接连接到内部开关矩阵。 它们可以适应相应的应用,例如输出电压可适配各自标准(TTL/CMOS等)。 带有集成串行器的特殊 IOB 块允许连接到高速总线。
  • 一个或多个时钟发生器根据输入端可用的时钟生成应用程序所需的所有内部时钟。 这些可以相对于输入时钟进行相位偏移,并且具有从相应输入时钟导出的频率。 时钟放大器和相应的互连确保使用的每个时钟在芯片的任何地方都同步可用。 现代 FPGA 通常具有一个或多个可以合理断开的锁相环 (PLL)可以生成 ene bar 细分/乘法。 一些 FPGA 制造商更喜欢延迟锁定环 (DLL) 和数字频率合成器 (DFS) 而不是 PLL,它们具有相同的目的。
  • 复杂的 FPGA 中包含其他硬连线功能,例如:内存块(所谓的块RAM),有多种用途。
  • 对于数字信号处理任务,除了正常的逻辑单元之外,许多 FPGA 还配备了 DSP 模块。 除了两个数字的快速乘法之外,它们还允许用作乘法累加块,这对于数字滤波器和其他卷积运算尤其需要。
  • 用于片上系统 (SoC) 领域的 FPGA 具有许多最复杂的硬核,以适应完整的类似计算机的系统。 硬核是大多数复杂功能块的固定且不可更改的电路,例如微控制器或以太网接口。 如果使用逻辑块实现相同的功能,复杂的硬核占用的芯片面积要小得多,而且通常比 FPGA 的可自由配置逻辑快三到四倍。 但是这些电路部分不是那么灵活。

Xilinx 等厂商现在也提供基于 SRAM 的 FPGA,其芯片封装中已经内置了用于配置的闪存,不再需要外部闪存。 这种在一个外壳中具有多个芯片的集成电路也称为多管芯。 FPGA 的加载和启动时间与外部存储器大致相同,但已由制造商专门优化。 另一个优点是通过读取外部存储器防止非法复制。 目前和可预见的未来,在技术上不可能直接用闪存或 EEPROM 单元替换 FPGA 中基于 SRAM 的开关单元,就像更简单的 CPLD 的情况一样。

与 CPLD 的区别

FPGA 通常被等同于或与数字和可重新配置的 CPLD 组件(复杂可编程逻辑设备)进行比较。 FPGA和CPLD之间的主要区别是:

  • CPLD仍然属于PAL/PLA/PLD/GAL的组,但在IC内部结构比PAL复杂和加仑。 另一方面,较新的 FPGA 属于不同的技术。 与 FPGA 相比,CPLD 的结构要简单得多。 它们没有逻辑块和触发器的精细网格阵列(场),只有一个可配置的开关矩阵,可以将不同的输入信号连接到不同的输出信号。 这些信号可以使用诸如 AND/OR 之类的逻辑运算来链接。 因此,CPLD 具有独立于各自设计的恒定信号吞吐时间。 还可以使用适当的设计方法来为 FPGA 实现定义的xxx吞吐量时间(时序约束)。
  • CPLD 的触发器相对较少。 最重要的是,较长的移位寄存器、计数器、状态存储器和需要许多触发器的类似电路只能在 CPLD 中低效地实现。
  • CPLD 通常有大量的 IO 引脚,在许多应用中只部分使用,因为每个 IO 引脚都有一个触发器。 在仅使用相对简单的数字电路(所谓的胶合逻辑)且对 IO 引脚有很高要求的应用中,CPLD 通常是更好的选择。
  • 由于结构简单,CPLD 在技术上可以与开关矩阵中的闪存单元一起工作。 这意味着 CPLD 在打开(上电)后立即准备好运行,而具有基于 SRAM 的单元的可重配置 FPGA 首先必须经过加载周期才能进行配置。 然而,一些制造商也长期以来一直在提供采用闪存技术的 FPGA。 自 20 世纪 90 年代后期以来,CPLD 一直在向 FPGA SRAM 技术靠拢。 今天,大多数 CPLD 内部都是基于 SRAM 的。 在某些 CPLD 系列中,逻辑基本元件现在由 FPGA 典型的 LUT4 触发器组(Altera MAX II 系列)组成。
  • CPLD 的功耗也低得多,因为它们的设计更简单,尺寸更小。

配置

逻辑元件的编程可以根据不同的 FPGA 以不同的方式解决。 可以在允许对 FPGA 进行多次编程的方法和只允许进行一次编程的方法之间进行区分。 随着多重可编程 FPGA wird 配置存储在存储单元中(例如 SRAM、EPROM、EEPROM、闪存)。 使用一次性可编程 FPGA,连接路径的物理属性会xxx改变(反熔丝技术)。 该技术针对现场的外部干扰提供了更高的安全性。

基于 SRAM 的 FPGA 中的 LUT 和连接结构的配置通常在每次使用前完成一次,这意味着 FPGA 被分配了一个特定的功能。 这是必要的,因为当工作电压关闭时,FPGA 会再次丢失其配置。 因此,在使用中,FPGA 通常带有一种 EPROM,用于存储配置,其内容也可以更新。 FPGA 可以从该非易失性存储器加载自身。 或者,配置也可以由微控制器或将配置写入 FPGA 的另一个 FPGA 主动完成。

通常,FPGA 然后会保持其功能,直到它被关闭。 然而,越来越多地支持在操作期间对各个 FPGA 区域进行逐个区域的重新编程,以便更有效地利用 FPGA 中的空间并使硬接线功能更加灵活。

配置 FPGA 的过程通常也称为编程,但这需要在概念上与设计重叠。

现场可编程逻辑门阵列

设计步骤和工具

编辑

FPGA电路的开发通常被称为编程。 然而,在这种情况下,该术语的理解不同于为处理器创建软件所了解的术语。 作为开发过程的一部分,首先进行电路设计,然后使用仿真工具检查生成的硬件描述,然后是实现(布局和布线),必要时还进行基于运行时间的仿真。 只有这样,实现的电路才能在真正的 FPGA 上进行测试。

电路设计

FPGA 的配置可以使用原理图以图形方式创建,也可以使用硬件描述语言以文本方式创建。 这些主要是 VHDL 或 Verilog,它们以结构和过程的形式描述电路的整个功能。 可以使用以类似于电路图编辑器的方式工作的文本或图形工具来完成结构及其互连。 一个典型的工具是 HDL Designer。 此外,几乎所有制造商都在其工具链中提供图形设计工具。

FPGA 中所需的时序控制可以用有穷自动机来表示。 描述性代码可以作为 HDL 输入,也可以使用图形设计工具在中间步骤中自动生成。

此外,可以使用独立于制造商的图形编程系统自动创建 FPGA 的电路模块和序列。

近年来,一些项目尝试使用 C 编程语言来描述 ASIC、FPGA 和 CPLD 的硬件实现。 当前的方法直接建立在广泛使用的标准语言 ANSI C 或 C++ 或 Python(带有 MyHDL)之上。 SystemC 没有综合工具,具体 FPGA 开发的实际用途在于抽象行为建模和显着加速的系统仿真,这就是为什么它已成为那里广泛的行业标准。

对于嵌入式系统在 FPGA 中的集成,有一些工具可以提供功能块级别的结构,例如 Xilinx EDK(嵌入式开发套件)。 制造商提供诸如 FIFO、处理器、串行接口、以太网 MAC 层、RAM 控制器、并行 IO 等功能块。 这些被称为 IP 内核的功能单元有时以源代码形式提供,或者大部分以加密网表形式提供,并且通常是可参数化的(例如,串行异步接口的波特率或并行接口的 FIFO 深度或宽度)。 这些通过总线连接到其他功能单元。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/365084/

(14)
词条目录
  1. 现场可编程逻辑门阵列
  2. 申请
  3. 建筑与结构
  4. 其他组件
  5. 与 CPLD 的区别
  6. 配置
  7. 设计步骤和工具
  8. 电路设计

轻触这里

关闭目录

目录