首页>>科技 >>内容

fpga工作流程,FPGA工作原理与简介

发布时间:2023-10-02 21:36:24编辑:温柔的背包来源:

很多朋友对fpga工作流程,FPGA工作原理与简介不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

fpga工作流程,FPGA工作原理与简介

工作原理及介绍

前面提到,FPGA是在PAL、GAL、EPLD、CPLD等可编程器件的基础上进一步发展起来的产品。它作为ASIC领域的半定制电路而出现,不仅解决了定制电路的缺点,而且克服了原有可编程器件门电路有限的缺点。

由于FPGA需要重复编程,其组合逻辑的基本结构不能像ASIC那样通过固定的与非门来完成,而只能采用易于重复配置的结构。查找表可以很好地满足这个要求。目前主流的FPGA均采用基于SRAM技术的查找表结构。还有一些军用和航天级FPGA采用基于Flash或熔丝和反熔丝技术的查找表结构。 FPGA的重复配置是通过烧录文件改变查找表的内容来实现的。

根据数字电路的基础知识,我们可以知道,对于n个输入的逻辑运算,无论是AND或NOT运算还是XOR运算等,最多只有2n种可能的结果。因此,如果将相应的结果预先存储在存储单元中,就相当于实现了与非门电路的功能。同样的原理也适用于FPGA。它通过编程文件配置查找表的内容,从而在相同的电路条件下实现不同的逻辑功能。

Look-Up-Table简称LUT,LUT本质上就是一个RAM。目前FPGA 中大多采用4 输入LUT,因此每个LUT 可以被视为具有4 位地址线的RAM。当用户通过原理图或HDL语言描述一个逻辑电路时,PLD/FPGA开发软件会自动计算该逻辑电路所有可能的结果,并将真值表(即结果)提前写入RAM中。这样,每输入一个信号,进行逻辑运算,就相当于输入一个地址,查表,找出该地址对应的内容,然后输出。

下面以4与门电路为例来说明LUT实现逻辑功能的原理。

例1-1:给出一个使用LUT 实现4 输入与门电路的真值表。表1-1 4输入与门真值表

如您所见,LUT 具有与逻辑电路相同的功能。事实上,LUT 的执行速度更快,规模更大。

由于基于LUT的FPGA集成度高,器件密度从几万到几千万门不等,可以完成极其复杂的时序和逻辑组合逻辑电路功能,因此适合高速、高-密度高端数字电路。逻辑电路设计领域。其主要组成部分包括可编程输入/输出单元、基本可编程逻辑单元、嵌入式SRAM、丰富的布线资源、底层嵌入式功能单元、嵌入式特殊单元等。主要设计者和制造商包括Xilinx、Altera、Lattice、Actel、 Atmel 和QuickLogic,其

最大的是Xilinx、Altera 和Lattice。

前面提到,FPGA是通过片上存储的RAM来设置其工作状态的,因此在运行过程中需要对片内RAM进行编程。用户可以根据不同的配置方式采用不同的编程方式。 FPGA有以下几种配置模式:

并行方式:并行PROM、Flash配置FPGA;

主从模式:一个PROM配置多个FPGA;

串行模式:串行PROM配置FPGA;

外设方式:FPGA作为微处理器的外设,微处理器对其进行编程。

目前FPGA市场占有率最高的两家公司Xilinx和Altera生产的FPGA都是基于SRAM技术,在使用过程中需要外部片外存储器来保存程序。上电后,FPGA将外部存储器中的数据读取到片内RAM中。配置完成后,进入工作状态;断电后,FPGA恢复为白色芯片,内部逻辑消失。这样,FPGA不仅可以重复使用,而且不需要专门的FPGA编程器,只需通用的EPROM和PROM编程器即可。 Actel、QuickLogic等公司也提供带有反熔丝技术的FPGA,只能下载一次。它们具有耐辐射、耐高低温、功耗低、速度快等优点。它们广泛应用于军事和航天领域,但这种FPGA不能反复擦除和写入,这使得其在开发初期比较麻烦且昂贵。 Lattice是ISP技术的发明者,在小规模PLD应用方面具有一定的特色。早期的Xilinx产品一般不涉及军用级和航天级市场,但Q Pro-R等很多产品已经进入这一领域。

1.2.2 FPGA芯片结构

目前主流的FPGA仍然基于查表技术,其基本性能已经远远超出了之前版本,并且集成了具有常用功能(如RAM、时钟管理和DSP)的硬核(ASIC型)模块。如图1-1所示(注:图1-1只是原理图,实际上每个系列的FPGA都有其对应的内部结构),FPGA芯片主要由6个部分完成,即:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入式Block RAM、丰富的布线资源、嵌入式低级功能单元和嵌入式专用硬件模块。

