一個有意思的題目。
X為一個32-bit的數(shù),那么 X+32 和 X+1,哪個消耗的資源更多?還是一樣多?
假如只允許用 LUT 實現(xiàn)
如圖1所示每個LUT可以完成1bit的加法,同時產(chǎn)生進位(Xilinx LUT6可以有兩個輸出)。因此對于32bit的加法,則需要32個LUT。
圖1
假如我們要實現(xiàn)的是 A+B,A和B都是32-bit的,那么確實是需要32個LUT。那X+32和X+1的常數(shù)加法呢?
32可以表示為32'b0000...0010_0000,1可以表示為32'b0000....0000_0001。
對于 X+32,輸出值的低5bit可以直接表示為X[5:0],不需要LUT,其余值需要27個LUT實現(xiàn)加法運算。
對于X+1,只能從bit 0開始相加計算進位,總共需要32個LUT。
因此 X+1 消耗的資源更多。
假如是Vivado綜合,即使用Carry8
對于32bit的加法,需要4個carry8,那么是否意味著 X+32 和 X+1 有相同的資源消耗呢?
查看綜合結(jié)果(如下圖所示):
X+1 2個LUT1+4個Carry8 (LUT1實現(xiàn)的是取反的功能)
X+3 3個LUT1+4個Carry8 (bit0消耗2個LUT1,bit1消耗一個LUT1)
X+32 1個LUT1+4個Carry8 (bit5消耗1個LUT1)
因此從綜合結(jié)果看仍然是 X+1消耗的資源更多。當(dāng)然這僅僅考慮單個加法的結(jié)果,如果實際代碼中,加法器前面還有組合邏輯,這個LUT1應(yīng)該是會合并在前面的LUT中實現(xiàn),因而X+1和X+32會得到相同的資源消耗,即4個Carry8。
感興趣的讀者可以思考下 X-32會消耗多少LUT。
圖2 - X+1
圖3 - X+3
圖4 - X+32
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618596 -
Xilinx
+關(guān)注
關(guān)注
73文章
2185瀏覽量
125374 -
LUT
+關(guān)注
關(guān)注
0文章
50瀏覽量
12851 -
運算
+關(guān)注
關(guān)注
0文章
132瀏覽量
26210 -
Vivado
+關(guān)注
關(guān)注
19文章
835瀏覽量
68790
原文標題:X+32 vs X+1 誰消耗的FPGA資源多
文章出處:【微信號:FPGA開發(fā)之路,微信公眾號:FPGA開發(fā)之路】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
花了1萬多的本錢了,FPGA PCIE X8 板子終于搞定了
VL53L1X初始化序列后SW待機消耗的問題如何處理?
簡談FPGA設(shè)計中不同設(shè)計方法資源消耗對比
小米5x和華為nova對比,華為nova和小米5x性能誰更強
CPU資源消耗的原因和解決方案

FPGA中實現(xiàn)信號延時的資源消耗
9FGL02x1-04x1-06x1-08x1 系列數(shù)據(jù)表

9DBL02x2-04x2-06x1-08x1 系列數(shù)據(jù)表

9FGL02x1-04x1-06x1-08x1D 數(shù)據(jù)表

9FGL02x1-04x1-06x1-08x1 系列數(shù)據(jù)表

9DBL02x2-04x2-06x1-08x1 系列數(shù)據(jù)表

9FGL02x1-04x1-06x1-08x1D 數(shù)據(jù)表

評論