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