1. 程式人生 > >米聯客(MSXBO)通過簡單的加法器瞭解LUT查詢表實現加法功能

米聯客(MSXBO)通過簡單的加法器瞭解LUT查詢表實現加法功能

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實現邏輯單元