|
FPGA等效門(mén)數(shù)的計(jì)算方法有兩種: 1. 把 FPGA基本單元,(如 LUT+FF,ESB/BRAM)和實(shí)現(xiàn)相同功能的標(biāo)準(zhǔn)門(mén)陣列比較,門(mén)陣列中包含的門(mén)數(shù)即為該 FPGA 基本單元的等效門(mén)數(shù), 然后乘以基本單元和數(shù)目就可以得到 FPGA門(mén)數(shù)估計(jì)值; 2. 分別用 FPGA和標(biāo)準(zhǔn)門(mén)陣列實(shí)現(xiàn)相同的功能,從中統(tǒng)計(jì)出 FPGA的等效門(mén)數(shù),這種方法比較多的依賴(lài)于經(jīng)驗(yàn)數(shù)據(jù)。 對(duì)于第一種方法,FPGA 包括 LUT/FF/RAM 等資源,分析各種資源等效門(mén)數(shù)時(shí),總原則是等效原則,就是實(shí)現(xiàn)相同的功能,在標(biāo)準(zhǔn)門(mén)陣列中需要的門(mén)數(shù)就是 FPGA該資源等效門(mén)數(shù),例如實(shí)現(xiàn)一個(gè)帶寄存器輸出的 4 輸入 XOR,在 FPGA中需要用一個(gè) LUT和 1 個(gè) FF實(shí)現(xiàn),在標(biāo)準(zhǔn)門(mén)陣列中一般要用21 個(gè)與非門(mén)實(shí)現(xiàn),于是 1 個(gè) LUT+1 個(gè) FF 等效于 21 個(gè)門(mén)。對(duì) ESB(BRAM),由于用標(biāo)準(zhǔn)門(mén)陣列實(shí)現(xiàn) 1bit 的 RAM 時(shí)一般需要4 個(gè)門(mén),因此 ESB/BARM 做 RAM 使用時(shí),1bit 等效 4 個(gè)門(mén),對(duì) Altera FPGA 中一個(gè) 2048bit的 ESB,等效門(mén)數(shù)為 8K。光靠這些數(shù)據(jù)還不能比較準(zhǔn)確地計(jì)算出 FPGA 的等效門(mén)數(shù)。因?yàn)檫@只是一種簡(jiǎn)單情況,實(shí)際情況要復(fù)雜很多。例如,如果實(shí)現(xiàn)的是帶寄存器輸出地 2 輸入 XOR,F(xiàn)PGA 也要用 1 個(gè) LUT+FF,而標(biāo)準(zhǔn)門(mén)陣列只需要 8 個(gè)NAND,于是 1 個(gè) LUT+1 個(gè) FF 只等效于 8 個(gè)門(mén)。同時(shí)特定功能的實(shí)現(xiàn),在不同的標(biāo)準(zhǔn)門(mén)陣列系列中需要的門(mén)數(shù)也不一樣,因此等效門(mén)的計(jì)算只能是個(gè)大概的數(shù)值。 也就是說(shuō)對(duì)于某一具體型號(hào) FPGA 的門(mén)數(shù)估計(jì),與 FPGA 資源的用途有密切關(guān)系。LUT 用于實(shí)現(xiàn) 2 輸入 XOR和 4 輸入 XOR 等效門(mén)數(shù)不一樣(分別為 1 和 13);FF 不帶異步清零、復(fù)位、時(shí)鐘使能和帶這些端口的等效門(mén)數(shù)不同(分別為 8 和 13);ESB(BRAM)做 RAM 使用時(shí),1bit 等效 4 個(gè)門(mén),1 個(gè)2048bit 的 BRAM 等效 8K門(mén),但是做查找表使用時(shí)可能只相當(dāng)于不到 200 門(mén)。因此估計(jì) FPGA 的等效門(mén)數(shù)需要做更細(xì)致的分析。 圖1 顯示了 EP20K 系列的等效門(mén)數(shù)等參數(shù) 下面以 EP20K1000E為例詳細(xì)說(shuō)明 FPGA等效門(mén)數(shù)的估計(jì)方法。 1.計(jì)算邏輯陣列的等效門(mén)數(shù) 估算 EP20K1000E 的門(mén)數(shù)時(shí),把 FPGA 特定資源和 LCA300K 標(biāo)準(zhǔn)邏輯陣列的門(mén)數(shù)(LSI LCA300K Data Book)比較,可以對(duì) FPGA 等效門(mén)做出估計(jì)。FPGA一個(gè) LUT+FF等效門(mén)數(shù)計(jì)算如圖 2 所示 即 LUT+FF等效于 8~21 個(gè)門(mén),上限和下限分別由實(shí)現(xiàn)簡(jiǎn)單函數(shù)、復(fù)雜函數(shù)分別界定。 APEX20K 的等效門(mén)數(shù)也可以根據(jù)經(jīng)驗(yàn)數(shù)據(jù)獲得,把超過(guò) 100 個(gè)針對(duì) 4 輸入 LUT 的設(shè)計(jì)用FPGA實(shí)現(xiàn),同時(shí)用 LCA300K gate arrays 和Design Compiler 實(shí)現(xiàn),比較相同的設(shè)計(jì) FPGA 所用的 LE數(shù)目和 LCA300K所用的門(mén)數(shù)可知,每個(gè) LE相當(dāng)于 12 個(gè)門(mén)。EP20K1000E有 38400個(gè) LE,于是相當(dāng)于 46 萬(wàn)門(mén)。 2.計(jì)算 ESB的等效門(mén)數(shù) RAM 中一個(gè) bit 所需要的門(mén)數(shù)與RAM 的體系結(jié)構(gòu)、工藝、廠(chǎng)商等有關(guān),一般而言 1bit相當(dāng)于 4 個(gè)門(mén),Altera也采用這個(gè)標(biāo)準(zhǔn),這樣可以方便地估計(jì) ESB 等效門(mén)數(shù)。 計(jì)算 ESB 等效門(mén)數(shù)也可以采用和 LSI LCA300K比較的方法,即通過(guò)與實(shí)現(xiàn)相同容量 RAM 在LCA300K 所用的門(mén)數(shù)相比較,從而得到 ESB 的每一 bit 相當(dāng)于多少門(mén),從而計(jì)算出 ESB 的等效門(mén)數(shù),參考圖 3。 從上表可見(jiàn),4gates/bit 是一個(gè)比較合適的估計(jì),于是 EP20K1000E的 ESB 等效門(mén)數(shù)為 160 ESBs X 2,048 bits per ESB X 4 gates per bit = 1,310,720 gates,即約為130 萬(wàn)門(mén)。 總而言之,對(duì) EP20K1000E,LUT+FF 等效門(mén)數(shù)約為 46 萬(wàn)(經(jīng)驗(yàn)數(shù)值),ESB 全用作 RAM 時(shí)等效門(mén)數(shù)約為 130 萬(wàn),所以最大系統(tǒng)門(mén)數(shù)為 170 萬(wàn)。 結(jié)論: FPGA等效門(mén)數(shù)估計(jì)方法可以是把 FPGA資源基本單元(如 LUT+FF,ESB)和實(shí)現(xiàn)相同功能的標(biāo)準(zhǔn)門(mén)陣列相比得到FPGA基本單元等效的門(mén)數(shù), 然后乘以單元的個(gè)數(shù)得到整個(gè)FPGA等效門(mén)數(shù)。也可以是實(shí) 現(xiàn)很多設(shè)計(jì),和用標(biāo)準(zhǔn)門(mén)陣列相比,從中統(tǒng)計(jì)出等效門(mén)數(shù)。 FPGA的等效門(mén)數(shù)估計(jì)一般分為L(zhǎng)UT+FF和ESB(BRAM)兩部分,LUT+FF 等效于 8~21 個(gè)門(mén),典型值為 12;ESB做 RAM使用時(shí),一般相當(dāng)于4 門(mén)/bit,此時(shí)估計(jì)出的門(mén)數(shù)最多,如果 ESB 做乘積項(xiàng)/LUT 則等效門(mén)數(shù)大大減小,例如對(duì)EP20K1000E,前者為130 萬(wàn),后者為2萬(wàn)。 |