對於乙個有n輸入的邏輯運算,則最終有2n個不同的組合方式。為了便於理解,下面給出乙個例子:
上面是乙個2輸入的例子,該例子對應的組合邏輯電路如下:
該組合邏輯的真值表:
如果使用傳統的數位電路的方法,則要實現該組合邏輯電路,需要經過下面幾個過程:
通過真值表得到輸入和輸出之間的邏輯關係;
通過化簡卡諾圖得到描述輸入輸出變數關係的邏輯表示式;
通過邏輯電路實現邏輯表示式。
眾所周知,在設計時序電路時,時序電路的工作效能極為重要。然而,採用傳統邏輯閘電路實現邏輯關係的方法存在一些嚴重的缺點:
輸入變數從通過邏輯電路到輸出變數,存在一定的延遲,該延遲的大小和邏輯電路的複雜程度密切相關。邏輯電路越複雜,延遲越大,因此,延遲是不確定的;
延時的倒數是頻率,頻率和時序電路的工作速率密切相關。因為延遲不確定,所以頻率也不確定,這將嚴重影響整個電路的工作效能;
邏輯電路的複雜程度和輸入邏輯變數的個數、邏輯門的個數有關。因此輸入邏輯變數越多,邏輯電路就越複雜。
為了解決傳統邏輯電路的的問題,在fpga中,使用lut來實現組合邏輯電路的功能。
lut 本質上是乙個sram,裡面儲存的資料類似於真值表,它將上例中的邏輯與門和或門分別使用兩張類似於真值表的東西代替,lut中儲存著輸入變數和經過邏輯門後輸出變數的所有結果。在實現上,它將輸入資料作為sram的位址,然後通過該位址找到對應的值,將該值作為結果輸出。比如上例中的與門,在該與門對應的lut中,位址為0、0的儲存單元中儲存著0,位址為0、1的儲存單元中儲存著0,位址為1、0的儲存單元中儲存著0,位址為1、1的儲存單元中儲存著1;當輸入變數為0、1時,就會直接將lut中位址為0、1的儲存單元中的0輸出。
上例中查詢表構成的電路:
其中x_obuf_inst_i_1和y_obuf_inst_i_1分別為與門和或門對應的lut,i0和i1表示輸入變數,o表示輸出的值,ibuf表示輸入緩衝區,obuf表示輸出緩衝區。
使用lut代替傳統的邏輯門實現組合邏輯的優點:
通過lut代替組合邏輯,而lut中的值只和輸入有關,因此組合邏輯的功能由輸入決定,不在和複雜度有關;
lut實現的組合邏輯的延遲是固定的。
FPGA內部查詢表(LUT)模組分析
fpga以slice為單位實現組合邏輯,外圍加block multiplier,以及iob實現外設通訊。其中,最重要的是slice種的lut4 look up table 每乙個lut4為4輸入1輸出的選擇電路,4輸入有16種情況。以如下 為例 module inner lut input clk,...
FPGA基礎之cyclone iv資源概述
在正式介紹cyclone iv系列晶元資源之前,先簡單介紹下什麼是fpga,fpga的全稱是field programmable gate array,即現場可編輯門陣列,是一種半定製 可程式設計的邏輯陣列,可以根據需求設計晶元的功能。那麼晶元到底是如何實現這種可程式設計邏輯,進而實現各種複雜的時序...
fpga基礎 基礎元器件
clb是xilinx基本邏輯單元,每個clb包含兩個slices,每個slices由4個 a,b,c,d 6輸入lut 內部封裝了2個5輸入lut 和8個暫存器,2個f7選擇器,1個f8選擇器,乙個由多個與非門所組成的進製鏈.slice也分為slicem和slicel,其中m是memory的首字母,...