一、FPGA芯片基本結構
1、可編程邏輯單元(CLB)
這是FPGA芯片中最重要的部分,用于實現數字邏輯電路中的邏輯功能和控制。包括查找表(LUT)和D觸發器。查找表是邏輯(ji)塊的計算(suan)單(dan)元,由多(duo)個(ge)(ge)輸入和一個(ge)(ge)輸出(chu)組成,用于實(shi)現各種邏輯(ji)功能。D觸發器則用于存儲狀態(tai)和時序控制。FPGA芯片中通常包(bao)含數(shu)千個這樣(yang)的邏(luo)輯單元,以支持復(fu)雜的邏(luo)輯運算(suan)。
2、可編程輸入輸出單元(IOB)
作為FPGA芯片與外界電路的接口,完成不同電氣特性下對輸入/輸出信號的驅動與匹配要求。FPGA的IOB被劃分(fen)為(wei)若干個(ge)組(bank),每個(ge)bank可以(yi)獨立地支持(chi)不同的I/O標準,并可以(yi)通過軟件(jian)靈活配置以(yi)適應不同的電氣標準和I/O物理(li)特性。
3、嵌入式RAM塊
提供內部存儲器資源,用于存儲與內存相關的數據和程序。包括寄存器(qi)(qi)、隨機存儲(chu)器(qi)(qi)模(mo)塊(RAM)等(deng)。RAM可以被配置為單端(duan)口RAM、雙端(duan)口RAM、內容地址存儲(chu)器(qi)(qi)(CAM)以及FIFO等(deng)常用(yong)存儲(chu)結(jie)構。
4、布線網絡
連通FPGA內部的所有單元,確保信號能夠在芯片內部有效傳輸。根據(ju)工藝、長度、寬(kuan)度和分(fen)布位置的不同,布線資(zi)源(yuan)通常被劃分(fen)為全局布線資(zi)源(yuan)、長線資(zi)源(yuan)、短線資(zi)源(yuan)和分(fen)布式布線資(zi)源(yuan)等(deng)。
5、時鐘管理單元
生成和管理時鐘信號,確保同步電路中的各個部分能夠按照預定的時序進行工作。包(bao)括DLL和(he)PLL等(deng)電路,用于實現時鐘的高(gao)精度、低(di)抖動倍頻和(he)分頻,以及(ji)占空比調整和(he)移(yi)相等(deng)功(gong)能。
6、內嵌的底層功能單元和專用硬件模塊
提供額外的硬件加速功能,如DSP(數字信號處理)模塊、CPU軟核等,以提高FPGA的性能和應用范圍。這(zhe)些模塊可(ke)以根(gen)據設(she)計需求進行配置和使用,以實現(xian)特定(ding)的功能和應(ying)用。
二、FPGA芯片的工作原理
FPGA采(cai)用了邏(luo)輯(ji)(ji)單(dan)元陣(zhen)列(lie)LCA(Logic Cell Array)這樣一個概念,內(nei)部(bu)包括可配置邏(luo)輯(ji)(ji)模塊CLB(Configurable Logic Block)、輸(shu)入(ru)輸(shu)出模塊IOB(Input Output Block)和內(nei)部(bu)連線(Interconnect)三個部(bu)分(fen)。
現場可編(bian)程(cheng)門陣(zhen)列(FPGA)是(shi)可編(bian)程(cheng)器件(jian),與傳統(tong)邏(luo)(luo)輯(ji)(ji)電(dian)路和門陣(zhen)列(如PAL,GAL及(ji)CPLD器件(jian))相(xiang)比(bi),FPGA具有不同(tong)的結構(gou)(gou)。FPGA利用小型查(cha)找(zhao)表(biao)(16×1RAM)來實現組合(he)邏(luo)(luo)輯(ji)(ji),每個查(cha)找(zhao)表(biao)連(lian)接(jie)(jie)到(dao)一個D觸發(fa)器的輸入(ru)端,觸發(fa)器再來驅(qu)動其他邏(luo)(luo)輯(ji)(ji)電(dian)路或驅(qu)動I/O,由此(ci)構(gou)(gou)成了既可實現組合(he)邏(luo)(luo)輯(ji)(ji)功能(neng)又可實現時序邏(luo)(luo)輯(ji)(ji)功能(neng)的基本邏(luo)(luo)輯(ji)(ji)單元模塊,這些模塊間利用金屬(shu)連(lian)線(xian)互相(xiang)連(lian)接(jie)(jie)或連(lian)接(jie)(jie)到(dao)I/O模塊。
FPGA的邏輯是通過向內部靜態存儲單元加載編程數據來實現的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯接方式,并最終決定了FPGA所能實現的功能,FPGA允許無限次的編程。