一、FPGA芯片基本結構
1、可編程邏輯單元(CLB)
這是FPGA芯片中最重要的部分,用于實現數字邏輯電路中的邏輯功能和控制。包括查找表(LUT)和D觸發器。查找表是邏輯塊的計算單元,由多個輸入和一個輸出組成,用于實現各種邏輯功能。D觸發器則用于存儲狀態和時序控制。FPGA芯片中通常包含數千個這樣的邏輯單元,以支持復雜的邏輯運算。
2、可編程輸入輸出單元(IOB)
作為FPGA芯片與外界電路的接口,完成不同電氣特性下對輸入/輸出信號的驅動與匹配要求。FPGA的IOB被劃分為若干個組(bank),每個bank可以獨立地支持不同的I/O標準,并可以通過軟件靈活配置以適應不同的電氣標準和I/O物理特性。
3、嵌入式RAM塊
提供內部存儲器資源,用于存儲與內存相關的數據和程序。包括寄存器、隨機存儲器模塊(RAM)等。RAM可以被配置為單端口RAM、雙端口RAM、內容地址存儲器(CAM)以及FIFO等常用存儲結構。
4、布線網絡
連通FPGA內部的所有單元,確保信號能夠在芯片內部有效傳輸。根據工藝、長度、寬度和分布位置的不同,布線資源通常被劃分為全局布線資源、長線資源、短線資源和分布式布線資源等。
5、時鐘管理單元
生成和管理時鐘信號,確保同步電路中的各個部分能夠按照預定的時序進行工作。包括DLL和PLL等電路,用于實現時鐘的高精度、低抖動倍頻和分頻,以及占空比調整和移相等功能。
6、內嵌的底層功能單元和專用硬件模塊
提供額外的硬件加速功能,如DSP(數字信號處理)模塊、CPU軟核等,以提高FPGA的性能和應用范圍。這些模塊可以根據設計需求進行配置和使用,以實現特定的功能和應用。

二、FPGA芯片的工作原理
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸入輸出模塊IOB(Input Output Block)和內部連線(Interconnect)三個部分。
現場可編程門陣列(FPGA)是可編程器件,與傳統邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的結構。FPGA利用小型查找表(16×1RAM)來實現組合邏輯,每個查找表連接到一個D觸發器的輸入端,觸發器再來驅動其他邏輯電路或驅動I/O,由此構成了既可實現組合邏輯功能又可實現時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。
FPGA的邏輯是通過向內部靜態存儲單元加載編程數據來實現的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯接方式,并最終決定了FPGA所能實現的功能,FPGA允許無限次的編程。