EDA365电子工程师网

标题: FPGA 等效门数的计算方法 [打印本页]

作者: ttianyer    时间: 2012-2-17 10:04
标题: FPGA 等效门数的计算方法
FPGA 等效门数的计算方法                                        9 C, G7 X% }4 G; M5 @
1. 把FPGA 基本单元(如LUT+FF,ESB/BRAM)和实现相同功能的标准门阵列比较,
5 R0 \* b) c6 h+ i/ S) \0 p门阵列中包含的门数即为该FPGA 基本单元的等效门数,然后乘以基本单元的数目就
( _2 j6 }( F& K  U( m" G+ j6 F可以得到FPGA 门数估计值;& m# E/ h# L& E3 p$ ^. `
2. 分别用FPGA 和标准门阵列实现相同的功能,从中统计出FPGA 的等效门数,这种方' i+ g9 k, }$ z) {
法比较多的依赖于经验数据。& x8 s; N1 M. a; _/ i1 r% k' z
对于第一种方法,FPGA 包括LUT/FF/RAM 等资源,分析各种资源等效门数时,总原则% Q: ~6 }; x* a/ t% f
是等效原则,就是实现相同的功能,在标准门阵列中需要的门数就是FPGA 该资源等效门数,
" c+ E4 T4 J0 {/ Y  y例如实现一个带寄存器输出的4 输入XOR,在FPGA 中需要用一个LUT 和1 个FF 实现,在
( Z7 |( a6 A  y! i标准门阵列中一般要用21 个与非门实现,于是1 个LUT+1 个FF 等效于21 个门。对ESB8 S9 Q3 V: m) k+ h  V9 Y- p, {
(BRAM),由于用标准门阵列实  q: |- l& u8 b. e0 l  o; E) [
现1bit 的RAM 时一般需要4 个门,因此ESB/BARM 做RAM 使用时,1bit 等效4 个门,; H1 K: P2 j$ R9 |5 ?. G
对Altera FPGA 中一个2048bit 的ESB,等效门数为8K。光靠这些数据还不能比较准确地计0 @& ~- c3 W! q3 E2 q/ Z
算出FPGA 的等效门数。因为这只是一种简单情况,实际情况要复杂很多。例如,如果实现
( D" F0 I# _& l* b的是带寄存器输出地2 输入XOR,FPGA 也要用1 个LUT+FF,而标准门阵列只需要8 个! ^& q# A4 h1 o$ z
NAND,于是1 个LUT+1 个FF 只等效于8 个门。同时特定功能的实现,在不同的标准门阵# r/ o! m9 Z8 j* w5 Q
列系列中需要的门数也不一样,因此等效门的计算只能是个大概的数值。也就是说对于某一
3 s# ^* B5 `" Y$ [3 p" t具体型号FPGA 的门数估计,与FPGA 资源的用途有密切关系。LUT 用于实现2 输入XOR
4 E# h7 N9 ~+ u# R7 ~* P# |和4 输入XOR 等效门数不一样(分别为1 和13);FF 不带异步清零、复位、时钟使能和带5 X/ p8 J, N0 [: v  a
这些端口的等效门数不同(分别为8 和13);ESB(BRAM)做RAM 使用时,1bit 等效4 个
( Y8 ~7 Z3 s- A9 x门,1 个2048bit 的BRAM 等效8K 门,但是做查找表使用时可能只相当于不到200 门。因此- |  \" Y) @" W* m+ _
估计FPGA 的等效门数需要做更细致的分析。; b# n0 J. g, c8 m5 n4 i5 P7 V
图1 显示了EP20K 系列的等效门数等参数3 R; q$ w( j2 w  Z  B4 i7 s
Feature                                EP20K1000E) T7 x- p# Z; x$ r. y# A
Typical Gates                           1,000,000+ d6 e- S8 x6 }! C, y
Maximum System Gate                     1,770,0005 A  B: W, J2 ^+ e5 F
Logic Elements                           38,400+ P1 P$ y! u, ^9 E% e0 r
Embedded System Blocks                   160
; i( o0 p* S' {- AMaximum RAM Bits                         327,680
* _+ x6 i3 P" x( ~: XMaximum Macrocells                       2,560# \0 j+ g, r+ n% E1 ?3 u. p  M0 t
Maximum I/O Pins                         716' J9 W; c" w6 R
图1 EP20K 系列的等效门数
9 Y* B) Z1 B" U! @下面以EP20K1000E 为例详细说明FPGA 等效门数的估计方法。
7 N4 C, U0 u! R% i, D$ ?5 _* b0 q1.计算逻辑阵列的等效门数: I" {$ t. r, E. s' a
估算EP20K1000E 的门数时,把FPGA 特定资源和LCA300K 标准逻辑阵列的门数(LSI! a. [2 k. `9 w9 h
LCA300K Data Book)比较,可以对FPGA 等效门做出估计。FPGA 一个LUT+FF 等效门数
3 U# v: r& Q' n6 i计算如图2 所示- A) w: L9 v; V( t5 D$ b
Implementations             APEX 20K  LUT      LSI Gates     APEX 20K Register  LSI Gates  Total& k7 K! y) C7 F4 z
Simple LCA300K function   Two input AND gate     1            D-Type Flipflop       7         8
" t. m* u! X8 [7 qComplex LCA300K function   Four XOR gate          13       D-Type Flipflop with     8         21
% s7 Q. O' M+ e- H* V                                                         clear, present and clock. j$ m) d; ?6 U( @- `0 Z0 t9 O
                                                          enable signal$ E9 E* F- P  e1 s7 L
图2 一个LUT+FF 等效门数2 p  l$ X  n/ B- s
即LUT+FF 等效于8~21 个门,上限和下限分别由实现简单函数、复杂函数分别界定。( u: w( J. Q1 |" t- ~! m
APEX20K 的等效门数也可以根据经验数据获得,把超过100 个针对4 输入LUT 的设计用
2 T: M+ Z# `2 x. ~% T% j# u/ p  @" WFPGA 实现,同时用LCA300K gate arrays 和Design Compiler 实现,比较相同的设计FPGA 所1 K$ D3 x' {- @6 H/ T# n+ w* ^: V
用的LE 数目和LCA300K 所用的门数可知,每个LE 相当于12 个门。EP20K1000E 有38400. V8 ]' x$ `" z' k" ?$ k" ?
个LE,于是相当于46 万门。, t' u; S% \4 m; s. @* ?
2.计算ESB 的等效门数
7 ~& H2 Q, i+ oRAM 中一个bit 所需要的门数与RAM 的体系结构、工艺、厂商等有关,一般而言,1bit, e+ S8 i, Q6 `7 v+ s7 C) A- ~
相当于4 个门,Altera 也采用这个标准,这样可以方便地估计ESB 等效门数。
) n: H) m$ R' _" [3 M! r: k& r计算ESB 等效门数也可以采用和LSI LCA300K 比较的方法,即通过与实现相同容量RAM 在
3 f  \( O2 B5 k: lLCA300K 所用的门数相比较,从而得到ESB 的每一bit 相当于多少门,从而计算出ESB 的2 `0 V7 d( y/ \/ q2 J
等效门数,参考图3。  U* N1 _7 p3 H, H. l3 \) g
Memory Function                  Gates                     Gates per Bit9 L8 t5 ]- Y- W& W
128×8 single-port SRAM          4,620                            4.5, K9 S# r' w' w
128×16 single-port SRAM         7,980                            3.9
- `! A3 n2 C: i) h3 q128×32 single-port SRAM         14,700                           3.67 v8 X' f$ j, g& E* v" s
128×16 dual-port SRAM           8,300                            4.1
" @& h% ?5 F( M6 a128×32 dual-port SRAM           14,910                           63.6, S  @5 s/ S- E$ `2 C& b8 f
图3 ESB 的等效门数
! c+ ~# _$ g; J9 g% S3 N# }' t* [从上表可见,4gates/bit 是一个比较合适的估计,于是EP20K1000E 的ESB 等效门数为8 h0 R, l# o/ ~$ S! o& n/ }
160 ESBs X 2,048 bits per ESB X 4 gates per bit = 1,310,720 gates,即约为130 万门。
1 P* P- |4 ?+ u: _% _: Q3 P总而言之,对EP20K1000E,LUT+FF 等效门数约为46 万(经验数值),ESB 全用作RAM 时
) V% H- {( ]3 x  O+ _等效门数约为130 万,所以最大系统门数为170 万。
, F. f2 x8 {  {& B9 v8 ~. k结论:# C: x2 x) s' C1 d. T# ?- v; I0 t
FPGA 等效门数估计方法可以是把FPGA 资源基本单元(如LUT+FF,ESB)和实现相同: `& \! ~5 l; R6 f
功能的标准门阵列相比得到FPGA 基本单元等效的门数,然后乘以单元的个数得到整个FPGA* a0 b3 T' _$ z. ]/ ~/ U5 S
等效门数。也可以是实现很多设计,和用标准门阵列相比,从中统计出等效门数。
6 B" \2 s6 T9 {$ N  b( o. fFPGA 的等效门数估计一般分为LUT+FF 和ESB(BRAM)两部分,LUT+FF 等效于8~4 m1 P4 v# F  ^4 W
21 个门,典型值为12;ESB 做RAM 使用时,一般相当于4 门/bit,此时估计出的门数最多,
6 o5 n) g. Z8 \# C: k: R1 V& ^如果ESB 做乘积项/LUT 则等效门数大大减小,例如对EP20K1000E,前者为130 万,后者为
0 r" [$ k' i/ d9 g! o2 万。 % d/ c6 S0 E0 k0 `

作者: hartley    时间: 2012-2-21 11:08
好贴,学习




欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2