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