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