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