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

FPGA是什么?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2023-1-12 14:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x

% X/ U, t# f% r" B4 U& {# bFPGA是个什么玩意?- T6 `1 X& D& j0 m2 c" T# B

" q. L) g  [2 M$ [
! \* W  s8 s0 c: x! e+ ?' @0 K& i$ Y$ ]2 x& R: }
1 R# T8 v( w7 G6 M. Z0 U! }0 a1 Q1 q
首先来说:* J- u) V" z# E- @* q* s" A, D
$ ]1 }! {* M+ X6 P7 v
$ i6 _% J% r' n8 X9 M
* x: C) _' \" i7 _+ B+ z6 f! [FPGA是一种器件。其英文名 feild programable  gate arry 。: a4 P" L1 C3 A6 N9 |: u
" u9 D! Z: m* Q+ [  |' E; b; b# {- t% F5 I7 c' ?2 a! i3 _0 L5 J, v3 v. R, ~
! ~4 Q6 J0 ?' o" r. @+ {4 o4 W% y2 Z! y1 Q2 g. K8 X
很长,但不通俗。通俗来说,是一种功能强大似乎无所不能的器件。. G) U% i! |* |# M  ~, J9 u1 x$ r7 Z/ z* N
- \+ Z1 d$ v) y7 M/ t
, }- H1 v9 L" O5 {& {
6 A4 A- _! Z* Z% [' r# o3 P通常用于通信、网络、图像处理、工业控制等不同领域的器件。就像ARMDSP嵌入式器件一样,成为无数码农码工们情感倾泻而出的代码真正获得生命的地方。只不过,一样的编程,却是不一样的思想。嵌入式软件人员看到的是C。而FPGA工程师看到是硬件描述语言,verilog或VHDL。软件看到是函数、对象、重构。FPGA工程师则是模块、流水、复用。从现象上看,都是代码到下载程序再到硬件上运行。不能只看现象而忽略本质。FPGA 开发本质上是设计一颗IC,“**的身子,丫鬟的命”不是所有verilog/VHDL代码,都能获得青睐去流片成为真正的芯片,而更多的则成为运行在FPGA器件上,成为完成相同功能的替代品。其实现的功能却一点也不逊色于百万身价流片的近亲。从而成为独树一帜的行业。9 W+ w( u6 f+ {4 f6 m, d9 K. T4 w) R
) Q( r% c+ ^$ L2 k( I0 F$ k( N* G! [. p
; A0 `. E# |5 |# `! A- K
$ i* H9 D" U$ U, Q3 X* CFPGA开发的流程,是通过verilog/VHDL等硬件描述语言通过EDA工具编译、综合、布局布线成为下载文件,最终加载到FPGA器件中去,完成所实现的功能。
5 f' z, `1 r" j( L6 z5 t0 M2 X  A1 V9 {" E; `

1 @) J* v7 z, _9 a6 _( R5 K那硬件描述语言描述的是什么?这里描述的就是组合逻辑电路和时序逻辑电路。组合逻辑电路就是大家所熟知的与门、或门、非门。# m* w9 }# ?, k) N, c% j# ~

; M2 n6 g6 h5 u4 i% E; c( ^, u5 e
时序逻辑电路则是触发器。数字芯片上绝大部分逻辑都是这两种逻辑实现的。也就是基本上每个电子行业的人所学过的数字电路。6 o+ C/ r/ _% D1 g2 M8 R
" r9 ]$ }; e/ v: f% }5 F% ^$ a( R2 X6 \/ e' D7 i" \: C% ~
  Y6 D! q, H  c4 O
! C0 G: ~/ a* G+ j: F! W顺便说一下,感谢香农大师,在其硕士毕业论文<继电器与开关电路的符号分析>就奠定了数字电路的的根基。只不过在FPGA中,与或非的操作变成了查找表的操作。于是所有的数字电路变成了查找表和寄存器,这就构成了FPGA的基础。查找表负责逻辑实现,寄存器存储电路状态。二者配合,双剑合璧,天衣无缝。这是最初的FPGA的雏形。 1 g) q7 r0 n% x) N8 R
$ T* F: h; w5 s* d9 ~6 R" f8 h! [4 X8 W; n# _  W$ d2 ^
' T. s* m. K3 @! [) V. a5 F  M! Y8 x
* T0 S; q6 B: i) p现代FPGA内部出了查找表和寄存器之外,还有RAM块,用于存储大量的数据块,这是因为RAM块较寄存器来存储大量数据更能节省芯片实现的面积。FPGA内部的时序电路则需要时钟的输入,通常FPGA内部需要时钟种类较多,因此需要在片内产生所需的的相关的时钟,如不同频率,不同相位的时钟,因此时钟管理单元DCM/PLL也是必不可少的内部部件。4 A8 M2 `" ]/ K- N6 G( x# v/ c% [1 O  `- J9 e( S1 B
! W/ g7 j/ E( O3 [% a
- L  x! ~; n( ~9 m0 n( t. Y
" b' o: r& w+ x/ L; _/ ?除此之外,FPGA内部还包括接口I/O,I/O分为普通I/O和高速I/O,高速I/O支持例如高速的SERDES,用于实现XAUI,PCIE等高速接口,这些接口动辄几Gbps到10Gbps以上。此外种类多种多样的硬核IP也是各FPGA厂商差异化竞争利器,例如POWERPC、ARM等硬核IP。从而构成CPU+FPGA于一体的集可编程性和可重构的处理平台。因此,相对来所,FPGA虽然发展有二三十年的历史,其基本架构一直不变不大。      3 Q. Z9 w: j+ ~2 c  G" A* V, J& K7 d- R
6 l- U& K0 D: P- B4 V0 e* E5 S
& t) K! h: i# o/ b  I, Y2 U# O. }! P1 m1 ~" \2 j- f) h; d4 i& a2 i8 H
回到问题开始的地方,FPGA的英文翻译过来是现场可编程门阵列。这是相对ASIC来说的,ASIC的硬件也可看做是门阵列,但是其是非可编程的器件。流片完成其功能就固化了,而FPGA的可编程性就在其能够重新下载配置文件,来改变其内在的功能,这就是其可编程性的由来。. d0 i' M9 e* Y* _* {1 h! b8 \, v. L( H( z% b1 q" R" L* U  y$ z" [
4 o* _4 B4 `" C( ~( @) Q  t- Y- X& D$ \! Q7 k) r

, U) B& O0 i- P  J从前端开发流程来说,FPGA和ASIC开发并无二至。由于ASIC开发一次性投入成本较高,FPGA无疑是一种经济的替代方案,用于实现的高速的数据并行处理。如业务能够支撑大规模应用并且协议固化,则能够分摊成本的ASIC实现就有成本的优势。4 D0 _5 C. h" n

' P/ ?( z6 x( w, Q' `3 r4 a9 m0 E. S( U  B
FPGA作为一种器件,技术上主要垄断在少数大公司手中,那就是双巨头ALTERA和XILINX。除此之外还有一些份额相对较小的公司,例如ACTEL和LATTICE。不止是FPGA的硬件芯片,其配套的EDA工具技术壁垒更高。因此相对于CPU来说,FPGA的国产化更不乐观,不过已经有国内的厂商来从事这一行业,例如国微和京微雅格等,也在一些细分市场上推出自己的FPGA产品。  k1 n" V$ Z8 H% {! v0 H2 }+ T; B
' a1 Z- D6 K7 e1 e
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-24 06:05 , Processed in 0.109375 second(s), 27 queries , Gzip On.

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

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

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