《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 其他 > 入門:查找表結(jié)構(gòu)和乘積項結(jié)構(gòu)

入門:查找表結(jié)構(gòu)和乘積項結(jié)構(gòu)

2022-09-27
來源:FPGA設(shè)計論壇
關(guān)鍵詞: HDL PLD FPGA

  查找表(Look-Up-Table)簡稱為LUT,LUT本質(zhì)上就是一個RAM。目前FPGA中多使用4輸入的LUT,所以每一個LUT可以看成一個有4位地址線的16x1的RAM。當用戶通過原理圖或HDL語言描述了一個邏輯電路以后,PLD/FPGA開發(fā)軟件會自動計算邏輯電路的所有可能的結(jié)果,并把結(jié)果事先寫入RAM,這樣,每輸入一個信號進行邏輯運算就等于輸入一個地址進行查表,找出地址對應(yīng)的內(nèi)容,然后輸出即可。     下面是一個4輸入與門的例子,

20.JPG

  實際邏輯電路   LUT的實現(xiàn)方式           a,b,c,d 輸入     邏輯輸出   地址   RAM中存儲的內(nèi)容     0000     0   0000   0   0001   0   0001   0   …   0   …   0   1111   1   1111   1   二。PLDFPGA基于查找表(LUT)的FPGA的結(jié)構(gòu)    我們看一看xilinx Spartan-II的內(nèi)部結(jié)構(gòu),如下圖:

21.JPG

  xilinx Spartan-II 芯片內(nèi)部結(jié)構(gòu)   Slices結(jié)構(gòu)     Spartan-II主要包括CLBs,I/O塊,RAM塊和可編程連線(未表示出)。在spartan-II中,一個CLB包括2個Slices,每個slices包括兩個LUT,兩個觸發(fā)器和相關(guān)邏輯。Slices可以看成是SpartanII實現(xiàn)邏輯的最基本結(jié)構(gòu) (xilinx其他系列,如SpartanXL,Virtex的結(jié)構(gòu)與此稍有不同,具體請參閱數(shù)據(jù)手冊)       altera的FLEX/ACEX等芯片的結(jié)構(gòu)如下圖:

 22.JPG

  altera FLEX/ACEX 芯片的內(nèi)部結(jié)構(gòu)

  

23.JPG

  邏輯單元(LE)內(nèi)部結(jié)構(gòu)   FLEX/ACEX的結(jié)構(gòu)主要包括LAB,I/O塊,RAM塊(未表示出)和可編程行/列連線。在FLEX/ACEX中,一個LAB包括8個邏輯單元(LE),每個LE包括一個LUT,一個觸發(fā)器和相關(guān)的相關(guān)邏輯。LE是FLEX/ACEX芯片實現(xiàn)邏輯的最基本結(jié)構(gòu)(altera其他系列,如APEX的結(jié)構(gòu)與此基本相同,具體請參閱數(shù)據(jù)手冊)    二。PLDFPGA 查找表結(jié)構(gòu)的FPGA邏輯實現(xiàn)原理   我們還是以這個電路的為例:

