一般而言FPGA等效門數的計算方法有兩種
一是把FPGA基本單元(如LUT+FF,ESB/BRAM)和實現相同功能的標准門陣列比較,門陣列中包含的門數即為該FPGA基本單元的等效門數,然后乘以基本單元的數目就可以得到FPGA門數估計值
二是分別用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個門,對AlteraFPGA中一個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的等效門數需要做更細致的分析。
下面以EP20K1000E為例詳細說明FPGA等效門數的估計方法。
(1)計算邏輯陣列的等效門數
估算EP20K1000E的門數時,把FPGA特定資源和LCA300K標准邏輯陣列的門數(LSILCA300KDataBook)比較,可以對FPGA等效門做出估計。FPGA一個LUT+FF等效門數計算如圖2所示
即LUT+FF等效於8~21個門,上限和下限分別由實現簡單函數、復雜函數分別界定。
APEX20K的等效門數也可以根據經驗數據獲得,把超過100個針對4輸入LUT的設計用FPGA實現,同時用LCA300Kgatearrays和DesignCompiler實現,比較相同的設計FPGA所用的LE數目和LCA300K所用的門數可知,每個LE相當於12個門。EP20K1000E有38400個LE,於是相當於46萬門。
(2)計算ESB的等效門數
RAM中一個bit所需要的門數與RAM的體系結構、工藝、廠商等有關,一般而言,1bit相當於4個門,Altera也采用這個標准,這樣可以方便地估計ESB等效門數。
計算ESB等效門數也可以采用和LSILCA300K比較的方法,即通過與實現相同容量RAM在LCA300K所用的門數相比較,從而得到ESB的每一bit相當於多少門,從而計算出ESB的等效門數,參考圖3。
4gates/bit是一個比較合適的估計,於是EP20K1000E的ESB等效門數為
160ESBsX2,048bitsperESBX4gatesperbit=1,310,720gates,即約為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萬。
PLD廠家往往各自有各自的內部結構,當橫向比對時是蠻麻煩的,不過有一個比較簡單的小算法,希望能幫到你,也希望高手指正。
為了統一度量衡(感覺像QSH一樣),業界一般會歸結到BLM(BasicLogicModule)
1BLM=1LUT4(四輸入查找表)+DFF(D觸發器)
那么,
1BLM=0.5Slice(Xilinx)=1LE(Altera)=2.25Tile(Actel)
這只是邏輯資源的比對,像內部SRAM啊,全局時鍾資源啊,內部PLL啊,I/Onumber等等,等等也是我們選擇PLD需要考慮的,不過這個比較就比較直觀了,可以查看對應公司的選型手冊就ok啦!
However,這只是一個一般的參考,我們知道一個PLD的邏輯資源和可用邏輯資源還是有很大不同的哦!