FPGA 等效門數的計算方法

admin @ 2014-03-26 , reply:0

概述
 1.把FPGA基本單元(如LUT+FF,ESB/BRAM)和實現相同功能的標準門陣列比較,門陣列中包含的門數即為該FPGA基本單元的等效門數,然後乘以基本單元的數目就可以得到FPGA門數估……

 1. 把FPGA 基本單元(如LUT+FF,ESB/BRAM)和實現相同功能的標準門陣列比較,門陣列中包含的門數即為該FPGA 基本單元的等效門數,然後乘以基本單元的數目就可以得到FPGA 門數估計值;

2. 分別用FPGA 和標準門陣列實現相同的功能,從中統計出FPGA 的等效門數,這種方法比較多的依賴於經驗數據。

     對於第一種方法,FPGA 包括LUT/FF/RAM 等資源,分析各種資源等效門數時,總原則是等效原則,就是實現相同的功能,在標準門陣列中需要的門數就是FPGA 該資源等效門數,
    例如實現一個帶寄存器輸出的4 輸入XOR,在FPGA 中需要用一個LUT 和1 個FF 實現,在標準門陣列中一般要用21 個與非門實現,於是1 個LUT+1 個FF 等效於21 個門。對ESB(BRAM),由於用標準門陣列實現1bit 的RAM 時一般需要4 個門,因此ESB/BARM 做RAM 使用時,1bit 等效4 個門,對Altera FPGA 中一個2048bit 的ESB,等效門數為8K。光靠這些數據還不能比較準確地計算出FPGA 的等效門數。因為這只是一種簡單情況,實際情況要複雜很多。例如,如果實現的是帶寄存器輸出地2 輸入XOR,FPGA 也要用1 個LUT+FF,而標準門陣列只需要8 個NAND,於是1 個LUT+1 個FF 只等效於8 個門。同時特定功能的實現,在不同的標準門陣列系列中需要的門數也不一樣,因此等效門的計算只能是個大概的數值。也就是說對於某一具體型號FPGA 的門數估計,與FPGA 資源的用途有密切關係。LUT 用於實現2 輸入XOR和4 輸入XOR 等效門數不一樣(分別為1 和13);FF 不帶非同步清零、複位、時鐘使能和帶這些埠的等效門數不同(分別為8 和13);ESBBRAM)做RAM 使用時,1bit 等效4 個門,1 個2048bit 的BRAM 等效8K 門,但是做查找表使用時可能只相當於不到200 門。因此估計FPGA 的等效門數需要做更細緻的分析。圖1 顯示了EP20K 系列的等效門數等參數

Feature                                EP20K1000E
Typical Gates                           1,000,000
Maximum System Gate                     1,770,000
Logic Elements                           38,400
Embedded System Blocks                   160
Maximum RAM Bits                         327,680
Maximum Macrocells                       2,560
Maximum I/O Pins                         716
圖1 EP20K 系列的等效門數

下面以EP20K1000E 為例詳細說明FPGA 等效門數的估計方法。
1.計算邏輯陣列的等效門數
估算EP20K1000E 的門數時,把FPGA 特定資源和LCA300K 標準邏輯陣列的門數(LSI LCA300K Data Book)比較,可以對FPGA 等效門做出估計。FPGA 一個LUT+FF 等效門數
計算如圖2 所示
Implementations             APEX 20K  LUT      LSI Gates     APEX 20K Register  LSI Gates  Total
Simple LCA300K function   Two input AND gate     1            D-Type Flipflop       7         8
Complex LCA300K function   Four XOR gate          13       D-Type Flipflop with     8         21
                                                         clear, present and clock
                                                          enable signal
圖2 一個LUT+FF 等效門數

即LUT+FF 等效於8~21 個門,上限和下限分別由實現簡單函數、複雜函數分別界定。APEX20K 的等效門數也可以根據經驗數據獲得,把超過100 個針對4 輸入LUT 的設計用FPGA 實現,同時用LCA300K gate arrays 和Design Compiler 實現,比較相同的設計FPGA 所用的LE 數目和LCA300K 所用的門數可知,每個LE 相當於12 個門。EP20K1000E 有38400個LE,於是相當於46 萬門。

2.計算ESB 的等效門數
     RAM 中一個bit 所需要的門數與RAM 的體系結構、工藝、廠商等有關,一般而言,1bit相當於4 個門,Altera 也採用這個標準,這樣可以方便地估計ESB 等效門數。
     計算ESB 等效門數也可以採用和LSI LCA300K 比較的方法,即通過與實現相同容量RAM 在LCA300K 所用的門數相比較,從而得到ESB 的每一bit 相當於多少門,從而計算出ESB 的等效門數,參考圖3。
Memory Function                  Gates                     Gates per Bit
128×8 single-port SRAM          4,620                            4.5
128×16 single-port SRAM         7,980                            3.9
128×32 single-port SRAM         14,700                           3.6
128×16 dual-port SRAM           8,300                            4.1
128×32 dual-port SRAM           14,910                           63.6
圖3 ESB 的等效門數

      從上表可見,4gates/bit 是一個比較合適的估計,於是EP20K1000E 的ESB 等效門數為160 ESBs X 2,048 bits per ESB X 4 gates per bit = 1,310,720 gates,即約為130 萬門。
      總而言之,對EP20K1000E,LUT+FF 等效門數約為46 萬(經驗數值),ESB 全用作RAM 時等效門數約為130 萬,所以最大系統門數為170 萬。
結論:
       FPGA 等效門數估計方法可以是把FPGA 資源基本單元(如LUT+FF,ESB)和實現相同功能的標準門陣列相比得到FPGA 基本單元等效的門數,然後乘以單元的個數得到整個FPGA等效門數。也可以是實現很多設計,和用標準門陣列相比,從中統計出等效門數。
      FPGA 的等效門數估計一般分為LUT+FF 和ESB(BRAM)兩部分,LUT+FF 等效於8~21 個門,典型值為12;ESB 做RAM 使用時,一般相當於4 門/bit,此時估計出的門數最多,如果ESB 做乘積項/LUT 則等效門數大大減小,例如對EP20K1000E,前者為130 萬,後者為2 萬。




[admin via 研發互助社區 ] FPGA 等效門數的計算方法已經有3298次圍觀

http://cocdig.com/docs/show-post-43528.html