轉(zhuǎn)載:https://blog.csdn.net/lg2lh/article/details/39083537
轉(zhuǎn)載: https://blog.csdn.net/times_poem/article/details/51351997
邏輯單元在FPGA器件內(nèi)部,用于完成用戶邏輯的最小單元;
邏輯單元在ALTERA叫作(Logic Element,LE)LE,在XILNX中叫作LC(LOGIC CELL);
1.邏輯單元和邏輯陣列
邏輯單元(Logic Element,LE)在FPGA器件內(nèi)部,用于完成用戶邏輯的最小單元。一個邏輯陣列包含16個邏輯單元以及一些其他資源, 在一個邏輯陣列內(nèi)部的16個邏輯單元有更為緊密的聯(lián)系,可以實現(xiàn)特有的功能。
一個邏輯單元主要由以下部件組成:一個四輸入的查詢表(LookUp Table,LUT),一個可編程的寄存器,一條進位鏈,一條寄存器級連鏈。
1、查詢表: 用于完成用戶需要的邏輯功能,CYCLONEⅡ系列的查詢表是4輸入1輸出的,可以完成任意4輸入1輸出的組合邏輯。
2、可編程寄存器:可以配置成D觸發(fā)器,T觸發(fā)器,JK觸發(fā)器,SR觸發(fā)器。每個寄存器包含4個輸入信號,數(shù)據(jù)輸入、時鐘輸入、時鐘使能、復(fù)位輸入。
一個邏輯單元包含3個輸出,兩個用于驅(qū)動行連接、列連接、直接連接,另外一個用于驅(qū)動本地互聯(lián)。 這三個輸出是相互獨立的。輸出信號可以來自于查詢表也可以來自于寄存器。,一個LE主要由兩部分組成:查找表LUT+可編程寄存器.
2.本地互連通路
是邏輯陣列的重要組成部分,芯片級設(shè)計思路上的考慮與節(jié)省我們就不討論,從實際運用出發(fā),直接看看這個互連通路是干什么用的。本地互連通路提供了一種邏輯陣列內(nèi)部的連接方式, 邏輯陣列內(nèi)部還包含一種對外的高速連接通路,稱之為直接連接通路。
直接連接通路連接的是相鄰的邏輯陣列,或者與邏輯陣列相鄰的M4K存儲器塊、乘法器、鎖相環(huán)等。
CYCLONEⅡ系列FPGA的邏輯單元有兩種工作模式:普通模式和算數(shù)模式。 普通模式適合于一般的邏輯運算。算數(shù)模式適用于實現(xiàn)加法器、計數(shù)器、累加器、比較器等。
邏輯陣列的主體是16個邏輯單元,另外還有一些邏輯陣列內(nèi)部的控制信號以及互連通路。前面所講的互聯(lián)通路和直接連接通路就是邏輯陣列中的部分。
邏輯陣列還包括一些控制信號:兩個時鐘信號,兩個時鐘使能信號,兩個異步復(fù)位信號,一個同步復(fù)位信號,一個同步加載信號。
3.內(nèi)部連接通路
在FPGA內(nèi)部存在各種連接通路,連接不同的模塊,比如邏輯單元之間、邏輯單元與存儲器之間。FPGA內(nèi)部資源是按照行列的形式排列的,所以連接通路也分為行列的。 行連接又分為R4連接、R24連接和直接連接。R4連接就是連接4個邏輯陣列,或者3個邏輯陣列和1個存儲塊, 或者3個邏輯陣列和1個乘法器。簡單地說就是連接4個模塊吧。R24就是24個模塊。列連接是C4,C16,含義不用說了吧,是連接4個模塊和16個模塊。
4.ALTERA的LE內(nèi)部結(jié)構(gòu)如下圖所示:


邏輯單元在xilinx中叫做CLB(configurable logic block)
CLB是xilinx基本邏輯單元,每個CLB包含兩個slices,每個slices由4個(A,B,C,D)6輸入LUT和8個寄存器組成。
同一CLB中的兩片slices沒有直接的線路連接,分屬于兩個不同的列。每列擁有獨立的快速進位鏈資源。

Xilinx FPGA芯片主要由6部分組成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時鐘管理、嵌入塊式RAM、豐富的布線資源、內(nèi)嵌的底層功能單元和內(nèi)嵌專用硬件模塊,如下圖所示;

每個模塊的功能如下:
1. 可編程輸入輸出單元(IOB)
可編程輸入/輸出單元簡稱I/O單元,是芯片與外界電路的接口部分,完成不同電氣特性下對輸入/輸出信號的驅(qū)動與匹配要求,其示意結(jié)構(gòu)如圖1-2所示。 FPGA內(nèi)的I/O按組分類,每組都能夠獨立地支持不同的I/O標(biāo)準(zhǔn)。通過軟件的靈活配置,可適配不同的電氣標(biāo)準(zhǔn)與I/O物理特性,可以調(diào)整驅(qū)動電流的大小,可以改變上、下拉電阻。目前,I/O口的頻率也越來越高,一些高端的FPGA通過DDR寄存器技術(shù)可以支持高達2Gbps的數(shù)據(jù)速率。

