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