当前位置:首页 > 新闻资讯 > FPGA之家动态 >

一文带你了解从FPGA入门到高手的绝大部分知识,推荐收藏哦~

时间:2025-02-18      来源:FPGA_UCY 关于我们 0

一文带你了解FPGA

一文带你了解从FPGA入门到高手的绝大部分知识,推荐收藏哦~

FPGA简介

FPGA是英文Field-y的缩写,即现场可编程门阵

列,它是在可编程阵列逻辑PAL(ic)、门阵列逻辑

GAL()、可编程逻辑器件PLD(ice)

可编程器件的基础什么是FPGA上进一步发展的产物。

它是作为专用集成电路ASIC()

领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有

可编程器件门电路数有限的缺点。FPGA能完成任何数字器件的功能,上至高性

能CPU,下至简单的74系列电路,都可以用FPGA来实现。FPGA如同一张白纸

或是一堆积木,工程师可以通过传统的原理图什么是输入法,或是硬件描述语

言自由设计一个数字系统。

通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可

以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA

来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠

性。PLD的这些优点使得PLD技术在90年代以后得到飞速的发展,同时也大大

推动了电子设计自动化EDA(maTIc)软件和硬件描述

语言VHDL(Very-High-n)的

进步。

FPGA的特点

FPGA具有体系结构和逻辑单元灵活、集成度高以及适用范围宽FPGA等特

点。兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵

活。与门阵列等其它ASIC相比,它又具有设计开发什么是周期短、设计制造成

本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优

点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之

中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用

FPGA。

FPGA采用了逻辑单元阵列LCA()这样一个新概念,内部

包括可配置逻辑模块CLB(ck)、输出输入模块

IOB()和内部连线()三个部分。

FPGA的主要基本特点

一是采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯

片。

二是FPGA可做其它全定制或半定制ASIC电路的中试样片。

三是FPGA内部有丰富的触发器和I/O引脚。

四是FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件

之一。

五是FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

FPGA芯片结构

目前主流的FPGA仍是基于查找表技术的,已经远远超出了先前版本的基本

性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核(ASIC型)模块。

FPGA芯片主要由6部分完成,分别为:可编程输入输出单元、基本可编程逻辑

单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单

元和内嵌专用硬件模块。

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

可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成

不同电气特性下对输入/输出信号的驱动与匹配要求。为了便于管理和适应多种

电器标准,FPGA的IOB被划分为若干个组(bank),每个bank的接口标准由其

接口电压VCCO决定,一个bank只能有一种VCCO,但不同bank的VCCO可以不

同。只有相同电气标准的端口才能连接在一起,VCCO电压相同是接口标准的基

本条件。

2.可配置逻辑块(CLB)

CLB是FPGA内的基本逻辑单元。CLB的实际数量和特性会依器件的不同而

不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一

些选型电路(多路复用器等)和触发器组成。开关矩阵是高度灵活的,可以对其

进行配置以便处理组合逻辑、移位寄存器或RAM。

3.嵌入式块RAM(BRAM)

大多数FPGA都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活

性。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及

FIFO等常用存储结构。CAM存储器在其内部的每个存储单元中都有一个比较逻

辑,写入CAM中的数据会和内部的每一个数据进行比较,并返回与端口数据相

同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。除了块

RAM,还可以将FPGA中的LUT灵活地配置成RAM、ROM和FIFO等结构。在实际

应用中,芯片内部块RAM的数量也是选择芯片的一个重要因素。

4.丰富的布线资源

布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连

线上的驱动能力和传输速度。FPGA芯片内部有着丰富的布线资源,根据工艺、

长度、宽度和分布位置的不同而划分为4类不同的类别。第一类是全局布线资

源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以

完成芯片Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,

用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用

于专有时钟、复位等控制信号线。

在实际中设计者不需要直接选择布线资源,布局布线器可自动地根据输入

逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上

讲,布线资源的使用方法和设计的结果有密切、直接的关系。

5.底层内嵌功能单元

内嵌功能模块主要指DLL()、PLL(

Loop)、DSP和CPU等软处理核。现在越来越丰富的内嵌功能单元,使得单片

FPGA成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向

SOC平台过渡。

