FPGA基础之LUT详解
查找表(LUT)
對(duì)于一個(gè)有n輸入的邏輯運(yùn)算,則最終有2n個(gè)不同的組合方式。為了便于理解,下面給出一個(gè)例子:
上面是一個(gè)2輸入的例子,該例子對(duì)應(yīng)的組合邏輯電路如下:
該組合邏輯的真值表:
如果使用傳統(tǒng)的數(shù)字電路的方法,則要實(shí)現(xiàn)該組合邏輯電路,需要經(jīng)過下面幾個(gè)過程:
眾所周知,在設(shè)計(jì)時(shí)序電路時(shí),時(shí)序電路的工作性能極為重要。然而,采用傳統(tǒng)邏輯門電路實(shí)現(xiàn)邏輯關(guān)系的方法存在一些嚴(yán)重的缺點(diǎn):
LUT
為了解決傳統(tǒng)邏輯電路的的問題,在FPGA中,使用LUT來實(shí)現(xiàn)組合邏輯電路的功能。
LUT 本質(zhì)上是一個(gè)SRAM,里面存儲(chǔ)的數(shù)據(jù)類似于真值表,它將上例中的邏輯與門和或門分別使用兩張類似于真值表的東西代替,LUT中保存著輸入變量和經(jīng)過邏輯門后輸出變量的所有結(jié)果。在實(shí)現(xiàn)上,它將輸入數(shù)據(jù)作為SRAM的地址,然后通過該地址找到對(duì)應(yīng)的值,將該值作為結(jié)果輸出。比如上例中的與門,在該與門對(duì)應(yīng)的LUT中,地址為0、0的存儲(chǔ)單元中保存著0,地址為0、1的存儲(chǔ)單元中保存著0,地址為1、0的存儲(chǔ)單元中保存著0,地址為1、1的存儲(chǔ)單元中保存著1;當(dāng)輸入變量為0、1時(shí),就會(huì)直接將LUT中地址為0、1的存儲(chǔ)單元中的0輸出。
上例中查找表構(gòu)成的電路:
其中x_OBUF_inst_i_1和y_OBUF_inst_i_1分別為與門和或門對(duì)應(yīng)的LUT,I0和I1表示輸入變量,O表示輸出的值,IBUF表示輸入緩沖區(qū),OBUF表示輸出緩沖區(qū)。
使用LUT代替?zhèn)鹘y(tǒng)的邏輯門實(shí)現(xiàn)組合邏輯的優(yōu)點(diǎn):
總結(jié)
以上是生活随笔為你收集整理的FPGA基础之LUT详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nonblocking I/O 与 A
- 下一篇: SharePoint 2013 Nint