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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

/ n5 G# c$ N% ?  c1 b
9 s, {# }* j- |9 H* O9 S图 1& S! y7 @1 L& T2 d2 n) {
而在 FPGA,用户首先写出“y=(a&b)|c”代码,软件工具(QUARTUS、ISE 或 VIVADO)分析这一行代码,得出 a、b、c 不同值下(共 8 种不同值),y 的值分别是多少。5 F( k: D9 p8 l4 v2 R9 ~
+ d& ^+ E( i$ p2 I5 {( f: g1 g' m7 _7 W

% `# E5 w' R/ x- {/ }
9 F0 F! l, r( C# b: c8 I$ ?然后软件工具将结果写到 LUT 上,从而实现了该代码的功能。下图就是 FPGA 的实现基本结构。
6 o8 m- C: J  @1 tLUT 就像一个 RAM,abc 则相当于地址,通过 abc 的地址就得读到值赋给 y。% P) k# u; y: q) v& V& m$ L; }

7 G; w" s! |' b9 O* M
( ]8 P. r8 F6 e0 f8 L9 ~2 x! T2 P* b$ _3 ?# }! Z! p* C- \- D2 Z2 H
图 21 c4 i) Q2 x' u; A2 r
3  更为复杂的 FPGA 架构 架构5 A, P6 W# |3 q* O
赛灵思公司在 1985 年推出的第一块 FPGA—XC2064 包含 8×8=64 的逻辑块阵列,每个逻辑块包含一个四输入查找表及其它一些简单功能。由于它们的容量非常有限,因此早期的 FPGA 只用来执行一些相对简单的任务,比如集中一些胶合逻辑,或实现基本的状态机。$ }% n$ R5 T3 D" O* o
随着时间的推移和工艺节点的进步,FPGA 的容量和性能不断得到提高,功耗却不断的下降。直到大约 2006 年以前广泛使用的一直是四输入查找表,一些高端器件可能使用六、七或八输入的查找表。这些大家伙可能被用作一个大的查找表,或分裂成许多更小的功能,比如两个四输入的查找表或一个三输入一个五输入的查找表。在实际的高端器件中,这种可编程构造可以描述相当于百万级(有时甚至千万级)的原始逻辑门。
$ H" S3 y0 j; V4 h如果某个逻辑功能(比方说计数器)是用 FPGA 的可编程构造实现的,那么这个功能可以被说成“软功能”,我们称之为软内核。相比之下,如果某个功能是直接用芯片实现的,则被说成“硬功能”,我们一般称之为硬内核。软内核的优势在于,你可以让它们做你想让它们做的任何事,注意,是数字功能,不包括模拟功能。硬内核的优势是它们占用较少的硅片面积,具有较高的性能,并且功耗较低,并且硬内核可用于实现模拟功能。例如锁相环的倍频功能,这需要用于模拟电路,所以这一部分是在FPGA 内部用硬件来实现的。
6 e: K3 Z5 ~2 z" }% F4  带嵌入式处理器的 FPGA
8 c4 \/ W2 L+ _" D: V! L我们可以用 FPGA 中的普通可编程构造做的事情之一是,使用其中的一部分实现一个或多个软处理器内核。当然,你可以实现不同规模的处理器。举例来说,你可以创建一个或多个 8 位的处理器,加上一个或多个 16 位或 32 位的软处理器—所有处理器都在同一器件中。如果 FPGA 供应商希望提供一个占用较少硅片面积、消耗较低功率但性能更高的处理器,解决方案是将它实现为硬内核。现在流行的 ZYNQ,就是由赛灵思公司推出的,内部集成了 ARM硬核的FPGA 芯片。考虑下面所示这个例子:2 Y. A% M2 C/ k+ M$ z' f

$ O9 V- k: @$ A% H; f% q
$ `0 M6 \4 {1 }# E' J8 U7 _) T: S+ Z! N8 Y  |7 o# \; H
图 39 D! M" x/ c1 f- Q/ r1 [8 n0 Z5 X

' i! v# R) a: H7 A; ~图 4:一种新的 SoC FPGA
# e5 `3 n( r0 B3 V/ m* f这个芯片完全以硬内核方式实现的双路 ARM Cortex-A9 微控制器子系统(运行时钟高达 1GHz,包含浮点引擎,片上缓存,计数器,定时器等),以及种类广泛的硬内核接口功能(spi,I2C,CAN 等),还有一个硬内核的动态内存控制器,所有这些组件都利用大量传统的可编程构造和大" N& p/ z. w4 b9 d* t+ e; [4 j
量的通用输入输出(GPIO)引脚进行了性能增强。1 b0 Y& `4 b! ?2 m/ N4 T
如果需要高速、高性能的处理器,并且需要实现逻辑编程时,传统的方法是在电路板上放置处理器(如 ARM、DSP等)和 FPGA,ARM 或者 DSP 工程师实现软件部分,FPGA 工程师实现可编程逻辑部分,两者协同合作。现在最新的方案,就可以使用 ZYNQ 一个芯片,以更低的功耗、更高的速度实现上面的功能。. Q. E( }/ i5 F1 m/ L1 p
如果是 ZYNQ 单芯片方案,是不是意味着只需要软件工程师或者 FPGA 工程师独立工作就可以了呢?笔者现时所了解的情况是:FPGA 工程师负责搭建周边电路,如 ARM 的接口、时钟配置等,还负责可编程逻辑部分的开发。而软件部分仍然还是软件工程师负责。这主要原因是,FPGA 逻辑开发和软件开发都是专业性比较强的技能,非常少的工程师能同时掌握这两个技能。当然,这里说的掌握性能,是专业性的、能应用到企业项目的技能,只是接触一下的不算。
% r6 m% _3 I4 {5 @( ]/ Q
' q3 b5 `4 d9 j- H5 编程方式 编程方式$ y/ i6 Z1 w5 q
FPGA 是由存放在片内的 RAM 来设置其工作状态的,因此工作室需要对片内 RAM 进行编程。用户可根据不同的配置模式,采用不同的编程方式。FPGA 有如下几种配置模式:
8 F( r4 j9 s* N/ L4 O+ J* @. z8 @1、并行模式:并行 Prom、Flash 配置 FPGA;
/ q- A+ t' u* K" Q- d, y2、主从模式:一片 PROM 配置多片 FPGA;
% {2 J* T/ D+ o' d3、串行模式:串行 PROM 配置 FPGA;
# K& Q  }/ s0 {- l; J* }7 T4、外设模式:将 FPGA 作为微处理器的外设,由微处理器对其编程。
1 m5 {' H  @0 u/ i目前,FPGA 市场占有率最高的两大公司 Xlinx 和 ALTEra 生产的 FPGA 都是基于 SRAM 工艺的,需要在使用时外接一个片外存储器以保存程序。上电时,FPGA 将外部存储其中的数据读入片内 RAM,完成配置后,进入工作状态;掉电后 FPGA 恢复为白片,内部逻辑消失。这样 FPGA 不仅能反复使用,还无需专门的 FPGA 编程器,只需通用的 EPROM、PROM 编程器即可。
: ~& v9 ?: ]7 _* o
! e6 b$ u( B  C& |6 W6 ]6 F; \
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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