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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

5 C" r8 n4 I3 U$ T* J2 H' Q第一章 FPGA  简介+ y+ L1 D! ^+ C. o
1  什么是 FPGA
; G/ F8 `7 q( k- b1 o0 T! u9 IFPGA 的官方解释是 : Field-Programmable Gate Array,即现场可编程门阵列,它是在 PAL、GAL、cpld(不用读系列)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。1 e0 o8 }/ u& I
$ |0 \/ w  v; a3 H7 d" {
可以将 FPGA 理解为大量的逻辑门阵列,用户可以自由组合以实现不同的电路功能,即 FPGA的可编程特性。相比于冯诺依曼结构的 CPU、GPU 等通用处理器,FPGA 具有效率更高速度更快的优点;相比于专职专用的 ASIC,FPGA 则具有开发难度小,开发周期更短的优势,更适用于复杂多变的数据中心等应用0 r* h5 F6 \$ G  x2 y) U
但是 FPGA 也不是万能的,优势有时候也是劣势。虽然 FPGA 相比于 CPU 效率更高、功耗更低的特点,但是易于开发程度远远不如 CPU;虽然相比 ASIC 开发周期更短,但是也存在着资源浪费,成本过高、性能较差的问题,不能真正的替代 ASIC。
" H% w5 c& x, ?. \* @& d4 g# p% ?. T* o3 G8 s
2 FPGA 的工作原理 的工作原理
' K1 k: Y5 X2 @9 r/ |- n由于 FPGA 需要反复烧写,所以他实现组合逻辑的结构不能像 ASIC 那样通过固定的与非门来完成,而只能采用一种抑郁反复配置的结构。查找表(LUT)可以很好地满足这一要求,目前主流 FPGA 都采用了基于 SRAM 工艺的查找表结构。通过烧写文件改变查找表内容的方法来实现对 FPGA 的
& b1 t1 v, E: N1 c! f. g重复配置。根据数字电路的基本知识可以知道,对于一个 n 输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在 2n 种结果。所以如果事先将相应的结果存放在一个存储单元,就相当于实现了与非门电路的功能。FPGA 的原理就是如此,他通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。查找表(Look-Up-Table)简称为 LUT,LUT 本质上就是一个 RAM。目前 FPGA 中多实用 4 输入的 LUT,所以每一个 LUT 可以看成一个有 4 位地址线的 RAM。当用户通过原理图或 HDL 语言描
( A# I1 D9 x5 z7 o! N0 X; D述了一个逻辑电路以后,FPGA 开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查找表,找出相应的内容,然后输出即可。
" `) c+ v. }7 j1 ^/ e& v- `以实现 y=(a&b)|c 的功能为例。如果是 ASIC,下面就是基本的实现结构:) C2 W$ B7 {2 ]2 ?8 l& w2 X
9 k" E: q# r$ d( G+ i" ?- D9 W. J
2 ]5 E  S, W4 }+ u6 [6 U+ w
9 Y2 W4 M7 B  N$ O* U; R
图 1
# [$ @, n3 H6 m而在 FPGA,用户首先写出“y=(a&b)|c”代码,软件工具(QUARTUS、ISE 或 VIVADO)分析这一行代码,得出 a、b、c 不同值下(共 8 种不同值),y 的值分别是多少。) C/ }" z- k9 M3 F9 D- [4 w

5 ^& m$ B- e. U& @+ i4 q6 w* o. \7 Z6 z

1 n9 b% O) r0 n2 k( I0 v然后软件工具将结果写到 LUT 上,从而实现了该代码的功能。下图就是 FPGA 的实现基本结构。
3 Y; F/ I0 ~" q& x0 G; ]7 K# j7 ILUT 就像一个 RAM,abc 则相当于地址,通过 abc 的地址就得读到值赋给 y。
: X0 {, l( ?# h$ Q" ]4 r" s9 j  E! i- N- T* ~5 v

9 m! y6 |( q7 |. W+ T' a- ^, b" T' J9 ~+ m- N$ u( a2 U* _
图 2; Y& Y  I$ L% m" E+ G7 ?! d  ]7 f3 T- v
3  更为复杂的 FPGA 架构 架构- C8 L  A0 L1 x  a9 y6 l8 Q
赛灵思公司在 1985 年推出的第一块 FPGA—XC2064 包含 8×8=64 的逻辑块阵列,每个逻辑块包含一个四输入查找表及其它一些简单功能。由于它们的容量非常有限,因此早期的 FPGA 只用来执行一些相对简单的任务,比如集中一些胶合逻辑,或实现基本的状态机。( c9 j) D5 o+ M3 J8 h  ?
随着时间的推移和工艺节点的进步,FPGA 的容量和性能不断得到提高,功耗却不断的下降。直到大约 2006 年以前广泛使用的一直是四输入查找表,一些高端器件可能使用六、七或八输入的查找表。这些大家伙可能被用作一个大的查找表,或分裂成许多更小的功能,比如两个四输入的查找表或一个三输入一个五输入的查找表。在实际的高端器件中,这种可编程构造可以描述相当于百万级(有时甚至千万级)的原始逻辑门。0 x# j& Q% W  A5 @% o% b  b
如果某个逻辑功能(比方说计数器)是用 FPGA 的可编程构造实现的,那么这个功能可以被说成“软功能”,我们称之为软内核。相比之下,如果某个功能是直接用芯片实现的,则被说成“硬功能”,我们一般称之为硬内核。软内核的优势在于,你可以让它们做你想让它们做的任何事,注意,是数字功能,不包括模拟功能。硬内核的优势是它们占用较少的硅片面积,具有较高的性能,并且功耗较低,并且硬内核可用于实现模拟功能。例如锁相环的倍频功能,这需要用于模拟电路,所以这一部分是在FPGA 内部用硬件来实现的。) f. g0 ~. }4 Y/ F- R
4  带嵌入式处理器的 FPGA
5 r. V& m9 t$ p/ o我们可以用 FPGA 中的普通可编程构造做的事情之一是,使用其中的一部分实现一个或多个软处理器内核。当然,你可以实现不同规模的处理器。举例来说,你可以创建一个或多个 8 位的处理器,加上一个或多个 16 位或 32 位的软处理器—所有处理器都在同一器件中。如果 FPGA 供应商希望提供一个占用较少硅片面积、消耗较低功率但性能更高的处理器,解决方案是将它实现为硬内核。现在流行的 ZYNQ,就是由赛灵思公司推出的,内部集成了 ARM硬核的FPGA 芯片。考虑下面所示这个例子:/ r1 f. W4 K' c9 ]1 |5 {
' ]# y$ d5 B4 h
$ u# G4 p1 t6 J$ x

: }3 z9 \& s1 {- x图 33 L1 t; n$ _7 Q

; `) K* e6 s$ @& d6 c图 4:一种新的 SoC FPGA) I3 N/ D2 f# ~$ c) b; q0 I) c6 K
这个芯片完全以硬内核方式实现的双路 ARM Cortex-A9 微控制器子系统(运行时钟高达 1GHz,包含浮点引擎,片上缓存,计数器,定时器等),以及种类广泛的硬内核接口功能(spi,I2C,CAN 等),还有一个硬内核的动态内存控制器,所有这些组件都利用大量传统的可编程构造和大8 O6 m9 a3 o) E1 H! L
量的通用输入输出(GPIO)引脚进行了性能增强。
6 Z9 {5 i, v: Z" W如果需要高速、高性能的处理器,并且需要实现逻辑编程时,传统的方法是在电路板上放置处理器(如 ARM、DSP等)和 FPGA,ARM 或者 DSP 工程师实现软件部分,FPGA 工程师实现可编程逻辑部分,两者协同合作。现在最新的方案,就可以使用 ZYNQ 一个芯片,以更低的功耗、更高的速度实现上面的功能。6 I& v: [. ?2 h6 I4 _  C
如果是 ZYNQ 单芯片方案,是不是意味着只需要软件工程师或者 FPGA 工程师独立工作就可以了呢?笔者现时所了解的情况是:FPGA 工程师负责搭建周边电路,如 ARM 的接口、时钟配置等,还负责可编程逻辑部分的开发。而软件部分仍然还是软件工程师负责。这主要原因是,FPGA 逻辑开发和软件开发都是专业性比较强的技能,非常少的工程师能同时掌握这两个技能。当然,这里说的掌握性能,是专业性的、能应用到企业项目的技能,只是接触一下的不算。! E4 W& F9 w' `+ u& E1 i0 D

; z2 B0 v8 m9 _; ^. F5 编程方式 编程方式( {; }4 \; i- X  F/ i' L
FPGA 是由存放在片内的 RAM 来设置其工作状态的,因此工作室需要对片内 RAM 进行编程。用户可根据不同的配置模式,采用不同的编程方式。FPGA 有如下几种配置模式:3 x. Z0 T0 y# l6 M
1、并行模式:并行 Prom、Flash 配置 FPGA;/ ^7 J  l  M6 Z, K
2、主从模式:一片 PROM 配置多片 FPGA;
7 E9 f! _( n* @& W9 V3、串行模式:串行 PROM 配置 FPGA;
8 t2 [1 i4 N. [! e9 `4、外设模式:将 FPGA 作为微处理器的外设,由微处理器对其编程。) G) @, Q2 c2 U! F6 |. Y
目前,FPGA 市场占有率最高的两大公司 Xlinx 和 ALTEra 生产的 FPGA 都是基于 SRAM 工艺的,需要在使用时外接一个片外存储器以保存程序。上电时,FPGA 将外部存储其中的数据读入片内 RAM,完成配置后,进入工作状态;掉电后 FPGA 恢复为白片,内部逻辑消失。这样 FPGA 不仅能反复使用,还无需专门的 FPGA 编程器,只需通用的 EPROM、PROM 编程器即可。
' C- [# {& n- k0 M3 l4 B! R5 r* q7 K; m- N* w( N
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-8 18:26 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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