图1-1 FPGA芯片内部结构

各模块功能如下:

1. 可编程输入输出单元(IOB)

可编程输入/输出单元,简称I/O单元,是芯片与外部电路之间的接口部分。完成不同电气特性下输入/输出信号的驱动和匹配要求。其结构示意图如图1-2所示。 FPGA内部的I/O分为几组,每组可以独立支持不同的I/O标准。通过软件的灵活配置,可以适应不同的电气标准和I/O物理特性,调整驱动电流,改变上拉和下拉电阻。目前I/O端口的频率越来越高,一些高端FPGA通过DDR寄存器技术可以支持高达2Gbps的数据速率。

图1-2 典型IOB内部结构图

外部输入信号可以通过IOB模块的存储单元输入到FPGA内部,也可以直接输入到FPGA内部。当外部输入信号通过IOB模块的存储单元输入FPGA时,其保持时间(Hold Time)要求可以降低,通常默认为0。

为了方便管理和适应多种电气标准,FPGA的IOB被分为若干组(bank)。每个Bank的接口标准由其接口电压VCCO决定。一家银行只能有一种VCCO,但不同银行的VCCO可以不同。只有具有相同电气标准的端口才能连接在一起。相同的VCCO电压是接口标准的基本条件。

2. 可配置逻辑块(CLB)

CLB是FPGA内部的基本逻辑单元。 CLB的实际数量和特性因器件而异,但每个CLB都包含一个由4或6个输入组成的可配置开关矩阵、一些选择电路(多路复用器等)和触发器组成。开关矩阵非常灵活,可以配置为处理组合逻辑、移位寄存器或RAM。在Xilinx的FPGA器件中,CLB由多个(通常是4或2个)相同的Slice和附加逻辑组成,如图1-3所示。每个CLB模块不仅可以用来实现组合逻辑和时序逻辑,还可以配置为分布式RAM和分布式ROM。

图1-3 典型CLB结构图

Slice是Xilinx定义的基本逻辑单元。其内部结构如图1-4所示。 Slice 由两个4 输入函数、进位逻辑、算术逻辑、存储逻辑和一个函数多路复用器组成。算术逻辑包括异或门(XORG)和专用与门(MULTAND)。异或门可以使Slice 实现2 位全加运算。采用专用与门,提高乘法器的效率;进位逻辑由专用进位信号组成。由函数多路复用器(MUXC)组成,用于实现快速算术加减运算; 4输入函数发生器用于实现4输入LUT、分布式RAM或16位移位寄存器(在Virtex-5系列芯片的Slice中两个输入函数为6输入,可实现6输入LUT或64 位移位寄存器);进位逻辑包括两个快速进位链,以提高CLB模块的处理速度。

图1-4 典型4 输入Slice 结构图

3.数字时钟管理模块(DCM)

业界大多数FPGA 都提供数字时钟管理(所有Xilinx FPGA 都具有此功能)。 Xilinx 推出最先进的FPGA,提供数字时钟管理和相位环锁定。相位环锁定提供精确的时钟合成、减少抖动并启用滤波。

4. 嵌入式块RAM(BRAM)

大多数FPGA都内置了Block RAM,这大大扩展了FPGA的应用范围和灵活性。 Block RAM可以配置为单端口RAM、双端口RAM、内容地址存储器(CAM)和FIFO等常见存储结构。 RAM和FIFO是比较流行的概念,这里不再详细讨论。 CAM存储器的每个内部存储单元都具有比较逻辑。写入CAM的数据将与每个内部数据进行比较,并返回与端口数据相同的所有数据的地址。因此,路由地址在交换机中有广泛的应用。 FPGA中的LUT除了Block RAM外,还可以灵活配置成RAM、ROM、FIFO等结构。在实际应用中,芯片内部Block RAM的数量也是芯片选型的一个重要因素。

单个Block RAM的容量为18k位,即位宽为18位,深度为1024。它的位宽和深度可以根据需要改变,但必须满足两个原则:一是修改后的容量(位宽和位深)不能大于18k位;其次,最大位宽不能超过36位。当然,多个Block RAM可以级联形成更大的RAM。这种情况下,仅受芯片内Block RAM数量的限制,不再受上述两个原则的束缚。

5、丰富的接线资源