DLL和PLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,

以及占空比调整和移相等功能。

6.内嵌专用硬核

内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核

(),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部

集成了一些专用的硬核。例如:为了提高FPGA的乘法速度,主流的FPGA中都

集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA内部都集

成了串并收发器(),可以达到数十Gbps 的收发速度。

FPGA 与ASIC 及CPLD 对比

1、FPGA 和ASIC 的比较

ASIC 是英文的 TIon 缩写,即专

用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成

电路。目前用CPLD(复杂可编程逻辑器件)和FPGA(现场可编程逻辑阵列)来进行

ASIC 设计是最为流行的方式之一,它们的共性是都具有用户现场可编程特性,

都支持边界扫描技术,但两者在集成度、速度以及编程方式上具有各自的特

点。

ASIC 的特点是面向特定用户的需求,品种多、批量少,要求设计和生产周

期短,它作为集成电路技术与特定用户的整机或系统技术紧密结合的产物,与

通用集成电路相比具有体积更小、重量更轻、功耗更低、可靠性提高、性能提

高、保密性增强、成本降低等优点。

FPGA 特别适合于样品研制或小批量产品开发,使产品能以最快的速度上

市,而当市场扩大时,它可以很容易的由ASIC 实现,因此开发风险也大为降

低。但ASIC 也有它固有的优势,芯片可以获得最优的性能,即面积利用率高、

速度快、功耗低,批量成本低,所以在今后一段时间内ASIC 仍然会占据高端芯

片市场和大批量应用的成熟中低端市场。

2、FPGA 与CPLD 的比较

尽管FPGA 和CPLD 都是可编程ASIC 器件,有很多共同特点,但由于CPLD

和FPGA 结构上的差异,具有各自的特点:

一是CPLD 更适合完成各种算法和组合逻辑,FPGA 更适合于完成时序FPGA

逻辑。换句话说,FPGA 更适合于触发器丰富的结构,而CPLD 更适合于触发器

有限而乘积项丰富的结构。

二是CPLD 的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而

FPGA 的分段式布线结构决定了其延迟的不可预测性。

三是在编程上FPGA 比CPLD 具有更大的灵活性。CPLD 通过修改具有固定内

连电路的逻辑功能来编程,FPGA 主要通过改变内部连线的布线来编程;FPGA 可

在逻辑门下编程,而CPLD 是在逻辑块下编程。

四是FPGA 的集成度比CPLD 高,具有更复杂的布线结构和逻辑实现。

五是CPLD 比FPGA 使用起来更方便。CPLD 的编程采用 或

技术,无需外部存储器芯片,使用简单。而FPGA 的编程信息需存放在外部存储

器上,使用方法复杂。

六是PLD 的速度比FPGA 快,并且具有较大的时间可预测性。这是由于FPGA

是门级编程,并且CLB 之间采用分布式互联,而CPLD 是逻辑块级编程,并且其

逻辑块之间的互联是集总式的。

七是在编程方式上,CPLD 主要是基于 或FLASH 存储器编程,编程次

数可达1 万次,优点是系统断电时编程信息也不丢失。CPLD 又可分为在编程器

上编程和在系统编程两类。FPGA 大部分是基于SRAM 编程,编程信息在系统断

电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM 中。其优点是

可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。

八是CPLD 保密性好,FPGA 保密性差。

九是一般情况下,CPLD 的功耗要比FPGA 大,且集成度越高越明显。

FPGA 基础入门到高手相关知识

1、FPGA 器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)

和最常用 的(JTAG)配置方式。

AS 由FPGA 器件引导配置操作过程,它控制着外部存储器和初始化过程,

EPCS 系列。如EPC S1,EPCS4 配置器件专供AS 模式,目前只支持 系

列。使用 串行配置器件来完成。 期间处于主动地位,配置期间

处于从属地位。配置数据通过DATA0 引脚送入 FPGA。配置数据被同步在DCLK

输入上,1 个时钟周期传送1 位数据。

PS 则由外部计算机或控制器控制配置过程。通过加强型配置器件(EPC16,

EPC8,EPC4)等配置器件来完成,在PS 配置期间,配置数据从外部储存部件,

