FPGA 等效門數的計算方法

2021-09-12 12:28:21 字數 3684 閱讀 8254

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);esb(bram)做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

****** 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 萬。

差分盒維數的計算方法

差分盒維數 differential box counting,dbc 可以作為影象表面紋理粗糙程度的度量,因為它有很好的精確性和適用性,而且能滿足計算效率和動態特性的要求。處理流程 對於乙個m m大小的影象,在三維空間中,x,y 代表空間的位置,z代表其對應點的灰度值gray x,y 1 影象分塊...

AUC的計算方法

在機器學習的分類任務中,我們常用許多的指標,諸如召回率 recall 準確率 precision f1值 auc等。相信這個問題很多玩家都已經明白了,簡單的概括一下,auc are under curve 是乙個模型的評價指標,用於分類任務。那麼這個指標代表什麼呢?這個指標想表達的含義,簡單來說其實...

mAP的計算方法

git開源專案 比如unsky的fpn 中test net.py呼叫test.py下的def test net net,imdb,max per image 1000,thresh 0.05,vis false 函式。之後會順一遍,先介紹下思路 假設一張測試有3個標定好的ground truth 黑...