FPGA查找表


原文:http://blog.csdn.net/zhongrg/article/details/1860045

一.查找表(Look-Up-Table)的原理與結構

采用這種結構的PLD芯片我們也可以稱之為FPGA:如altera的ACEX,APEX系列,xilinx的Spartan,Virtex系列等。

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

下面是一個4輸入與門的例子,

實際邏輯電路
LUT的實現方式

a,b,c,d 輸入

邏輯輸出
地址
RAM中存儲的內容

0000

0
0000
0
0001
0
0001
0
....
0
...
0
1111
1
1111
1

 

 

二.基於查找表(LUT)的FPGA的結構

 

我們看一看xilinx Spartan-II的內部結構,如下圖:

 
xilinx Spartan-II 芯片內部結構
Slices結構

Spartan-II主要包括CLBs,I/O塊,RAM塊和可編程連線(未表示出)。在spartan-II中,一個CLB包括2個Slices,每個slices包括兩個LUT,兩個觸發器和相關邏輯。 Slices可以看成是SpartanII實現邏輯的最基本結構 (xilinx其他系列,如SpartanXL,Virtex的結構與此稍有不同,具體請參閱數據手冊)

altera的FLEX/ACEX等芯片的結構如下圖:

altera FLEX/ACEX 芯片的內部結構

 

邏輯單元(LE)內部結構

FLEX/ACEX的結構主要包括LAB,I/O塊,RAM塊(未表示出)和可編程行/列連線。在FLEX/ACEX中,一個LAB包括8個邏輯單元(LE),每個LE包括一個LUT,一個觸發器和相關的相關邏輯。LE是FLEX/ACEX芯片實現邏輯的最基本結構(altera其他系列,如APEX的結構與此基本相同,具體請參閱數據手冊)

 

三.查找表結構的FPGA邏輯實現原理

 

我們還是以這個電路的為例:

A,B,C,D由FPGA芯片的管腳輸入后進入可編程連線,然后作為地址線連到到LUT,LUT中已經事先寫入了所有可能的邏輯結果,通過地址查找到相應的數據然后輸出,這樣組合邏輯就實現了。 該電路中D觸發器是直接利用LUT后面D觸發器來實現。時鍾信號CLK由I/O腳輸入后進入芯片內部的時鍾專用通道,直接連接到觸發器的時鍾端。觸發器的輸出與I/O腳相連,把結果輸出到芯片管腳。這樣PLD就完成了圖3所示電路的功能。(以上這些步驟都是由軟件自動完成的,不需要人為干預)

這個電路是一個很簡單的例子,只需要一個LUT加上一個觸發器就可以完成。對於一個LUT無法完成的的電路,就需要通過進位邏輯將多個單元相連,這樣FPGA就可以實現復雜的邏輯。

由於LUT主要適合SRAM工藝生產,所以目前大部分FPGA都是基於SRAM工藝的,而SRAM工藝的芯片在掉電后信息就會丟失,一定需要外加一片專用配置芯片,在上電的時候,由這個專用配置芯片把數據加載到FPGA中,然后FPGA就可以正常工作,由於配置時間很短,不會影響系統正常工作。 也有少數FPGA采用反熔絲或Flash工藝,對這種FPGA,就不需要外加專用的配置芯片。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM