FPGA基础知识

时间:2025-06-13  作者:Diven  阅读:0

FPGA全称是Field-Programmable Gate Array,即现场可编程门阵列。

FPGA基础知识

1、跟单片机相比

结构不同:

1.1、单片机的引脚、资源以及内部乘法器的数量是确定的,也就是说硬件是确定的。只要通过软件编程就可以实现其功能。

1.2 、FPGA内部电路是不确定的,可以通过编程来改变芯片的内部结构。内部乘法器、除法器和寄存器的数量都可以通过编程来改变。

小结:

A、单片机不改变硬件结构,而是通过改变指令执行的先后顺序来实现我们所需要的功能。(指令包括读、写或跳转指令)。

B、FPGA的编程和设计就是为了改变芯片内部的硬件电路结构来实现我们需要的功能。

考虑点不同:

1.3、在做单片机或电脑编程的时候,是不需要考虑时序的,只要有个函数,然后有个编程代码实现就好了。写一个函数,反复调用就可以实现很多的功能。

比如一个功能,单片机只需一个小时,但FPGA可能花一天甚至几个月的时间。因为FPGA不仅要想到功能,还要想到电路和时序。是需要一个一个时钟慢慢去抠的细节化的设计方法。

所以,FPGA开发难度远远比单片机高。

难度系数比较从高到低:ASIC集成电路>FPGA>单片机

FPGA是专做底层的开发和设计,专做底层优化的工作,FPGA非常难,这是一个特点。

2、FPGA应用场景

2.1、FPGA功能强大,试验难度大,一般用在通信接口的设计以及数字信号处理等比较高端(数据量大、数据传输快、精度要求高)的场合。

日常应用中,要求不是特别高的场合使用单片机来实现。

2.2、FPGA还有一个特殊的应用场合,即ASIC的原型验证。

怎么理解?集成电路开发流程长,风险高,当做一个集成电路开发的时候,从代码编写到仿真验证,到PCB的布局布线,再到最后的生产都需要经过很长的时间周期。

为了保证成功率,希望一次通过,在生产之前可以在FPGA上跑一跑,验证一下功能是否正常。

2.3、FPGA的非标场合(用量少的场合,常用于军工领域)。

例如,USB等接口标准是固定的。但有一些特殊场合,市场需求本身不大,本身也是某种特殊定义的接口,这种接口在市场上很难找到对应的芯片去实现这种接口,这时FPGA就可以派上用场,可以自己设计内部结构电路跟这种接口进行对接。

2.4、新科技的新型运用。

当一个新科技不明朗是否有市场前景的时候,肯定不会大批量的生产某一款芯片,可以先用FPGA来试验,待市场需大量的需求时再大量的生产。

小结:

相较于专用的ASIC,FPGA工具在开发难度上降低了许多,并大大缩短了开发周期,而且由于FPGA是可重复编程的,其研发成本与风险要比ASIC减少许多,更适用于复杂多变的数据应用。

3、FPGA的缺点

FPGA的缺点是成本高,为什么这么说呢?专用的电路一定是把所有的电路都用上了,来实现我们所需要的功能。FPGA要同时满足A、B、C的功能。但满足A的某些功能在B或C上肯定是用不上的,所以利用率比较低,也可以理解为成本高。

所以,FPGA只能做一些高端的少批量的运用。当发现市场前景非常好,想要降成本的时候,可以把FPGA的代码变成集成电路去生产。

4、FPGA的基本结构

FPGA不像专用的ASIC那样通过固定的逻辑门电路来完成,而只能采用可重复配置的结构来实现,查找表(LUT)可以很好的满足这一要求。

查找表(Look-Up-Table)是什么?其本质上是一个RAM存储器

举例说明,以数字逻辑Y=A&B&C为例。在专用ASIC中,为实现该逻辑,逻辑门都已经事先确定好,如下图所示:

Y=A&B&C的实现结构

在FPGA中就不一样。A、B、C通过编程可以是任意关系。设计过程如下:

先用代码写出Y=A&B&C,然后用EDA工具(QUARTUS或其开发工具)分析这一行代码,得出A、B、C在不同输入组合下(共8种),Y的值分别是多少,其真值表如下图所示:

然后,软件工具将所有结果写到查找表(LUT)上,从而实现该代码的功能。

Y=A&B&C的FPGA实现基本结构

这就是FPGA实现的原理。

5、知识补充

5.1、在FPGA内部有着软内核和硬内核之分。

软内核:可以通过门电路随意搭起来实现某种功能的电路。比如在芯片内部实现了一个计数器逻辑,那么在构造计数器逻辑过程中使用到的功能可以被称为“软功能”。

硬内核:实现固定功能的芯片。电路是固定好的,通过硬件去实现的。比如:PLL时钟单元,电路是固定的,因为时钟通过外部晶振起振后,通过内部PLL时钟倍频,不是数字电路可实现的,需要模拟电路倍频实现。AD芯片和DA芯片也是模拟芯片,也是需要固定的资源在里面。

5.2、新的SOC FPGA(带嵌入式处理器的FPGA)

