|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
工欲善其事必先利其器,开发FPGA的第一步,当然是选择一片符合设计需求的芯片。
4 H. B# ] [' O. s, d器件特色9 Z' o( L9 t1 G! N. x2 n
7 K% S& \4 D2 N% q: ?1 q" }' }/ H R选片第一个关注的应该是FPGA器件的专用资源。5 \" c7 G, F! ?
# J6 i0 Z s* G4 @6 W& M0 v
例如是否需要高速接口,如果需要的话,需要多少个通道,各个通道需要的最高收发速度是多少。! Q9 T% d8 l! A8 t# a
9 y: n, K; ^5 ^3 h$ y$ Q- k
同样,如果需要实现运算量较大的算法模块时,则要求FPGA器件需要有大量的DSP模块,并拥有足够多的RAM块来配合这些DSP模块。+ v {4 N" t& ]
规模大小% T# x! M' @* t
2 m5 }6 G/ o) ~
4 m0 W5 r* T- {8 t
; r3 c2 n" h$ m7 S5 }' X6 U& A在选型时,因为FPGA设计还未开始,很难确定FPGA器件的规模。' |. ^& |5 A* S8 A; Z( D
+ w( f8 f# G7 w% |, F
通常的做法是,针对本次设计中想要用的FPGA器件系列,重新编译之前的某些功能模块,以便获得一个大致正确的规模估计。
. U6 ^% R$ S% V
8 J, Y7 H" {- T$ |2 {" ~如果设计中使用了IP,这些IP核也需要编译后,加入到总面积估算中。2 m$ ?9 r& j) _+ N9 i" Z) H9 t
: l! {% ~+ |" K% ?: q再将需要加入的新功能进行设计估算。2 {6 \: x! i# V9 \- B% {
- E. ` O6 v+ [0 D) P$ S0 ~
两方面加起来后,在此基础上预估再增加20%-30%,基本上可以满足之后的设计需求。$ X2 s1 m* b1 {
0 y9 b/ N3 c* ^. y2 ^+ o- Y
甚至有时,现有的嵌入式逻辑分析仪也需要耗费内部存储模块,调试过程的资源消耗可能也需要考虑在内。
6 I; n5 b4 d* ~) I# x7 j3 z- X3 a6 b' T1 f2 e
若FPGA留有余量:5 ~7 H% Q8 c9 H, {+ m
& g+ n4 _5 q5 f% O, O# m d3 z
避免时序收敛对设计的影响,减少开发周期,快速进入板上调试阶段;9 ^1 B" j* o7 u* E, ?* b# M
. C. c6 ~8 \# @7 U
则对设计后期修改或产品版本更新所增加的逻辑单元,就能比较容易的被接纳;
: M- ]. l% D2 O' N* q- `" i& t3 d5 H9 }2 { B# S& j6 F H
设计在FPGA上正常运行后,如果FPGA上有大量未使用的资源,此时可以考虑换区一个比较小的器件以降低成本,这时候要注意的就是引脚在移植代码时的修改问题。. t+ P ^6 u* _/ P9 b4 \2 G3 o
速度需求
" x6 A$ v" l4 v- s$ E首先需要分析功能需求,然后在平衡资源与速度后,估计速度需求。同样也可以根据之前的设计来确定,根据FPGA供应商提供的datasheet,在最大速度的基础上,留出足够的安全余量,确定选型。
- g( ~1 a' w4 e0 J! n
. @0 V2 n. V0 B6 ]当然,也可以直接选择同类型的速度等级最高的器件,尽早的进入设计调试阶段。等功能完善之后,再选用一个较慢的FPGA器件来做降成本的设计。
' }* L7 Z; G" T# E! _& A7 X引脚
6 w. x3 R# {% y \: d3 H5 k& E+ ?- h: j8 O& H% x
设计需要I/O接口类型,直接影响到FPGA器件所需要的引脚数目和封装类型。在此必须知道I/O标准和驱动强度,以及外部的接口电气标准。
0 a5 B1 f9 T& c( Q1 y A% K2 \" S/ T B, B& s
同时需要关注设计中的信号完整性问题,这些都需要与硬件工程师讨论后,进行确定。5 i G$ K# Z; }3 f4 \* j
" j4 r% W: B$ x I6 j' B' i
甚至有时候调试阶段,也需要预留部分引脚作为调试引脚(内嵌逻辑分析仪的资源不够时)。
@* x6 X' S8 [' dIP的可用性
! Y2 b, |% e4 p& F4 {. ]$ K! f7 {
1 Q7 K8 M, @2 N5 G$ @* J包括两方面:
, v0 \' o% Q7 t. J4 ` L" h
: R* _- V) Y8 F$ W5 O3 u# [一是芯片厂家的IP核的丰富性,如果提供足够多的IP核,覆盖我们的设计,当然是最好不过的;
+ E; e, V( W% F8 S$ r% C) E
3 Z6 m' F6 H1 o) X! f: |7 \二是芯片厂家是否愿意以可接受的价格(更多可能是免费)的方式将这些IP核提供给我们。( c) k( E$ [# A/ g
. z% t; X9 W8 N
因为IP核的使用可以大大减少开发周期,缩短工时,降低开发成本,因此选型时也需要考虑这部分。
% K0 n& |# S8 P5 b器件的可用性. @# E3 r7 p+ h$ p% j
/ |4 I0 X) x x7 F: n) U; k
一些老旧器件可能会面临停产的风险,如果开发周期超过两年以上,建议选择最新或者次新的器件,因为几年后,目前最新或者次新的FPGA器件在经济上是比较划算的,也不用担心停产,导致供货不足影响产品出货;8 x- g3 Q& B3 o
功耗" K# ?% ~5 O" C( ]$ |. ?1 |
5 a( C/ d: v' L3 V+ n根据设计的功能需求,确定FPGA需要使用的电源。例如对IP核、I/O、transceiver等模块,提供各自独立的电源层,FPGA需要的电源个数越多,电路板上的元器件成本就越高。
2 y* ~+ [ z) R' a4 u" _! H+ G3 X. ?8 R* h! ~- V- a0 j' m
所以需要根据之前的设计、FPGA供应商提供的功耗评估软件等估算将要消耗的功耗,从而确定所需的器件。
5 n/ h7 B& }2 H其他/ n: \6 T& d* ~5 X, P# B& `
9 `2 t n5 r1 I5 [3 c
其他方面包括:, z6 ~% x) q3 c; n
- M0 {5 A" b9 X' }4 {+ f/ ^
器件的工具软件易用性,对于一些国产的FPGA器件,其开发软件稳定性较低,可能会额外增加开发成本,提高风险,因此在选型时,需要注意;
# C! |4 f) {+ {+ e0 t8 u, c: q" ]8 P% J. g4 z" s( L
器件在高低温、强辐射等极端环境下的性能表现;
6 x$ [; m8 n* n5 T. s# h7 ~/ B4 w. l
产品的继承性,一些常用功能模块的可移植性,考虑选型时,可能需要多考虑可以继承上一代产品的可用器件。
$ t: P S, e7 P7 v+ w* N% J, d) e$ {5 `% R ]4 }& N, r0 U! m
总之,在选型的时候,为自己和同事省事,为公司省成本。; j/ ^ |! {/ ^
$ D2 S6 A# }4 c8 t/ h: d$ h& E |
|