米聯客(MSXBO)通過簡單的加法器瞭解LUT查詢表實現加法功能
阿新 • • 發佈:2019-10-08
1.1概述
由於FPGA需要被反覆燒寫,它實現組合邏輯的基本結構不可能像ASIC那樣通過固定的與非門來完成,而只能採用一種易於反覆配置的結構。查詢表可以很好地滿足這一要求,目前主流FPGA都採用了基於SRAM工藝的查詢表結構。LUT本質上就是一個RAM。它把資料事先寫入RAM後, 每當輸入一個訊號就等於輸入一個地址進行查表,找出地址對應的內容,然後輸出。
7系列FPGA中的函式發生器實現為六輸入查詢表(LUT)。slice的4個函式發生器(A,B,C和D)中的每一個都有六個獨立輸入(A輸入A1至A6)和兩個獨立輸出(O5和O6)。
這篇短文中,我們通過一個簡單的加法器來了解下LUT如果實現加法器功能。
1.2加法器程式碼
module ADDER( input [0:0]A, input [0:0]B, output [1:0]Q );
assign Q = A + B;
endmodule |
1.3 加法器原理圖
從VIVADO 左側的 RTL ANALYSIS選擇開啟原理圖
加法器原理圖如下圖所示
1.4綜合程式碼後檢視原理圖
綜合後的原理圖可以看到IBUF以及LUT和OBUF
單擊紅框的LUT2單元,然後在左手邊檢視LUT2的屬性
同理單擊紅框的LUT2單元,然後在左手邊檢視LUT2的屬性
可以看到以上圖中的初始值,就是LUT查詢表的值,通過查表我們可以看到加法器的可以執行的結果。
A |
B |
ADDR |
Q_OBUF[0]_inst_i_1 |
ADDR |
Q_OBUF[1]_inst_i_1 |
Q[1:0] |
0 |
0 |
0 |
0 |
0 |
0 |
2’b00 |
1 |
0 |
1 |
1 |
2 |
0 |
2’b01 |
0 |
1 |
2 |
1 |
1 |
0 |
2’b01 |
1 |
1 |
3 |
0 |
3 |
1 |
2’b10 |
通過以上的簡單分析,相信大家可以掌握LUT實現邏輯單元