從1985年Xilinx公司推出第一片F(xiàn)PGA到現(xiàn)在,F(xiàn)PGA的使用已經(jīng)有近30年的歷史了。目前主流市場的FPGA主要還是Xilinx和Intel altera兩大系列,下面分別來介紹下它們各自的基本結(jié)構(gòu)組成。
Xilinx的FPGA主要由以下單元結(jié)構(gòu)組成:可配置邏輯塊(CLB)、時(shí)鐘管理模塊(CMT)、存儲器(RAM/FIFO)、數(shù)字信號處理模塊(DSP)和一些專用模塊。以Virtex-5為例,簡單介紹下各模塊的功能。
1、可配置邏輯塊(CLB)
CLB是FPGA中組成設(shè)計(jì)邏輯的主要資源,也是電路設(shè)計(jì)中工作的主要對象,下面對CLB的內(nèi)外結(jié)構(gòu)做一個(gè)簡單介紹。FPGA的邏輯就是由陣列排布的CLB實(shí)現(xiàn)的,每個(gè)CLB單元都和一個(gè)開關(guān)陣列相連,并受其控制以實(shí)現(xiàn)邏輯,如下圖所示:
每一個(gè)CLB中包含有兩個(gè)基本結(jié)構(gòu)(Slice),每個(gè)基本結(jié)構(gòu)中包含4個(gè)查找表(LUT)、4個(gè)存儲單元、廣函數(shù)多路器(Wide_function Multiplexer)和進(jìn)位邏輯,這種基本結(jié)構(gòu)(Slice)稱為SLICEL。另外,有些基本結(jié)構(gòu)(Slice)中還包含使用RAM存儲數(shù)據(jù)的功能和使用32位寄存器移位的功能,支持這些功能的基本結(jié)構(gòu)稱為SLICEM。
2、時(shí)鐘管理模塊(CMT)
時(shí)鐘管理模塊(CMT)用于產(chǎn)生高質(zhì)量的時(shí)鐘,以Virtex-5系列器件為例,CMT包括兩個(gè) 數(shù)字時(shí)鐘管理單元(DCM)和一個(gè)鎖相環(huán)電路(PLL)。
3、存儲器(RAM/FIFO)
現(xiàn)代Xilinx的FPGA都有內(nèi)部的存儲器塊,以Virtex-5為例,內(nèi)部包含若干塊RAM,每一塊36KB,并且RAM的大小可以靈活配置。Virtex-5內(nèi)的RAM是同步的雙口RAM,并且可以配置為多速率的FIFO存儲器,極大地提高了設(shè)計(jì)的靈活性。
4、數(shù)字信號處理模塊(DSP)
大多數(shù)的FPGA產(chǎn)品都提供了DSP。
5、其他專用模塊
除了上述模塊外,在現(xiàn)代的Xilinx的FPGA產(chǎn)品中還有一些其他專用模塊,例如:Rocket IO千兆位級收發(fā)器、PCI Express端點(diǎn)模塊和三態(tài)以太網(wǎng)MAC模塊等。
Intel altera 的產(chǎn)品一般包括如下單元結(jié)構(gòu):邏輯陣列模塊(LAB)、TriMatrix存儲器模塊(RAM)、數(shù)字信號處理模塊(DSP)和鎖相環(huán)模塊(PLL)。下面以StartixII 器件為例說明Altera 公司產(chǎn)品的結(jié)構(gòu)。
1、邏輯陣列模塊(LAB)
邏輯陣列模塊(LAB)的主要結(jié)構(gòu)是8個(gè)適應(yīng)邏輯模塊(ALM),還包括一些進(jìn)位鏈和控制邏輯等結(jié)構(gòu)。適應(yīng)邏輯模塊(ALM)是StratixII器件的基本模塊,其結(jié)構(gòu)如下圖。
每個(gè)ALM中都包含了兩個(gè)可編程的寄存器、兩個(gè)專用全加器、一個(gè)進(jìn)位鏈、一個(gè)共享算術(shù)鏈和一個(gè)寄存器鏈。需要注意的是,在上圖所示的組合邏輯塊(Combinational Logic)中包含了兩個(gè)4輸入4 查找表(LUT)和4個(gè)三輸入的查找表。
2、 存儲器模塊(RAM)
StratixII器件具有TriMatrix存儲結(jié)構(gòu),它包括3種大小的嵌入式RAM塊。TriMatrix存儲器包括512位的M512塊、4Kb的M4K塊和512Kb的M-RAM塊,每個(gè)都可以配置支持各種特性。
3、 數(shù)字信號處理模塊(DSP)
DSP塊結(jié)構(gòu)是為實(shí)現(xiàn)多種 最大性能和最小邏輯資源利用率的DSP功能而優(yōu)化的。
4、 鎖相環(huán)(PLL)
StratixII器件具有多達(dá)12個(gè)鎖相環(huán)(PLL)和48個(gè)獨(dú)立系統(tǒng)時(shí)鐘,可以作為中央時(shí)鐘管理器滿足系統(tǒng)時(shí)序需求。
以上可以看出,Xilinx與 Intel altera的FPGA的結(jié)構(gòu)最大不同還是其邏輯單元部分:Xilinx的邏輯單元基本組成為可配置邏輯模塊(CLB),而Intel altera 的為LAB,但更深一層講,CLB和LAB里面也都是由LUT、觸發(fā)器等構(gòu)成的。兩個(gè)公司的FPGA組成各有特點(diǎn),這也決定了它們的FPGA產(chǎn)品在功能上各有特點(diǎn)。
總的來說,Xilinx家獨(dú)有可配置邏輯塊(CLB)/Slice,Altera家獨(dú)有邏輯陣列模塊(LAB),可以這么理解。
XC6SLX150-2FGG484I
XC6SLX16-2CSG324C
XC6SLX16-2FTG256C
XC6SLX16-2FTG256I
XC6SLX25-2CSG324C
XC6SLX25-2CSG324I
XC6SLX25-2FTG256C
XC6SLX25-3FTG256C
XC6SLX4-2TQG144C
XC6SLX45-2FGG676C
XC6SLX45-2FGG484C
XC6SLX45-L1CSG324I
XC6SLX45T-2FGG484I
XC6SLX75T-3FGG484I
XC6SLX9-2CSG324C
XC6SLX9-2CSG324I
XC6SLX9-2FTG256C
XC6SLX9-2FTG256I
XC6SLX9-2TQG144C