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