外部輸入信號可以通過IOB模塊的存儲單元輸入到FPGA的內(nèi)部,也可以直接輸入FPGA 內(nèi)部。當(dāng)外部輸入信號經(jīng)過IOB模塊的存儲單元輸入到FPGA內(nèi)部時,其保持時間(Hold Time)的要求可以降低,通常默認(rèn)為0。
為了便于管理和適應(yīng)多種電器標(biāo)準(zhǔn),F(xiàn)PGA的IOB被劃分為若干個組(bank),每個bank的接口標(biāo)準(zhǔn)由其接口電壓VCCO決定,一個bank只能有 一種VCCO,但不同bank的VCCO可以不同。只有相同電氣標(biāo)準(zhǔn)的端口才能連接在一起,VCCO電壓相同是接口標(biāo)準(zhǔn)的基本條件。
2. 可配置邏輯塊(CLB)
CLB是FPGA內(nèi)的基本邏輯單元。CLB的實際數(shù)量和特性會依器件的不同而不同,但是每個CLB都包含一個可配置開關(guān)矩陣,此矩陣由4或6個輸入、一些選型電路(多路復(fù)用器等)和觸發(fā)器組成。 開關(guān)矩陣是高度靈活的,可以對其進行配置以便處理組合邏輯、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB由多個(一般為4個或2個) 相同的Slice和附加邏輯構(gòu)成,如圖1-3所示。每個CLB模塊不僅可以用于實現(xiàn)組合邏輯、時序邏輯,還可以配置為分布式RAM和分布式ROM。

Slice是Xilinx公司定義的基本邏輯單位,其內(nèi)部結(jié)構(gòu)如圖1-4所示,一個Slice由兩個4輸入的函數(shù)、進位邏輯、算術(shù)邏輯、存儲邏輯和函數(shù)復(fù)用器組成。算術(shù)邏輯包括一個異或門(XORG)和一個專用與門(MULTAND),一個異或門可以使一個Slice實現(xiàn) 2bit全加操作,專用與門用于提高乘法器的效率;進位邏輯由專用進位信號和函數(shù)復(fù)用器(MUXC)組成,用于實現(xiàn)快速的算術(shù)加減法操作;4輸入函數(shù)發(fā)生 器用于實現(xiàn)4輸入LUT、分布式RAM或16比特移位寄存器(Virtex-5系列芯片的Slice中的兩個輸入函數(shù)為6輸入,可以實現(xiàn)6輸入LUT或 64比特移位寄存器);進位邏輯包括兩條快速進位鏈,用于提高CLB模塊的處理速度;

3. 數(shù)字時鐘管理模塊(DCM)
業(yè)內(nèi)大多數(shù)FPGA均提供數(shù)字時鐘管理(Xilinx的全部FPGA均具有這種特性)。Xilinx推出最先進的FPGA提供數(shù)字時鐘管理和相位環(huán)路鎖定。相位環(huán)路鎖定能夠提供精確的時鐘綜合,且能夠降低抖動,并實現(xiàn)過濾功能。
4. 嵌入式塊RAM(BRAM)
大多數(shù)FPGA都具有內(nèi)嵌的塊RAM,這大大拓展了FPGA的應(yīng)用范圍和靈活性。塊RAM可被配置為單端口RAM、雙端口RAM、內(nèi)容地址存儲器 (CAM)以及FIFO等常用存儲結(jié)構(gòu)。RAM、FIFO是比較普及的概念,在此就不冗述。CAM存儲器在其內(nèi)部的每個存儲單元中都有一個比較邏輯,寫入 CAM中的數(shù)據(jù)會和內(nèi)部的每一個數(shù)據(jù)進行比較,并返回與端口數(shù)據(jù)相同的所有數(shù)據(jù)的地址,因而在路由的地址交換器中有廣泛的應(yīng)用。除了塊RAM,還可以將 FPGA中的LUT靈活地配置成RAM、ROM和FIFO等結(jié)構(gòu)。在實際應(yīng)用中,芯片內(nèi)部塊RAM的數(shù)量也是選擇芯片的一個重要因素。
例如:單片塊RAM的容量為18k比特,即位寬為18比特、深度為1024,可以根據(jù)需要改變其位寬和深度,但要滿足兩個原則:首先,修改后的容量(位寬 深度)不能大于18k比特;其次,位寬最大不能超過36比特。當(dāng)然,可以將多片塊RAM級聯(lián)起來形成更大的RAM,此時只受限于芯片內(nèi)塊RAM的數(shù)量,而 不再受上面兩條原則約束。
5. 豐富的布線資源
布線資源連通FPGA內(nèi)部的所有單元,而連線的長度和工藝決定著信號在連線上的驅(qū)動能力和傳輸速度。FPGA芯片內(nèi)部有著豐富的布線資源,根據(jù)工藝、長 度、寬度和分布位置的不同而劃分為4類不同的類別。第一類是全局布線資源,用于芯片內(nèi)部全局時鐘和全局復(fù)位/置位的布線;第二類是長線資源,用以完成芯片 Bank間的高速信號和第二全局時鐘信號的布線;第三類是短線資源,用于完成基本邏輯單元之間的邏輯互連和布線;第四類是分布式的布線資源,用于專有時 鐘、復(fù)位等控制信號線。
在實際中設(shè)計者不需要直接選擇布線資源,布局布線器可自動地根據(jù)輸入邏輯網(wǎng)表的拓?fù)浣Y(jié)構(gòu)和約束條件選擇布線資源來連通各個模塊單元。從本質(zhì)上講,布線資源的使用方法和設(shè)計的結(jié)果有密切、直接的關(guān)系。
6. 底層內(nèi)嵌功能單元
內(nèi)嵌功能模塊主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等軟處理核(Soft Core)?,F(xiàn)在越來越豐富的內(nèi)嵌功能單元,使得單片F(xiàn)PGA成為了系統(tǒng)級的設(shè)計工具,使其具備了軟硬件聯(lián)合設(shè)計的能力,逐步向SOC平臺過渡。
DLL和PLL具有類似的功能,可以完成時鐘高精度、低抖動的倍頻和分頻,以及占空比調(diào)整和移相等功能。Xilinx公司生產(chǎn)的芯片上集成了 DLL,Altera公司的芯片集成了PLL,Lattice公司的新型芯片上同時集成了PLL和DLL。PLL 和DLL可以通過IP核生成的工具方便地進行管理和配置。DLL的結(jié)構(gòu)如圖1-5所示。

