|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1 FPGA「是什么」( p3 a# n0 J" b1 Q/ ]
FPGA(Field-Programmable Gate Array),即现场可编程门阵列。 ) } t3 i; b5 N' a- U9 |2 z1 b% ]
简单的来说,他是一个可以自己开发功能的芯片(当然这句话没那么严谨,不过可以暂时怎么理解),而且功能强大,一般开发中,当CPU使用,部分功能要求高的,则为副芯片,处理一些特殊信号。 ( @4 I' X: B% p8 e; p
目前市面上基本被Xilinx、Altera(现在已经被Intel收购了)两家给垄断了,因此后续如果用到一些FPGA往往绕不开得去这两家的官网爬爬资料。 - j q" t3 S6 V
只要记住:
t' b; G! ?! FFPGA就是一个披着羊皮的芯片
" } Y* ]- ?6 d! E- ~, L& [! `" t, D/ h
2 \0 c* R4 }) ^! R- ~* q5 ]2 FPGA「能干嘛」2 r% v' n5 [" M o2 v F9 H
可以使你的机器人更加智能化,例如更加听得懂人话。. a6 T7 n, k- W, ^
也就是说在数据采集,和数据处理这一块FPGA有着过人的本事 ,总的来说: ! q( S, r8 Z. U, P% P
FPGA在数据采集领域的应用 & {2 b1 [7 P1 _
FPGA在逻辑接口领域的应用
/ C8 W& T. P3 C- Z* T( DFPGA在电平接口领域的应用
3 Y( w- M6 Q" D2 g/ H
" t& t3 U+ |4 Q3 `8 _( ^2 |相对应着的意思就是各行各业的电子产品,都可以用到他 ) [7 {9 O' b+ Z' o* I' r! d' y
而比较经典则是:结合CPU和FPGA来做图像处理,这个也是目前比较热门的一个分支。
" N0 S. D, F; E; v C. L% k
( J6 @1 o5 y& Z3 FPGA「怎么干」 M/ ?/ T) p5 `' w
讲的怎么干,肯定离不开FPGA的原理了,可是原理有一大堆,笔者总结了一下:
. P1 H2 R X& y- u6 ^" r( H6 z0 `利用FPGA内部逻辑模块组成各种需求的IO
8 p6 Q; Q4 ` i; Q4 U* `再由IO组成各种所需求的功能. h9 J" U- J# `2 g1 m( a& h
. M1 _- ]9 G7 V/ K1 C; m! f不过每个人对原理的理解都不太一样,因此将FPGA的完整原理也贴上来。' s0 R; J& V k; a
- ~1 c6 i' m' A
首先知道FPGA的是由什么组成的
' k7 q% X& G0 q; Z R: O; w9 t. R
) u1 w& K5 ~0 W" K- C
. u) R$ [5 r. K" k8 F
然后你你可以看以下长长的原理描述了。
. q' }# D2 I2 N- g
0 g# I2 L7 r/ E1 `5 L& Z原理: " B2 j) K4 @! ~
FPGA采用了逻辑单元阵列LCA这样一个概念,内部包括可配置逻辑模块CLB、输出输入模块IOB和内部连线三个部分。 $ H; C+ s' q( q4 Y9 c
FPGA利用小型查找表(16&TImes;1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了即可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
' k9 P9 \) G! g: WFPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能 ( W! y1 @ h' p* t8 K) V+ O/ I/ Z0 B
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。 . @3 R+ b- f8 A9 U: D2 ?- v: o
掉电后,FPGA恢复成白片,内部逻辑关系消失, ) l( U" q+ B& u2 n# x# t( H, j
因此,FPGA能够反复使用。 + Z9 `* G1 |: j. R; B
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
( @, `# ~- g; ^% f5 k1 R! U当需要修改FPGA功能时,只需换一片EPROM即可。 0 @ a, T& s, R5 T0 h" E' v
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。
Z# ] T F8 U W" _" p/ E1 M0 Q6 B0 {7 y" }8 B/ K/ J8 r$ x/ B# x8 B
1 ^8 _1 @, A; t; R6 G! Y
4 FPGA「怎么学」2 h( Y* _% m) K5 [: [: ~3 l8 C0 u
刚刚原理都那么长了,那FPGA岂不是很难学!!!
! k9 T7 A2 E6 z+ h/ z+ X" D& F原理那么长,不过笔者理解就两句话,因此入门学习也是可以由难化简。 / L: i4 ^2 S8 @; v5 D' H0 Q
何况FPGA入门的话,是非常的简单的! # G( x* g2 @7 A. U
很多时候人们和网上都告诉你学习要分解,分解成小知识点,然后学习FPGA笔者则认为你要有个系统和整体的观点。 / B, u2 }1 w* O* X' h
笔者去Altera官网,下载了一张他官方的教程课程图,由于课程比较贵,有些课程高达695刀,因此不贴链接来祸害大家的钱包了。
* E+ Z8 P1 M9 n, [9 q- B因此我们可以借鉴此图来建立自己的入门知识体系和系统观点。) N# E/ K! T! A: W" u4 S6 _
: R9 u O: B/ R' H& o
! r* ]+ p( k$ Y8 x( g, y# D& y8 {0 A% ?( m2 ~9 B8 l
1、首先有两个基础知识,一般指数电基础和硬件语言(Verilog或则VHDL) # L# }+ j6 s' `- {+ ]/ l
2、然后就学分支上的东西,就是你想往硬件设计发展还是、IO设计、DSP开发还是嵌入式方向。
, L6 I. A1 E8 G# n! x# s& `. e) i# o4 B. b$ x; X$ s3 W
注:由于笔者工作偏向于硬件设计和IO接口这两者,可能在聊基础知识的时候,思想会偏向于这两者。5 y% S6 a. w y. c }) H. u' J5 Z
& W, c; d9 S: i8 e% j" ^9 V9 a# Q* v |
|