通过DATA0 引脚送入FPGA。配置数据在DCLK 上升沿锁存,1 个时钟周期传送1

位数据。

JTAG 接口是一个业界标准,主要用于芯片测试等功能,使用IEEE Std

1149.1 联合边界扫描接口引脚,支持JAM STAPL 标准,可以使用 下载

电缆或主控器来完成。 FPGA 在正常工作时,它的配置数据存储在SRAM 中,加

电时须重新下载。在实验系统中,通常用计算机或控制器进行调试,因此可以

使用PS。在实用系统中,多数情况下必须由FPGA 主动引导配置操作过程,这

时FPGA 将主动从外围专用存储芯片中获得配置数据,而此芯片中fpga 配置信

息是用普通编程器将设计所得的pof 格式的文件烧录进去。

专用配置器件:epc 型号的存储器

常用配置器件:epc2,epc1,epc4,epc8,(现在好象已经被逐步

淘汰了)等

对于 系列器件, 还提供了针对AS 方式的配置器

件,EPCS 系列。如EPCS1,EPCS4 配置器件也是串行配置的。注意,他们只适

用于 系列。 除了AS 和PS 等单BIT 配置外,现在的一些器件已经支持

PPS,FPS 等一些并行配置方式,提升配置了配置速度。当然所外挂的电路也和

PS 有一些区别。还有处理器配置比如 等等,如果需要再baidu 吧,至

少不下十种。

比如 公司的配置方式主要有 (PS),

(AS),Fast (FPP),

(PPS), (PPA),

(PSA),JTAG 等七种配置方式,其中 支持的配置方式有

PS,AS,JTAG 三种。

2、对FPGA 芯片的配置中,可以采用AS 模式的方法,如果采用EPCS 的芯

片,通过一条下载线进行烧写的话,那么开始的‘,’应该上

拉,要是考虑多种配置模式,可以采用跳线设计。让配置方式在跳线中切换,

上拉电阻的阻值可以采用10K。

3、在PS 模式下tip:如果你用电缆线配置板上的FPGA 芯片,而这个FPGA

芯片已经有配置芯片在板上,那你就必须隔离缆线与配置芯片的信号。(祥见下

图)。一般平时调试时不会把配置芯片焊上的,这时候用缆线下载程序。只有在

调试完成以后,才把程序烧在配置芯片中, 然后将芯片焊上。或者配置芯片就

是可以方便取下焊上的那种。这样出了问题还可以方便地调试。

在AS 模式下tip: 用过一块板子用的AS 下载,配置芯片一直是焊在板子

上的,原来AS 方式在用线缆对配置芯片进行下载的时候,会自动禁止对FPGA

的配置,而PS 方式需要电路上隔离。

4、一般是用jtag 配置epc2 和,然后 epc2 用ps 方式配置

.这样用比较好。(这是我在网上看到的,可以这样用吗?怀疑中)望达人

告知。

5、下载电缆, 下的下载电缆分为 和,

以及 II,现在还推出了基于USB-.由于BB 基本已经很少

有人使用,而USB- 现在又过于昂贵,这里就说一下BBII 和 BBMV 的区

别。

BBII 支持多电压供电5.5v,3.3v,2.5v,1.8v;BBII 支持三种下载模式:

AS,可对 的As 串行配置芯片(EPCS 系列)进行编程 PS,可对FPGA 进行

配置 JTAG,可对FPGA,CPLD,即 配置芯片(EPC 系列)编程 而BBMV 只

支持PS 和JTAG

6、一般在做FPGA 实验板,(如 系列)的时候,用AS+JTAG 方式,

这样可以用JTAG 方式调试,而最后程序已经调试无误了后,再用 AS 模式把程

序烧到配置芯片里去,而且这样有一个明显的优点,就是在AS 模式不能下载的

时候,可以利用 自带的工具生成JTAG 模式下可以利用的jic 文件来验

证配置芯片是否已经损坏。

7、 的FPGA 可以通过单片机,CPLD 等加以配置,主要原理是满足

中的时序即可,这里我就不多说了,有兴趣的朋友可以看看下面几

篇文章,应该就能够明白是怎么回事了。

8、配置时, 软件操作部分:

(1)--》--》&pin --》选择