在FPGA内部有存储单元片内RAM块,数据存放在RAM中,并由其设置工作状态,若想要FPGA进行工作,就要对RAM进行编程,而如果外部有大量数据进行交互时,就要通过增加外设对数据进行暂时性的存储,如SDRAM存储器或DDR3存储器,暂存在外设中的数据最终也是要通过FPGA内部的RAM进行存储和处理。

目前,主流的FPGA都是基于SRAM工艺,在大部分开发板上都是串行配置模式。由于SRAM掉电就会丢失内部数据,因此往往都会外接一个能够掉电保存数据的片外存储器来保存程序。这样一来,上电时FPGA便将外部存储器种的数据读入片内RAM以完成配置,对FPGA编程完成后便进入工作状态。

目前FPGA内部已经有一些芯片电路,不仅仅有接口,门电路,还有ARM及其CPU等等已经带入嵌入式处理器的功能。

我们会发现电路板上功能有ARM+FPGA或DSP+FPGA协同合作,一个芯片上实现处理器+FPGA功能,这就是我们更强大的嵌入式处理器的功能。

优点:

1、更有利于PCB布局,面积更小,功能更强大。

2、ARM嵌入在芯片内部,ARM和FPGA之间有更多的总线和通信方式,速度可以更快。

5.3、数据的存储及配置方式

当在EDA工具上将程序设计完成之后,便需要将软件上的程序烧录进FPGA内部。通过不同的配置模式,FPGA便有不同的编程方式,以下为几种常见的配置模式:

1、并行模式:通过并行PROM、Flash配置FPGA。也就是说,把FPGA的程序先写到PROM或Flash里面,上电的时候就会自动读取里面的值,配置FPGA。

2、主从模式:使用一片PROM配置多片FPGA。

3、串行模式:串行PROM配置FPGA。

4、外设模式:将FPGA作为微处理器CPU的外设,由微处理器对其编程。

一个是FPGA,一个是CPU,CPU通过接口写FPGA,然后再通过FPGA实现需要的功能。那么CPU配置FPGA参数的数据从哪里来?

可以增加一个RAM或FLASH,CPU读取里面的内容,然后写到FPGA内部,FPGA工作就能实现需要的功能。这是比较常见的方式。

这种方式跟CPU直接控制FPGA有什么不同吗?也就是上电后FPGA直接读取PROM的数据不就好了,为什么要多一个CPU呢?

其中一个原因是:FPGA的有些程序是加密的,CPU读取数据并解密后再发给FPGA,FPGA再来实现功能。

审核编辑:汤梓红

 

猜您喜欢

电阻器作为基本且关键的电子元件,其性能直接影响设备的稳定性和使用寿命。合美电机(HERMEI)作为国内知名的电阻器制造品牌,高品质的铝壳电阻产品在市场中占据重要...
2022-09-16 18:16:11

7343的贴片电容,应用于电子设备中。其尺寸和性能,直接影响电路的稳定性。本文将详细介绍7343贴片电容的尺寸,以及其在不同场合的应用。**1. 尺寸规格**7...
2025-03-26 18:01:10

贴片电阻上的「681」代表其阻值为680欧姆。 这是一种用三位数字表示阻值的编码方式。前两位数字「68」代表有效数字,第三位数字「1」代表10的几次方,也就是乘...
2024-11-26 11:29:44

在现代家居生活中,收纳和储物的合理规划是提升空间利用率的关键。无论是小户型还是大空间,科学的收纳设计能够让您的生活更加有序。选择适合的收纳家具,如多功能收纳箱、...
2010-07-04 00:00:00

贴片电阻511,也称为0805封装电阻,是电子电路中常用的基础元件。511表示其尺寸为5.1mm x 1.1mm,小巧的体积使其非常适合应用于各种紧凑型电子设备...
2024-11-29 10:26:37

贴片电阻R020,指的是封装尺寸为0201的贴片电阻,是电子电路中很重要的基础元件。体积微小,却是重要的配件,主要用于限制电流、分压和提供特定阻值。R020的0...
2024-11-29 10:26:07

现代电子设备中,集成电路(IC)封装的选择非常重要。MSOP10_3X2.9MM是应用的小型封装,因其优异的性能和紧凑的尺寸,受到众多设计工程师的青睐。本文将深...
2025-04-24 12:31:12

在本教程中,我们将使用Verilog HDL设计一个数字电路,该电路与基于HD44780 LCD控制器/驱动芯片的通用LCD模块连接。Mojo V3 FPGA板...
2023-09-20 10:25:00

1206贴片电容是常见的电子元件。在电路中起着重要作用。本文将介绍1206贴片电容的规格表和一些相关信息。贴片电容定义贴片电容是表面贴装的电容器。通常体积小,方...
2025-04-12 21:00:06

电流采样电阻或分流器是电路设计中的关键元件,应用于电流监测和测量。选择合适的规格尺寸非常重要,直接影响测量精度和系统性能。一般而言,电流采样电阻的规格包括额定功...
2023-05-26 00:00:00