一、FPGA芯片基本結(jié)構(gòu)
1、可編程邏輯單元(CLB)
這是FPGA芯片中最重要的部分,用于實(shí)現(xiàn)數(shù)字邏輯電路中的邏輯功能和控制。包括查找表(LUT)和D觸發(fā)器。查找表是邏輯塊的計(jì)算單元,由多個(gè)輸入和一個(gè)輸出組成,用于實(shí)現(xiàn)各種邏輯功能。D觸發(fā)器則用于存儲(chǔ)狀態(tài)和時(shí)序控制。FPGA芯片中通常包含數(shù)千個(gè)這樣的邏輯單元,以支持復(fù)雜的邏輯運(yùn)算。
2、可編程輸入輸出單元(IOB)
作為FPGA芯片與外界電路的接口,完成不同電氣特性下對(duì)輸入/輸出信號(hào)的驅(qū)動(dòng)與匹配要求。FPGA的IOB被劃分為若干個(gè)組(bank),每個(gè)bank可以獨(dú)立地支持不同的I/O標(biāo)準(zhǔn),并可以通過軟件靈活配置以適應(yīng)不同的電氣標(biāo)準(zhǔn)和I/O物理特性。
3、嵌入式RAM塊
提供內(nèi)部存儲(chǔ)器資源,用于存儲(chǔ)與內(nèi)存相關(guān)的數(shù)據(jù)和程序。包括寄存器、隨機(jī)存儲(chǔ)器模塊(RAM)等。RAM可以被配置為單端口RAM、雙端口RAM、內(nèi)容地址存儲(chǔ)器(CAM)以及FIFO等常用存儲(chǔ)結(jié)構(gòu)。
4、布線網(wǎng)絡(luò)
連通FPGA內(nèi)部的所有單元,確保信號(hào)能夠在芯片內(nèi)部有效傳輸。根據(jù)工藝、長(zhǎng)度、寬度和分布位置的不同,布線資源通常被劃分為全局布線資源、長(zhǎng)線資源、短線資源和分布式布線資源等。
5、時(shí)鐘管理單元
生成和管理時(shí)鐘信號(hào),確保同步電路中的各個(gè)部分能夠按照預(yù)定的時(shí)序進(jìn)行工作。包括DLL和PLL等電路,用于實(shí)現(xiàn)時(shí)鐘的高精度、低抖動(dòng)倍頻和分頻,以及占空比調(diào)整和移相等功能。
6、內(nèi)嵌的底層功能單元和專用硬件模塊
提供額外的硬件加速功能,如DSP(數(shù)字信號(hào)處理)模塊、CPU軟核等,以提高FPGA的性能和應(yīng)用范圍。這些模塊可以根據(jù)設(shè)計(jì)需求進(jìn)行配置和使用,以實(shí)現(xiàn)特定的功能和應(yīng)用。
二、FPGA芯片的工作原理
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸入輸出模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。
現(xiàn)場(chǎng)可編程門陣列(FPGA)是可編程器件,與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu)。FPGA利用小型查找表(16×1RAM)來實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)I/O,由此構(gòu)成了既可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。
FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實(shí)現(xiàn)的功能,FPGA允許無限次的編程。