, mode, ,注意

在不支持远程和本地更新的机器中 mode 不可选择,而

中会根据不同的配置芯片产生pof 文件, 如果选择自

动,会选择最小密度的器件和适合设计。

(2)可以定义双口引脚在配置完毕后的作用,在刚才的&pin -

-》dual- pins--》,可以在配置完毕后继续当I/O 口使用

(3)在 菜单下也有很多可钩选项,默认情况下一般不做改动,具体

用法参见alter a ,,.

(4)关于不同后缀名的文件的适用范围: sof(SRAM File)当直接用

PS 模式下将配置数据下到FPGA 里用到,USB ,,BBII,

BBMV 适用, 会自动生成,所有其他的配置文件都是由sof 生成的。

pof( File)也是由 自动生成的,BBII 适用,AS

模式下将配置数据下到配置芯片中rbf(Raw File)用于微处理器的二进

制文件。在 PS,FPP,PPS,PPA 配置下有用处 rpd(Raw Data File)

包含 的二进制文件,可用AS 模式配置,只能由pof 文件生成

hex( file)这个就不多说了,单片机里很多ttf( Text

File)适用于FPP,PPS,PPA,和bit-wide PS 配置方式sbf(

File)用PS 模式配置Flex 10k 和 的jam(Jam File)专门用于

,,blank-check。

FPGA 下载配置学习心得

1、根据FPGA 在配置电路中的角色,配置数据可以使用3 种方式载入到目

标器件中:

(1) FPGA 主动方式:由FPGA 来主动输出控制和同步信号给FPGA 的串行配

置芯片(EPCS 系列),配置芯片收到命令后,把配置数据发给FPGA,完成配置过

程;在AS 模式下,FPGA 必须与AS 串行配置芯片配合使用,它与FPGA 的接口为

四跟信号线,分别为:串行时钟输入(DCLK),AS 控制信号输入 (ASDI),片选

信号(nCS),串行数据输出(DATA)。

(2) FPGA 被动方式:被动模式下,由系统的其他设备发起并控制配置过

程,这些设备可以是配置芯片(EPC 系列),或者单板的微处理器、CPLD 等。

FPGA 在配置过程中完全处于被动地位,只是输出一些状态信号来配合配置过程;

在PS 模式下,需要配置时钟(DCLK),配置数据(DATA0),配置命令(),

状态信号(),配置完成指示()这四个信号来完成配置过程。

(3) JTAG 模式:使用JTAG 进行配置可以使用 的下载电缆,或者通

过智能主机模拟JTAG 的时序来进行配置;JTAG 接口由四个必须的信号TDI、

TDO、TMS 和TCK,以及一个可选的TRST 构成。

2、若使用 下载电缆,支持的配置方式有以下3 种:

AS 方式:对AS 配置芯片(ECPS 系列)进行编程;

PS 方式:可以对FPGA 进行配置;

JTAG 方式:可以对FPGA、CPLD 以及 配置芯片(EPC 系列)编程。

3、AS 及PS 模式下的注意事项

PS 模式:如果你用电缆线配置板上的FPGA 芯片,而这个FPGA 芯片已经有

配置芯片在板上,那你就必须隔离缆线与配置芯片的信号一般平时调试时不会

把配置芯片焊上的,这时候用缆线下载程序。只有在调试完成以后,才把程序

烧在配置芯片中,然后将芯片焊上。或者配置芯片就是可以方便取下焊上的那

种。这样出了问题还可以方便地调试。

AS 模式下: 用过一块板子用的AS 下载,配置芯片一直是焊在板子上的,

原来AS 方式在用线缆对配置芯片进行下载的时候,会自动禁止对FPGA 的配

置,而PS 方式需要电路上隔离。

4、一般在做FPGA 实验板,(如 系列)的时候,用AS+JTAG 方式,

这样可以用JTAG 方式调试,而最后程序已经调试无误了后,再用AS 模式把程

序烧到配置芯片里去,而且这样有一个明显的优点,就是在AS 模式不能下载的

时候,可以利用 自带的工具生成JTAG 模式下可以利用的jic 文件来验

证配置芯片是否已经损坏。

审核汤梓红


注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言