24.JPG

  A,B,C,D由FPGA芯片的管腳輸入后進入可編程連線,然后作為地址線連到到LUT,LUT中已經(jīng)事先寫入了所有可能的邏輯結(jié)果,通過地址查找到相應(yīng)的數(shù)據(jù)然后輸出,這樣組合邏輯就實現(xiàn)了。該電路中D觸發(fā)器是直接利用LUT后面D觸發(fā)器來實現(xiàn)。時鐘信號CLK由I/O腳輸入后進入芯片內(nèi)部的時鐘專用通道,直接連接到觸發(fā)器的時鐘端。觸發(fā)器的輸出與I/O腳相連,把結(jié)果輸出到芯片管腳。這樣PLD就完成了圖3所示電路的功能。(以上這些步驟都是由軟件自動完成的,不需要人為干預)     這個電路是一個很簡單的例子,只需要一個LUT加上一個觸發(fā)器就可以完成。對于一個LUT無法完成的的電路,就需要通過進位邏輯將多個單元相連,這樣FPGA就可以實現(xiàn)復雜的邏輯。     由于LUT主要適合SRAM工藝生產(chǎn),所以目前大部分FPGA都是基于SRAM工藝的,而SRAM工藝的芯片在掉電后信息就會丟失,一定需要外加一片專用配置芯片,在上電的時候,由這個專用配置芯片把數(shù)據(jù)加載到FPGA中,然后FPGA就可以正常工作,由于配置時間很短,不會影響系統(tǒng)正常工作。也有少數(shù)FPGA采用反熔絲或Flash工藝,對這種FPGA,就不需要外加專用的配置芯片。     三。PLDFPGA 其他類型的FPGA和PLD      隨著技術(shù)的發(fā)展,在2004年以后,一些廠家推出了一些新的PLD和FPGA,這些產(chǎn)品模糊了PLD和FPGA的區(qū)別。例如Altera最新的MAXII系列PLD,這是一種基于FPGA(LUT)結(jié)構(gòu),集成配置芯片的PLD,在本質(zhì)上它就是一種在內(nèi)部集成了配置芯片的FPGA,但由于配置時間極短,上電就可以工作,所以對用戶來說,感覺不到配置過程,可以傳統(tǒng)的PLD一樣使用,加上容量和傳統(tǒng)PLD類似,所以altera把它歸作PLD。還有像LatTIce的XP系列FPGA,也是使用了同樣的原理,將外部配置芯片集成到內(nèi)部,在使用方法上和PLD類似,但是因為容量大,性能和傳統(tǒng)FPGA相同,也是LUT架構(gòu),所以LatTIce仍把它歸為FPGA。       四。PLDFPGA基于乘積項(Product-Term)結(jié)構(gòu)CPLD   CPLD多是基于乘積項(Product-Term)的結(jié)構(gòu)。采用這種結(jié)構(gòu)的CPLD芯片有:Altera的MAX7000,MAX3000系列(EEPROM工藝),Xilinx的XC9500系列(Flash工藝)和LatTIce,Cypress的大部分產(chǎn)品(EEPROM工藝)         我們先看一下這種CPLD的總體結(jié)構(gòu)(以MAX7000為例,其他型號的結(jié)構(gòu)與此都非常相似):

 

25.JPG

  圖1 基于乘積項的CPLD內(nèi)部結(jié)構(gòu)   這種CPLD可分為三塊結(jié)構(gòu):宏單元(Marocell),可編程連線(PIA)和I/O控制塊。宏單元是CPLD的基本結(jié)構(gòu),由它來實現(xiàn)基本的邏輯功能。圖1中蘭色部分是多個宏單元的集合(因為宏單元較多,沒有一一畫出)。可編程連線負責信號傳遞,連接所有的宏單元。I/O控制塊負責輸入輸出的電氣特性控制,比如可以設(shè)定集電極開路輸出,擺率控制,三態(tài)輸出等。圖1 左上的INPUT/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2 是全局時鐘,清零和輸出使能信號,這幾個信號有專用連線與PLD中每個宏單元相連,信號到每個宏單元的延時相同并且延時最短。   宏單元的具體結(jié)構(gòu)見下圖:

  26.JPG

  圖2 宏單元結(jié)構(gòu)   左側(cè)是乘積項陣列,實際就是一個與或陣列,每一個交叉點都是一個可編程熔絲,如果導通就是實現(xiàn)“與”邏輯。后面的乘積項選擇矩陣是一個“或”陣列。兩者一起完成組合邏輯。圖右側(cè)是一個可編程D觸發(fā)器,它的時鐘,清零輸入都可以編程選擇,可以使用專用的全局清零和全局時鐘,也可以使用內(nèi)部邏輯(乘積項陣列)產(chǎn)生的時鐘和清零。如果不需要觸發(fā)器,也可以將此觸發(fā)器旁路,信號直接輸給PIA或輸出到I/O腳。



 更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<< 

mmexport1621241704608.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。