-
內(nèi)嵌專用硬核
內(nèi)嵌專用硬核是相對底層嵌入的軟核而言的,指FPGA處理能力強大的硬核(Hard Core),等效于ASIC電路。為了提高FPGA性能,芯片生產(chǎn)商在芯片內(nèi)部集成了一些專用的硬核。例如:為了提高FPGA的乘法速度,主流的FPGA 中都集成了專用乘法器;為了適用通信總線與接口標(biāo)準(zhǔn),很多高端的FPGA內(nèi)部都集成了串并收發(fā)器(SERDES),可以達到數(shù)十Gbps的收發(fā)速度。 Xilinx公司的高端產(chǎn)品不僅集成了Power PC系列CPU,還內(nèi)嵌了DSP Core模塊,其相應(yīng)的系統(tǒng)級設(shè)計工具是EDK和Platform Studio,并依此提出了片上系統(tǒng)(System on Chip)的概念。通過PowerPC、Miroblaze、Picoblaze等平臺,能夠開發(fā)標(biāo)準(zhǔn)的DSP處理器及其相關(guān)應(yīng)用,達到SOC的開發(fā)目 的。(1) 軟核
軟核在EDA設(shè)計領(lǐng)域指的是綜合之前的寄存器傳輸級(RTL)模型;具體在FPGA設(shè)計中指的是對電路的硬件語言描述,包括邏輯描述、網(wǎng)表和幫助文檔等。 軟核只經(jīng)過功能仿真,需要經(jīng)過綜合以及布局布線才能使用。其優(yōu)點是靈活性高、可移植性強,允許用戶自配置;缺點是對模塊的預(yù)測性較低,在后續(xù)設(shè)計中存在發(fā) 生錯誤的可能性,有一定的設(shè)計風(fēng)險。軟核是IP核應(yīng)用最廣泛的形式。(2)固核
固核在EDA設(shè)計領(lǐng)域指的是帶有平面規(guī)劃信息的網(wǎng)表;具體在FPGA設(shè)計中可以看做帶有布局規(guī)劃的軟核,通常以RTL代碼和對應(yīng)具體工藝網(wǎng)表的混合形式提 供。將RTL描述結(jié)合具體標(biāo)準(zhǔn)單元庫進行綜合優(yōu)化設(shè)計,形成門級網(wǎng)表,再通過布局布線工具即可使用。和軟核相比,固核的設(shè)計靈活性稍差,但在可靠性上有較 大提高。目前,固核也是IP核的主流形式之一。(3)硬核
硬核在EDA設(shè)計領(lǐng)域指經(jīng)過驗證的設(shè)計版圖;具體在FPGA設(shè)計中指布局和工藝固定、經(jīng)過前端和后端驗證的設(shè)計,設(shè)計人員不能對其修改。不能修改的原因有 兩個:首先是系統(tǒng)設(shè)計對各個模塊的時序要求很嚴(yán)格,不允許打亂已有的物理版圖;其次是保護知識產(chǎn)權(quán)的要求,不允許設(shè)計人員對其有任何改動。IP硬核的不許 修改特點使其復(fù)用有一定的困難,因此只能用于某些特定應(yīng)用,使用范圍較窄。
LE=1個LUT+1個FF;
CLB=(2 or 4 )slice=(2 or 4 )*(4LUT+8FF);
換算LUT資源,還是要根據(jù)具體FPGA型號來計算;