布线资源连接FPGA内部的各个单元,连接的长度和过程决定了连接上信号的驱动能力和传输速度。 FPGA芯片内部有丰富的布线资源,根据工艺、长度、宽度和分布位置分为4种不同的类别。第一类是全局布线资源,用于芯片内部的全局时钟和全局复位/设置的布线;第二类是长期资源,用于完成芯片组之间的高速信号和第二全局时钟信号的布线;第三类是第一类短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式布线资源,用于专有时钟、复位等控制信号线。

在实际应用中,设计者不需要直接选择布线资源。布局布线器可以根据输入逻辑网表的拓扑结构和约束自动选择布线资源来连接每个模块单元。从本质上讲,布线资源的使用与设计的结果之间存在着密切而直接的关系。

6. 底层嵌入式功能单元

嵌入式功能模块主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP、CPU等软处理核(Soft Core)。如今,越来越多的嵌入式功能单元的出现,使单片FPGA成为系统级设计工具,使其具备了软硬件联合设计的能力,并逐渐过渡到SOC平台。

DLL和PLL的功能类似,都能完成高精度、低抖动的时钟倍频和分频,以及占空比调整和移相等功能。 DLL集成到Xilinx生产的芯片中,PLL集成到Altera生产的芯片中,PLL和DLL都集成到Lattice生产的新芯片中。 PLL 和DLL 可以通过IP 核生成的工具轻松管理和配置。 DLL的结构如图1-5所示。

图1-5 典型DLL模块图

7.嵌入式专用硬核

嵌入式专用硬核是相对于底层嵌入式软核而言的。指FPGA具有强大处理能力的硬核(Hard Core),相当于ASIC电路。为了提高FPGA性能,芯片制造商在芯片内部集成了一些专用的硬核。例如:为了提高FPGA的乘法速度,主流FPGA集成了专用乘法器;为了适应通信总线和接口标准,许多高端FPGA集成了串行和并行收发器(SERDES),最高可达数十Gbps。发射和接收速度。

Xilinx的高端产品不仅集成了Power PC系列CPU,还嵌入了DSP Core模块。相应的系统级设计工具是EDK和Platform Studio,据此提出了System on Chip的概念。通过PowerPC、Miroblaze、Picoblaze等平台,可以开发标准DSP处理器及相关应用程序,达到SOC开发的目的。

1.2.3 软核、硬核、实核的概念

IP(Intelligent Property)核是具有知识产权核的集成电路核的总称。它是经过反复验证的具有特定功能的宏模块。它与芯片制造工艺无关,可以移植到不同的半导体工艺上。在SOC阶段,IP核设计已经成为ASIC电路设计公司和FPGA提供商的重要任务,也是他们实力的体现。对于FPGA开发软件来说,提供的IP核越丰富,用户设计就越方便,市场占有率就越高。目前,IP核已成为系统设计的基本单元,并作为独立设计成果进行交换、转让和销售。

从IP核的提供方式来看,通常分为软核、硬核和实核三类。从完成IP核的成本来看,硬核是最贵的;从使用灵活性来看,软核的可重复使用性最强。

1.软核

在EDA设计领域,软核是指综合前的寄存器传输级(RTL)模型;具体在FPGA设计中,是指电路的硬件语言描述,包括逻辑描述、网表、帮助文档等。软核只经过功能仿真,需要综合和布局布线后才能使用。其优点是高度灵活性和可移植性,允许用户自行配置;其缺点是模块的可预测性较低,后续设计可能出现错误,存在一定的设计风险。软核是应用最广泛的IP核形式。

2. 实芯

在EDA设计领域,solid core是指带有布局信息的网表;具体在FPGA设计中,可以将其视为具有布局规划的软核,通常以RTL代码和相应的特定工艺网表的混合形式提供。将RTL描述与特定的标准单元库相结合进行全面优化设计,形成门级网表,然后可以通过布局布线工具使用。与软磁芯相比,实心磁芯的设计灵活性稍差,但其可靠性却大大提高。目前,实心核也是IP核的主流形式之一。

3. 硬核

硬核是指EDA设计领域经过验证的设计布局;具体在FPGA设计中,是指布局和工艺已经固定并经过前端和后端验证的设计,设计者无法修改。不能修改的原因有两个:一是系统设计对各个模块都有严格的时序要求,不允许打乱现有的物理布局;其次,保护知识产权的要求不允许设计者对其进行任何更改。 IP硬核无法修改,难以复用。因此只能用于某些特定的应用场合,使用范围较窄。

审稿人:唐子宏

以上知识分享希望能够帮助到大家!