1.查找表的結構奸原理
采用查找表(Look-Up-Table)結構的PLD芯片稱為FPGA,查找表簡稱為LUT,LUT本質上就是一個RAM。 目前FPGA中多使用4輸人的LUT,所以每一個LUT可以看成一個有4位地址線的16×1的RAM。當用戶通過原理圖或HDL語言描述一個邏輯電路后,FPCA開發(fā)軟件會自動計算邏輯電 路的所有可能的結果,并把結果事先寫人RAM,這樣,每輸人一個信號進行邏輯運算就等于輸人一個地址 進行查表,找出地址對應的內容,然后輸出即可。表1所示為一個4輸人與門的例子。
表1 LUT實現4輸入與門的例子
2.基于查找表的FPGA結構
下面以Xilinx的Spartan-3芯片為例介紹FPGA的內部結構,如圖1所示。
圖1 Spartan-3 FPGA芯片內部結構
Spartan-3主要包括可配置邏輯模塊(CLB)、I/0模塊、塊RAM、乘法器模塊和數字時鐘管理模塊(DCM )。在Spartan-3中,CLB是主要的邏輯資源,每個CLB包含4個Slice,并分為2組,如圖2所示。左側一組 支持邏輯和存儲功能,稱為SLICEM,右側一組只支持邏輯功能,稱為SLICEL。SLICEL減少了CLB的大小并 降低了器件的成本。SLICEM和SLICEL具有如下相同組件來提供邏輯、運算和ROM功能:
·2個4輸人查找表,F和G;
·2個存儲單元;
圖2 CLB內部結構
·2個多功能乘法器,F5MUX和FGMUX(或FTMUX,FSMUX);
·運算邏輯。
因此,Slice可以看成Spartan-3實現邏輯的最基本結構。Slice結構如圖3所示。
圖3 Slice結構
3,查找表結構的FPGA邏輯實現原理
以圖4所示電路為例,具體說明FPGA是如何利用以上結構實現邏輯的。A,B,C,D由FPCA芯片的引腳輸 人后進人可編程連線,然后作為地址線連到LUT,LUT中已經事先寫人了所有可能的邏輯結果,通過地址查 找到相應的數據后輸出,這樣組合邏輯就實現了。該電路中D觸發(fā)器是直接利用LUT后面D觸發(fā)器來實現的 。時鐘信號CLK由I/O腳輸入后進入芯片內部的時鐘專用通道,直接連接到觸發(fā)器的時鐘端。觸發(fā)器的輸出 與I/0腳相連,把結果輸出到芯片引腳。這樣FPGA就完成了圖4所示電路的功能。這個電路是一個很簡單的 例子,只需要一個LUT加上一個觸發(fā)器就可以完成。對于一個LUT無法完成的電路,就需要通過進位邏輯將 多個單元相連,這樣FPGA就可以實現復雜的邏輯。
由于LUT主要適合SRAM工藝生產,所以目前大部分FPCA都是基于SRAM工藝的,而SRAM工藝的芯片在掉電 后信息就會丟失,所以需要外加一片專用配置芯片,在上電時,由這個專用配置芯片把數據加載到FPGA中 ,然后FPGA就可以正常工作,由于配置時間很短,不會影響系統正常工作。也有少數FPGA采用反熔絲或 Flashェ藝,對這種FPGA,就不需要外加專用的配置芯片。
圖4 FPGA器件的命名規(guī)則
4.CPLD與FPGA的選擇
根據CPLD的結構和原理可知,CPLD分解組合邏輯的功能很強,一個宏單元就可以分解十幾個甚至20~30 多個組合邏輯輸入。而FPGA的一個LUT只能處理4輸人的組合邏輯,因此,CPLD適合用于設計譯碼等復雜組 合邏輯。但FPGA的制造工藝確定了FPGA芯片中包含的LUT和觸發(fā)器的數量菲常多,往往都是成千上萬, CPLD一般只能做到512個邏輯單元,而且如果用芯片價格除以邏輯單元數量,FPGA的平均邏輯單元成本大 大低于CPLD。所以如果設計中使用到大量觸發(fā)器,例如設計一個復雜的時序邏輯,那么使用FPGA就是一個 很好的選擇。CPLD擁有上電即可工作的特性,而大部分FPGA需要一個加載過程,所以,如果系統要可編程 邏輯器件上電就工作,那么就應該選擇CPLD。
歡迎轉載,信息來源維庫電子市場網(www.dzsc.com)
來源:ks990次