FPGA學(xué)習(xí)——FPGA硬件基礎(chǔ)常識
一、?FPGA基本原理
(一)廠商發(fā)展
????目前FPGA主要廠商有兩個——Xilinx和Altera(被Intel收購)。
1. Xilinx簡介
????FPGA市場的龍頭,占有率達(dá)50%,其主要產(chǎn)品為:Sparten系列、Virtex系列、Artix系列、Kintex系列、Virtex系列等。
????其六代以及之前的產(chǎn)品開發(fā)工具均為ISE,從七代開始全部移植到vivado平臺。
2. Altera簡介
????FPGA市場的二把手,占有率40%以上,2015年被Intel收購,主要產(chǎn)品為:Max系列、Cyclone系列、Arria系列、Stratix系列等。
????其開發(fā)工具為Quartus。
(二)Xilinx FPGA實現(xiàn)原理
1. 基本電路工藝
????現(xiàn)如今絕大多數(shù)集成電路采用CMOS工藝,CMOS電路是互補(bǔ)型金屬氧化物半導(dǎo)體電路(Complementary Metal-Oxide-Semiconductor)的英文字頭縮寫,它由絕緣場效應(yīng)晶體管組成,由于只有一種載流子,因而是一種單極型晶體管集成電路,其基本結(jié)構(gòu)是一個N溝道MOS管和一個P溝道MOS管。
2. LUT(Look Up Table,查找表)
????FPGA基于查找表技術(shù)實現(xiàn),通過LUT可以實現(xiàn)與門、非門、或門、與非門等基礎(chǔ)邏輯運算,LUT本質(zhì)上就是1bit位寬的RAM,通過輸入進(jìn)行尋址,輸出尋址到的數(shù)據(jù)。
????使用LUT的好處是延遲固定,且由LUT組成的組合邏輯電路的功能只與配置有關(guān),電路復(fù)雜度不會指數(shù)級提升。
3. Slice
(1)Slice基本組成
????Slice由4個6輸入LUT和8個寄存器組成,每4個寄存器為一組,4可配置為D觸發(fā)器或者鎖存器,另外4個只能配置為D觸發(fā)器。
????同時,Slice內(nèi)還有多路復(fù)用器(1位寬的數(shù)據(jù)選擇器mux),由于足夠使用,所以一般不用考慮;其還有進(jìn)位邏輯(carry chain),它是異或門,是FPGA內(nèi)自帶的進(jìn)位鏈邏輯,當(dāng)實現(xiàn)計數(shù)器等功能時可能會調(diào)用它。
(2)Slice分類
????其分為SliceM(memory)和SliceL(logic)兩種(還有說有SliceX,但是沒找到),它們兩個的區(qū)別是SliceM內(nèi)含有可以將LUT重新整合為32位的移位寄存器或者Distributed RAM(分布式RAM)。
4. CLB(Configurable Logic Blocks,可配置邏輯塊)
????CLB是FPGA的最小邏輯單元,1個CLB包含兩個Slice,一般是兩個SliceL或者一個SliceL、一個SliceM。
5. block RAM
????塊隨機(jī)存儲器,SP3系列含有最多1.87Mbit的Block RAM,主要應(yīng)用于構(gòu)造數(shù)據(jù)高速緩沖存儲器、深的FIFO和緩沖器等。
????與分布式RAM的區(qū)別是,它是固定存在的,可以減少對于CLB的使用。
6. 時鐘管理(CMT)單元
????1個CMT由1個MMCM和1個PLL組成,MMCM、PLL均可實現(xiàn)時鐘整數(shù)倍的頻率綜合、去抖、去偏斜,但MMCM還可以實現(xiàn)分?jǐn)?shù)倍的頻率綜合、反相時鐘輸出以及動態(tài)的時鐘相位調(diào)整。
7. 數(shù)字信號處理(DSP)單元
????對于FPGA來說,它可以進(jìn)行大量的簡單運算,并將其高速并行運行,但是它對于復(fù)雜運算并不擅長,比如乘法運算,實現(xiàn)乘法運算需消耗大量的資源,所以廠家就加入了硬件DSP核,從而利用DSP進(jìn)行復(fù)雜運算。
8. 端口控制(IOB)單元
????IOB即可編程輸入輸出單元,是FPGA與外部連接的電路部分。