一個有意思的題目。
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消耗的資源更多。當然這僅僅考慮單個加法的結(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)注
1654文章
22273瀏覽量
629899 -
Xilinx
+關(guān)注
關(guān)注
73文章
2192瀏覽量
129832 -
LUT
+關(guān)注
關(guān)注
0文章
52瀏覽量
13059 -
運算
+關(guān)注
關(guān)注
0文章
132瀏覽量
26594 -
Vivado
+關(guān)注
關(guān)注
19文章
846瀏覽量
70435
原文標題: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ù)表

X+32和X+1誰消耗的FPGA資源多
評論