找回密码
 注册
关于网站域名变更的通知
查看: 459|回复: 1
打印 上一主题 下一主题

转——FPGA第一阶段设计基础资料:FPGA简介

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-20 07:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
转——FPGA第一阶段设计基础资料:FPGA简介
6 `8 e% t: u8 l( l8 q9 K
第一章 FPGA  简介
: w; j$ a8 A  }# X( p# h1  什么是 FPGA! q6 I2 `/ u2 V  D) Q  f
FPGA 的官方解释是 : Field-Programmable Gate Array,即现场可编程门阵列,它是在 PAL、GAL、cpld(不用读系列)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。! R* ]$ o5 @7 `. e: u
  j9 y/ G! H, a8 {/ @4 \
可以将 FPGA 理解为大量的逻辑门阵列,用户可以自由组合以实现不同的电路功能,即 FPGA的可编程特性。相比于冯诺依曼结构的 CPU、GPU 等通用处理器,FPGA 具有效率更高速度更快的优点;相比于专职专用的 ASIC,FPGA 则具有开发难度小,开发周期更短的优势,更适用于复杂多变的数据中心等应用
" N  V' B7 Q1 a7 q但是 FPGA 也不是万能的,优势有时候也是劣势。虽然 FPGA 相比于 CPU 效率更高、功耗更低的特点,但是易于开发程度远远不如 CPU;虽然相比 ASIC 开发周期更短,但是也存在着资源浪费,成本过高、性能较差的问题,不能真正的替代 ASIC。# T6 h4 J0 d" S! |' t
+ t! a4 [% h( |0 o4 I
2 FPGA 的工作原理 的工作原理* m; V$ z; ]+ H+ Y2 F
由于 FPGA 需要反复烧写,所以他实现组合逻辑的结构不能像 ASIC 那样通过固定的与非门来完成,而只能采用一种抑郁反复配置的结构。查找表(LUT)可以很好地满足这一要求,目前主流 FPGA 都采用了基于 SRAM 工艺的查找表结构。通过烧写文件改变查找表内容的方法来实现对 FPGA 的7 c) W4 @1 j3 [3 e
重复配置。根据数字电路的基本知识可以知道,对于一个 n 输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在 2n 种结果。所以如果事先将相应的结果存放在一个存储单元,就相当于实现了与非门电路的功能。FPGA 的原理就是如此,他通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。查找表(Look-Up-Table)简称为 LUT,LUT 本质上就是一个 RAM。目前 FPGA 中多实用 4 输入的 LUT,所以每一个 LUT 可以看成一个有 4 位地址线的 RAM。当用户通过原理图或 HDL 语言描
- [: u8 N1 V$ }. P9 G述了一个逻辑电路以后,FPGA 开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查找表,找出相应的内容,然后输出即可。2 e: F( N& L$ P2 p
以实现 y=(a&b)|c 的功能为例。如果是 ASIC,下面就是基本的实现结构:$ O( |6 c8 r( S9 M
+ q/ ~* C$ x9 f6 s  ~9 U: a" |/ g

+ M% r6 J7 P6 b+ ~, ~' ?- y& U7 ]
图 1
0 _. T0 h" @' M% \4 v; E, n而在 FPGA,用户首先写出“y=(a&b)|c”代码,软件工具(QUARTUS、ISE 或 VIVADO)分析这一行代码,得出 a、b、c 不同值下(共 8 种不同值),y 的值分别是多少。
- x2 r( e( E3 }# S; N7 r+ c
& d7 C+ {& ~( R( {0 D" M  _7 c7 g) \+ R- s

2 z* r% O8 R+ o7 k% L2 Y然后软件工具将结果写到 LUT 上,从而实现了该代码的功能。下图就是 FPGA 的实现基本结构。5 d0 U8 O( Z# s
LUT 就像一个 RAM,abc 则相当于地址,通过 abc 的地址就得读到值赋给 y。
8 H0 R2 v) d  [4 i& l
* y  F1 E3 q4 P" F& f. t0 ]6 u6 Z! @+ z9 E% K5 x% f
! i1 L: V8 f' h9 w
图 21 u# A, r$ f6 _# o3 t4 s
3  更为复杂的 FPGA 架构 架构- m6 k1 i' z. Z8 T
赛灵思公司在 1985 年推出的第一块 FPGA—XC2064 包含 8×8=64 的逻辑块阵列,每个逻辑块包含一个四输入查找表及其它一些简单功能。由于它们的容量非常有限,因此早期的 FPGA 只用来执行一些相对简单的任务,比如集中一些胶合逻辑,或实现基本的状态机。
8 ^& Y6 L, r: o0 o  G随着时间的推移和工艺节点的进步,FPGA 的容量和性能不断得到提高,功耗却不断的下降。直到大约 2006 年以前广泛使用的一直是四输入查找表,一些高端器件可能使用六、七或八输入的查找表。这些大家伙可能被用作一个大的查找表,或分裂成许多更小的功能,比如两个四输入的查找表或一个三输入一个五输入的查找表。在实际的高端器件中,这种可编程构造可以描述相当于百万级(有时甚至千万级)的原始逻辑门。8 R4 Z* N7 q, }- x( B1 H# f8 w
如果某个逻辑功能(比方说计数器)是用 FPGA 的可编程构造实现的,那么这个功能可以被说成“软功能”,我们称之为软内核。相比之下,如果某个功能是直接用芯片实现的,则被说成“硬功能”,我们一般称之为硬内核。软内核的优势在于,你可以让它们做你想让它们做的任何事,注意,是数字功能,不包括模拟功能。硬内核的优势是它们占用较少的硅片面积,具有较高的性能,并且功耗较低,并且硬内核可用于实现模拟功能。例如锁相环的倍频功能,这需要用于模拟电路,所以这一部分是在FPGA 内部用硬件来实现的。+ R+ a& P9 w  ?: @9 ~% X
4  带嵌入式处理器的 FPGA6 H5 N$ g5 e6 u" K
我们可以用 FPGA 中的普通可编程构造做的事情之一是,使用其中的一部分实现一个或多个软处理器内核。当然,你可以实现不同规模的处理器。举例来说,你可以创建一个或多个 8 位的处理器,加上一个或多个 16 位或 32 位的软处理器—所有处理器都在同一器件中。如果 FPGA 供应商希望提供一个占用较少硅片面积、消耗较低功率但性能更高的处理器,解决方案是将它实现为硬内核。现在流行的 ZYNQ,就是由赛灵思公司推出的,内部集成了 ARM硬核的FPGA 芯片。考虑下面所示这个例子:
4 U7 {. G& ~( ?* @  N
$ ]$ m3 k3 B8 C. m# j$ h1 U* p& m$ x7 E

+ m) N- Z+ j& ~) g图 3  @( b; [& @$ ?

' ?9 o* h: W/ ?, M图 4:一种新的 SoC FPGA
7 b" |  P! p1 k; L) }/ k这个芯片完全以硬内核方式实现的双路 ARM Cortex-A9 微控制器子系统(运行时钟高达 1GHz,包含浮点引擎,片上缓存,计数器,定时器等),以及种类广泛的硬内核接口功能(spi,I2C,CAN 等),还有一个硬内核的动态内存控制器,所有这些组件都利用大量传统的可编程构造和大& \8 H0 |3 D, e$ {. x; A0 S
量的通用输入输出(GPIO)引脚进行了性能增强。
* X4 @) E9 G1 c$ ?4 z1 I3 e, d如果需要高速、高性能的处理器,并且需要实现逻辑编程时,传统的方法是在电路板上放置处理器(如 ARM、DSP等)和 FPGA,ARM 或者 DSP 工程师实现软件部分,FPGA 工程师实现可编程逻辑部分,两者协同合作。现在最新的方案,就可以使用 ZYNQ 一个芯片,以更低的功耗、更高的速度实现上面的功能。  K' ]8 L$ v: L+ |/ c8 ?1 z) v
如果是 ZYNQ 单芯片方案,是不是意味着只需要软件工程师或者 FPGA 工程师独立工作就可以了呢?笔者现时所了解的情况是:FPGA 工程师负责搭建周边电路,如 ARM 的接口、时钟配置等,还负责可编程逻辑部分的开发。而软件部分仍然还是软件工程师负责。这主要原因是,FPGA 逻辑开发和软件开发都是专业性比较强的技能,非常少的工程师能同时掌握这两个技能。当然,这里说的掌握性能,是专业性的、能应用到企业项目的技能,只是接触一下的不算。1 g8 I. U9 f* }9 d& U
9 C0 C% `9 I: x; B
5 编程方式 编程方式5 v' B  ?) r4 c$ @: q( v1 {
FPGA 是由存放在片内的 RAM 来设置其工作状态的,因此工作室需要对片内 RAM 进行编程。用户可根据不同的配置模式,采用不同的编程方式。FPGA 有如下几种配置模式:
3 a  P& q  E4 e& n, D2 [- \1、并行模式:并行 Prom、Flash 配置 FPGA;
8 i: P. h- H! r5 ]" o2 q9 g2 b/ i2、主从模式:一片 PROM 配置多片 FPGA;
; E+ ^4 V" r& @3、串行模式:串行 PROM 配置 FPGA;" ^# J+ `5 Y1 T, ^! f) Y; f, G
4、外设模式:将 FPGA 作为微处理器的外设,由微处理器对其编程。! a+ V2 X6 z0 n3 ~
目前,FPGA 市场占有率最高的两大公司 Xlinx 和 ALTEra 生产的 FPGA 都是基于 SRAM 工艺的,需要在使用时外接一个片外存储器以保存程序。上电时,FPGA 将外部存储其中的数据读入片内 RAM,完成配置后,进入工作状态;掉电后 FPGA 恢复为白片,内部逻辑消失。这样 FPGA 不仅能反复使用,还无需专门的 FPGA 编程器,只需通用的 EPROM、PROM 编程器即可。3 L+ `  _+ k; x
, G: l/ I6 K$ P: U
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-28 20:29 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表