FPGA芯片內(nèi)部邏輯
a. Xilinx FPGA的可配置邏輯塊
(資料圖片僅供參考)
以Xilinx主流的7系列為例,一顆FPGA內(nèi)部通常都會有數(shù)千到數(shù)十萬不等的可配置邏輯塊(Configurable LogicBlock,簡稱CLB)
呈矩陣排布的CLB就構(gòu)成了最基本的FPGA邏輯資源的架構(gòu)
Xilinx 7系列的可配置邏輯塊可以有效的支持以下特性
使用6輸入查找表技術(shù)
可選的2個5輸入查找表功能
可實現(xiàn)分布式RAM和移位寄存器功能
用于運算功能的專用高速進(jìn)位鏈
支持資源高利用率的豐富復(fù)用開關(guān)
FPGA內(nèi)部豐富的可編程邏輯塊
a.1 Xilinx FPGA的可配置邏輯塊——CLB內(nèi)部結(jié)構(gòu)與Slice
從微觀角度看,CLB內(nèi)部主要由2個更小的單位Slice所組成
每個Slice都有獨立的高速進(jìn)位鏈以及獨立的布線通道連接到矩陣開關(guān),通過矩陣開關(guān)可以實現(xiàn)Slice與FPGA大布線池之間的靈活編程
每個slice單元則包含了以下更小的功能塊
4個邏輯功能發(fā)生器(或查找表)
8個存儲單元(或觸發(fā)器)
功能豐富的復(fù)用開關(guān)
進(jìn)位鏈
CLB內(nèi)部結(jié)構(gòu)
a.2 Xilinx FPGA的可配置邏輯塊——Slice內(nèi)部結(jié)構(gòu)單元
slice內(nèi)部2個非常基本且重要的結(jié)構(gòu)單元
6輸入查找表(Look-up table,LUT):用于執(zhí)行最基本的邏輯操作
觸發(fā)器(Flip-Flop,F(xiàn)F):用于存儲LUT操作結(jié)果的寄存器單元
對于Xilinx的7系列FPGA器件所使用的6輸入查找表,通常也可以配置實現(xiàn)以下不同的應(yīng)用功能
任何用戶定義的6輸入布爾運算功能
任何用戶定義的2個5輸入布爾運算功能,前提是2個輸出分別對應(yīng)的5輸入是共用的
任何用戶定義的2個3輸入或少于3輸入的布爾運算功能
a.3 Xilinx FPGA的可配置邏輯塊——觸發(fā)器
觸發(fā)器也是FPGA內(nèi)部基本的存儲單元
觸發(fā)器單元通常用于配對LUT進(jìn)行邏輯流水線處理和數(shù)據(jù)存儲
基本的觸發(fā)器結(jié)構(gòu)包括了一個數(shù)據(jù)輸入,一個時鐘輸入,一個時鐘使能信號,一個復(fù)位信號和一個數(shù)據(jù)輸出
觸發(fā)器工作原理
數(shù)據(jù)輸入端口上的任何值在每個時鐘上升沿將被鎖存并送到輸出端口
時鐘使能信號是為了使觸發(fā)器能夠連續(xù)多個時鐘周期保持某個固定電平值
時鐘使能信號拉高時,新的數(shù)據(jù)才會在時鐘上升沿被鎖存到數(shù)據(jù)輸出端口上
觸發(fā)器結(jié)構(gòu)
b. Xilinx FPGA的內(nèi)部結(jié)構(gòu)
b.1Xilinx FPGA的內(nèi)部結(jié)構(gòu)——IO塊、布線池和CLB
圍繞在CLB周圍豐富的行、列走線我們稱之為布線池,它用于銜接FPGA的各個CLB以及其它相關(guān)的資源
在FPGA芯片四周的小矩形以及延伸出去的短線,則是FPGA和外部芯片接口的IO塊的示意
IO塊、布線池和CLB
b.2Xilinx FPGA的內(nèi)部結(jié)構(gòu)——豐富的其它FPGA資源
以成塊出現(xiàn)的FPGA內(nèi)嵌存儲器(塊RAM)
用于產(chǎn)生不同時鐘頻率的鎖相環(huán)(PLL時鐘發(fā)生器)以及相應(yīng)的時鐘布線資源
高速串行收發(fā)器
外部存儲器控制器(硬核IP)
用于實現(xiàn)數(shù)字信號處理的乘累加模塊(DSPSlice)
模擬數(shù)字轉(zhuǎn)換模塊(Xilinx FPGA器件特有的Analog-to-Digital Converter,簡稱XADC)
標(biāo)簽: