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