????????FPGA 的基本結構分為5 部分:可編程邏輯塊(CLB)、輸入/輸出塊(IOB)、邏輯塊之間的布線資源、內嵌RAM 和內嵌的功能單元。
(1)可編程邏輯塊(CLB)
????????一個基本的可編程邏輯塊由一個寄存器(Register)和一個查找表(Look UpTable,LUT)組成。它是FPGA 內部可編程邏輯資源的基本組成。通過配置查找表,可以實現組合邏輯電路的功能。寄存器可以配置為各種觸發器和鎖存器。查找表和寄存器結合在一起可以實現各種邏輯設計。
(2)輸入/輸出塊(IOB)
????????輸入/輸出塊是FPGA 外部電路接口,需要滿足各種信號的驅動和匹配要求。通過分布在FPGA 芯片邊緣的寄存器將輸入/輸出塊設計成可編程單元,可以通過配置文件的配置使FPGA 的接口可以滿足各種電氣標準和物理特性的需求。
(3)邏輯塊間的布線資源
????????雖然FPGA 內部有著十分豐富的布線資源,但是布局布線的工作一般是由芯片設計廠商提供的設計軟件來完成,設計者并不需要進行詳細的布局布線設計。設計者不需要做布局布線的設計并不代表布線工作不重要,布局布線的結果直接影響功能設計的運行結果,尤其是時序上的影響。
(4)內嵌RAM 塊
????????設計者可以根據設計需要將內嵌RAM 塊配置成各種類型的存儲結構。除了使用BRAM 外,還可以將查找表配置成分布式RAM 來滿足小容量RAM 的設計需求。
(5)內嵌功能單元
????????FPGA 一般會嵌入一些比較常用的功能模塊,如鎖相環、延遲鎖定環、CPU和DSP 等。特定型號的FPGA 內部也會有CPU 這種軟處理核,這種類型FPGA不僅當作硬件設計平臺來使用還可以做一些系統級設計。隨著越來越多的設計需求,更多的功能模塊會逐步內嵌到FPGA 中。