|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
工欲善其事必先利其器,开发FPGA的第一步,当然是选择一片符合设计需求的芯片。
: K8 T c: e* h+ c0 U1 `器件特色 {, J8 w' F) D. g& g5 [" C; g
* c7 W6 R3 X w4 ?3 c
选片第一个关注的应该是FPGA器件的专用资源。
5 t/ K+ ]+ y) {3 t! V. P* k# _8 g, H+ f0 ?
例如是否需要高速接口,如果需要的话,需要多少个通道,各个通道需要的最高收发速度是多少。: E, |6 f$ L* J3 C) G" ]* U
. J) u+ D: Y- D. K( `# y
同样,如果需要实现运算量较大的算法模块时,则要求FPGA器件需要有大量的DSP模块,并拥有足够多的RAM块来配合这些DSP模块。8 T M8 A% h/ q, P$ @
规模大小
( z1 y7 T+ f9 n5 x7 `7 Z% P6 y* X* b, D7 K" c
/ L- L4 T- u, A2 j6 [8 b" f
4 g! E5 |+ n* O: l在选型时,因为FPGA设计还未开始,很难确定FPGA器件的规模。" U7 i: D: t% }# c- y
$ J) [' d* B$ H0 A通常的做法是,针对本次设计中想要用的FPGA器件系列,重新编译之前的某些功能模块,以便获得一个大致正确的规模估计。& m) _7 P: O8 ~ v
4 P& U4 `: u5 M; @2 K0 h2 g8 A如果设计中使用了IP,这些IP核也需要编译后,加入到总面积估算中。4 ^1 I2 P5 r4 P
/ G5 U' A0 v0 |; R- i
再将需要加入的新功能进行设计估算。
/ P. d( y/ c8 U5 U% g$ B$ {2 d) V
" i- b! ~+ W) _8 c7 V1 {两方面加起来后,在此基础上预估再增加20%-30%,基本上可以满足之后的设计需求。
' |: b8 W, H+ p x* C& N4 u) u" X+ |6 L$ [
甚至有时,现有的嵌入式逻辑分析仪也需要耗费内部存储模块,调试过程的资源消耗可能也需要考虑在内。7 L6 K; E, s' x; E: A U
+ }; t4 F9 M R) x$ o
若FPGA留有余量:
) s1 }) S5 D) A7 _% r7 v7 z/ ]8 z& K
/ G8 R4 X, M y避免时序收敛对设计的影响,减少开发周期,快速进入板上调试阶段;4 }$ ~ W2 V; ?
& P+ \ b' X9 L# ~2 W则对设计后期修改或产品版本更新所增加的逻辑单元,就能比较容易的被接纳;" M) s1 U" K* X, L: P( S1 a& ~, e
S1 C# Z- x2 B8 T$ W设计在FPGA上正常运行后,如果FPGA上有大量未使用的资源,此时可以考虑换区一个比较小的器件以降低成本,这时候要注意的就是引脚在移植代码时的修改问题。( _7 B! y0 H' Z7 L- l
速度需求
3 G- }& ?6 W8 i首先需要分析功能需求,然后在平衡资源与速度后,估计速度需求。同样也可以根据之前的设计来确定,根据FPGA供应商提供的datasheet,在最大速度的基础上,留出足够的安全余量,确定选型。2 q6 c! M7 b }
& |- y- W2 b; h. s' ?当然,也可以直接选择同类型的速度等级最高的器件,尽早的进入设计调试阶段。等功能完善之后,再选用一个较慢的FPGA器件来做降成本的设计。
9 Y3 q2 I, o# P% |+ ?+ a9 [3 U引脚3 \6 E" F& D0 j* ]% ~7 J7 |
. C) W) [: ~( g. H: s- C
设计需要I/O接口类型,直接影响到FPGA器件所需要的引脚数目和封装类型。在此必须知道I/O标准和驱动强度,以及外部的接口电气标准。
6 ?; X% P3 g- x+ F9 M& y* j& ?* P4 z8 X9 r9 w5 B
同时需要关注设计中的信号完整性问题,这些都需要与硬件工程师讨论后,进行确定。2 R1 j2 O4 ^4 e/ S; Y D6 ^
' J0 G R" }/ j
甚至有时候调试阶段,也需要预留部分引脚作为调试引脚(内嵌逻辑分析仪的资源不够时)。' d8 o0 V; ^/ b( C0 y3 W8 g3 ^" b5 f
IP的可用性* S( K) d& M( Z+ M. r6 D3 i9 T
0 T: Z0 Y: W- `
包括两方面:: i' Q m; A. C8 U% W/ C* r
: V1 K/ L. x: U一是芯片厂家的IP核的丰富性,如果提供足够多的IP核,覆盖我们的设计,当然是最好不过的;
! Z& O5 p4 w1 l
' X0 [6 z7 A, Q6 U二是芯片厂家是否愿意以可接受的价格(更多可能是免费)的方式将这些IP核提供给我们。. z. `, [2 z, e
5 y: C" f2 Z, X1 J( [
因为IP核的使用可以大大减少开发周期,缩短工时,降低开发成本,因此选型时也需要考虑这部分。
: u4 }2 W2 x. P# u7 {器件的可用性
. @$ i- J" m' d( O8 ^; B& a
4 S8 k/ B5 f/ c! k" t7 T' W3 C/ Q* a一些老旧器件可能会面临停产的风险,如果开发周期超过两年以上,建议选择最新或者次新的器件,因为几年后,目前最新或者次新的FPGA器件在经济上是比较划算的,也不用担心停产,导致供货不足影响产品出货;
# h. o* i) ?( U4 z4 w$ y) S! b3 b功耗 R5 a- i4 j4 k
: ], [) {: ?( y; Y. b
根据设计的功能需求,确定FPGA需要使用的电源。例如对IP核、I/O、transceiver等模块,提供各自独立的电源层,FPGA需要的电源个数越多,电路板上的元器件成本就越高。
; B5 [4 E% T" O* n9 \, G/ v7 u# j( Q! d- {! s9 _
所以需要根据之前的设计、FPGA供应商提供的功耗评估软件等估算将要消耗的功耗,从而确定所需的器件。
/ m. m6 i7 @& G其他
% M/ ?* N m. L! X
9 f7 |$ i9 H2 i3 B2 n$ w其他方面包括:% H) v/ e" [. i+ k2 P% Y
5 A1 S, z! W4 z" a( l c; o0 \: \. \器件的工具软件易用性,对于一些国产的FPGA器件,其开发软件稳定性较低,可能会额外增加开发成本,提高风险,因此在选型时,需要注意;
* {4 f$ E; M5 U$ F4 ]$ A8 _; O' j, O& x6 p8 b1 L7 ~! m
器件在高低温、强辐射等极端环境下的性能表现;2 J: a& x; S# x. F: L5 [0 ^! n
. C, b7 `3 j1 G/ q产品的继承性,一些常用功能模块的可移植性,考虑选型时,可能需要多考虑可以继承上一代产品的可用器件。9 X' o) M9 A# r
2 V, {1 Y+ X- \' f% s2 c: e总之,在选型的时候,为自己和同事省事,为公司省成本。6 o& R4 G3 f- t( r3 b
3 H3 j( K! p8 u) N
|
|