XILINX公司擁有多種不同系列的FPGA芯片,隨著微電子技術(shù)的發(fā)展,芯片的結(jié)構(gòu)與功能也發(fā)生了相應(yīng)的變化。本文參考了XILINX系列芯片的相關(guān)資料,結(jié)合微電子電路相關(guān)知識(shí),重點(diǎn)針對(duì)Virtex系列芯片,從其基本結(jié)構(gòu)、CLB (可配置邏輯塊) 、IOB (輸入輸出模塊) 、可編程內(nèi)連等方面進(jìn)行了詳細(xì)的分析研究。最后通過比較的方式給出了各系列芯片間芯片結(jié)構(gòu)以及性能上的差異。
1 Virtex系列芯片基本概況
Virtex系列芯片的基本電路框圖結(jié)構(gòu)如圖1 所示。它主要由可配置邏輯塊( Configurable Logic Blocks, CLB)組成的規(guī)則陣列構(gòu)成內(nèi)部核心部分;周圍是輸入輸出模塊( Input/Output B locks, IOB) ;在管芯的四個(gè)角上有4個(gè)時(shí)鐘鎖相環(huán);遍及整個(gè)芯片分布著4個(gè)通用低擺率的全局時(shí)鐘分配網(wǎng)絡(luò);在CLB與IOB之間,有兩列RAM塊,分別位于左右對(duì)稱的兩側(cè),這一系列的芯片可以把配置數(shù)據(jù)存在其內(nèi)部的靜態(tài)存儲(chǔ)單元中,通過這種方式可以實(shí)現(xiàn)無限循環(huán)次數(shù)的重復(fù)編程,存儲(chǔ)在靜態(tài)存儲(chǔ)單元中的值控制著可配置存儲(chǔ)單元及內(nèi)連資源,這些值在上電時(shí)加載到靜態(tài)存儲(chǔ)單元中,如果需要改變系統(tǒng)功能時(shí)可重新對(duì)其進(jìn)行配置,同時(shí),它還提供了基于函數(shù)發(fā)生器的單端口與雙端口的分布式RAM。
Virtex系列芯片最多可容納的邏輯門數(shù)為1000000門,系統(tǒng)時(shí)鐘頻率可達(dá)200MHz;它采用5層金屬板的CMOS工藝。
2 Virtex系列芯片詳細(xì)分析
1)輸入輸出邏輯塊( IOB)
它提供了包裝引腳與內(nèi)部邏輯之間的接口界面。
Virtex系列芯片的IOB的電路結(jié)構(gòu)如圖2所示。
圖2中,三個(gè)IO寄存器既可作為D型觸發(fā)器也作為邊沿敏感的瑣存器,它們共用同一個(gè)時(shí)鐘,共用同一個(gè)置位/復(fù)位信號(hào),但各自有獨(dú)立的時(shí)鐘以始能信號(hào)。對(duì)每一個(gè)寄存器,輸入數(shù)據(jù)可配置成同步置位、同步復(fù)位、異步預(yù)置位、異步清零,具體配置可以通過軟件編程進(jìn)行控制。上拉電阻、下拉電阻以及弱保持電路是焊盤的附屬器件。配置前,與配置無關(guān)的輸出均被置于高阻狀態(tài),下拉電阻與弱保持電路處于非活動(dòng)狀態(tài),但輸入處于激活狀態(tài),配置模式中的全局原則控制著上拉電阻的激活,如果上拉電阻沒有被激活,所有引腳處于浮動(dòng)狀態(tài)。當(dāng)靜電和電壓過高時(shí)所有焊盤均可處于保護(hù)狀態(tài)之下。
a. 輸入通路。通過可編程的輸入緩沖把信號(hào)直接或經(jīng)過寄存器的輸出送入,信號(hào)在送入寄存器前,由可編程延遲器件對(duì)輸入信號(hào)進(jìn)行延時(shí)配置[ 2 ] ,使信號(hào)的延時(shí)與FPGA里時(shí)鐘的分配延時(shí)相同,故輸入信號(hào)焊盤與輸入時(shí)鐘焊盤之間的保持時(shí)間為0;如果延遲器件不對(duì)輸入信號(hào)進(jìn)行延時(shí)處理,則輸入信號(hào)與芯片輸入時(shí)鐘之間的保持時(shí)間不為0。如圖3所示。
圖3 ( a)中,電路圖中左邊的紅色箭頭表示從CLK焊盤到IO焊盤之間的延遲。T單元實(shí)現(xiàn)圖3 ( b)所示延時(shí)功能,它可以決定是否對(duì)輸入信號(hào)D1進(jìn)行延時(shí)。若有延時(shí),焊盤與焊盤之間的保持時(shí)間為0,但此時(shí)的建立時(shí)間增加到21ns;若無延時(shí),保持時(shí)間為5. 5ns,建立時(shí)間為2ns。所以,當(dāng)延時(shí)編程器件對(duì)輸入信號(hào)進(jìn)行的延時(shí)是以延長建立時(shí)間作為代價(jià)的,而且代價(jià)還比較大,相當(dāng)于無延遲的10倍! 圖3 ( b)是相應(yīng)的對(duì)輸入信號(hào)是否進(jìn)行延遲時(shí)的時(shí)序圖。另外,輸入信號(hào)對(duì)于CLK1 的保持時(shí)間是0,建立時(shí)間圖中未畫出;CLK1對(duì)于CLK也有一個(gè)延遲,這是時(shí)鐘信號(hào)通過時(shí)鐘緩沖以及全局時(shí)鐘分配網(wǎng)絡(luò)在整個(gè)芯片上對(duì)時(shí)鐘進(jìn)行分配過程中產(chǎn)生的延遲。
b. 輸出通路:圖2中,輸出信號(hào)可以經(jīng)過輸出緩沖直接輸出,也可先進(jìn)入寄存器然后再進(jìn)行輸出。每一個(gè)輸出焊盤上有一個(gè)弱保持電路,它監(jiān)視著焊盤上電壓的微妙變化,并對(duì)之進(jìn)行調(diào)整以匹配輸入信號(hào)。
2)可配置邏輯塊(CLB)
Virtex系列的CLB電路結(jié)構(gòu)如圖4所示。
CLB的基本組成單元為LC (邏輯單元) 。圖中列出了兩個(gè)LC,每個(gè)LC包括兩個(gè)4輸入的函數(shù)發(fā)生器、兩個(gè)進(jìn)位邏輯和兩個(gè)存儲(chǔ)單元。
a. LUT與函數(shù)發(fā)生器。函數(shù)發(fā)生器被用來實(shí)現(xiàn)一個(gè)4輸入的查找表,每個(gè)查找表可提供一個(gè)16 ×1bit的同步RAM,或形成一個(gè)可以存儲(chǔ)隨機(jī)的突發(fā)的快速數(shù)據(jù)的16bit的移位寄存器;同一個(gè)LC中的兩個(gè)部分可組合成一個(gè)16 ×2 - bit或32 × 1 - bit的同步RAM,或者組成一個(gè)16 x 1 - bit的雙端口的同步RAM。
b. 存儲(chǔ)單元。它可以被配置成D邊沿觸發(fā)器或者電平敏感的瑣存器,輸入可以是LUT的輸出也可是直接來自于LC的輸入信號(hào),旁路掉函數(shù)發(fā)生器。
c. 快速進(jìn)位邏輯。為高速算術(shù)函數(shù)的運(yùn)算提供了快速運(yùn)算進(jìn)位功能,它支持兩個(gè)獨(dú)立的進(jìn)位鏈。
3) RAM塊
Virtex系列中包含64個(gè)CLB的芯片中每列有16個(gè)RAM塊,所以共有32個(gè)RAM塊。每一個(gè)RAM塊都是完全同步的雙端口的4096 - bit的。每個(gè)端口都有獨(dú)立的配置信號(hào),且每個(gè)端口的數(shù)據(jù)寬度都是各自獨(dú)立配置的。
4)可編程的布線陣列
包括以下幾種布線。
a. 局部布線: Virtex系列的局部布線有三種方式的連接,即: LUT、觸發(fā)器、常規(guī)布線矩陣(GRM)之間的連接; CLB內(nèi)部把同一個(gè)CLB的輸出反饋回來作為自身LUT輸入的連接,這種連接提供了最小的延時(shí);在相鄰的CLB間提供水平連接,這種連接消除了信號(hào)在GRM中的延遲。這三種方式如圖5所示。
b. 常規(guī)布線: Virtex系列中在CLB的通道中,水平與豎直方向各有24根單長線連入GRM中,通過GRM中的可編程開關(guān)實(shí)現(xiàn)是否互連,以實(shí)現(xiàn)CLB 間的互連;四個(gè)方向各有12條帶緩沖的16進(jìn)制線每跨過6個(gè)CLB從一個(gè)GRM匯入下一下GRM;每個(gè)CLB分別在水平與豎直方向相鄰著12根帶緩沖的雙向的長線,長線的長度與CLB區(qū)域的長或?qū)捪嗤?/p>
c. IO布線:這是一種在芯片的周圍附加的布線資源,它提供了CLB 陣列與IOB 的交換界面,稱為多功能環(huán),同時(shí),除了能把IOB與CLB連接起來之外,還可以實(shí)現(xiàn)引腿之間信號(hào)的交換。
d. 直接連線:一些信號(hào)需要專門的連線來達(dá)到最優(yōu)性能的實(shí)現(xiàn),直接連線便實(shí)現(xiàn)了這一目的,在Virtex芯片中,有兩類這樣的信號(hào):在兩個(gè)獨(dú)立網(wǎng)絡(luò)中,每個(gè)CLB傳輸進(jìn)位信號(hào)給相鄰的CLB;水平布線資源在一個(gè)通道內(nèi)提供4條三態(tài)總線來與CLB交換信號(hào)。
e. 全局布線:它為時(shí)鐘及其實(shí)遍及整個(gè)芯片的多扇出信號(hào)提供分配通路。Virtex包括兩類全局布線資源:主全局布線與次全局布線。主全局布線由4個(gè)以最小擺率來分配高扇出時(shí)鐘信號(hào)的有專門輸入引腳的全局網(wǎng)絡(luò)構(gòu)成。次全局布線包括24 條主干線, 12 條穿過芯片上端, 12條通過芯片下端,通過這些線,每一個(gè)CLB列中可以有12條信號(hào)分布式地通過這列中的12條長線。
5)時(shí)鐘分配
通過主全局布線Virtex在整個(gè)芯片上提供高速、低擺率的時(shí)鐘分配。典型的時(shí)鐘分配如圖6所示。它提供了4個(gè)全局時(shí)鐘緩沖器, 4個(gè)專門的時(shí)鐘焊盤分別與每一個(gè)全局時(shí)鐘緩沖器相匹配,全局緩沖的輸入可以來自于這些焊盤,也可以來自于常規(guī)布線。
時(shí)鐘延遲瑣定環(huán)。與每一個(gè)全局時(shí)鐘緩沖器相關(guān)聯(lián)的是全數(shù)字的延遲瑣定環(huán),它可以有效地消除時(shí)鐘輸入焊盤與遍及整個(gè)芯片的時(shí)鐘輸入之間的擺率。每個(gè)DLL可驅(qū)動(dòng)兩個(gè)全局的時(shí)鐘網(wǎng)絡(luò),DLL監(jiān)視著總時(shí)鐘信號(hào)與被分配開的時(shí)鐘信號(hào),自動(dòng)調(diào)整時(shí)鐘延遲因素,它可以精確地實(shí)現(xiàn)從時(shí)鐘從焊盤輸入至其邊沿到達(dá)內(nèi)部觸發(fā)器時(shí)延遲1 - 4個(gè)時(shí)鐘周期的功能。這個(gè)閉合的環(huán)通過確保時(shí)鐘邊沿同步到達(dá)內(nèi)部觸發(fā)器來有效地消除時(shí)鐘分配延遲。為了保證系統(tǒng)時(shí)鐘在配置完畢剛開始啟動(dòng)FPGA時(shí)能夠正常工作,DLL 可以延遲配置的完成直到它已經(jīng)瑣定了時(shí)鐘為止。
3 結(jié)束語
本文僅給出了Virtex系列芯片的內(nèi)部基本結(jié)構(gòu)與性能分析?,F(xiàn)結(jié)合本文分析,對(duì)XILINX其它各系列芯片結(jié)構(gòu)與性能進(jìn)行如下比較。
器件容量與系統(tǒng)速度的提高。在芯片所容納的晶體管的門數(shù)上由較早XC3000 系列的最高7500 門的容量到Spartan - II系列的200000門直至Virtex系列的1000000門容量;在系統(tǒng)的時(shí)鐘速度上由原來的不足百兆到最后的200多兆,實(shí)現(xiàn)了質(zhì)的飛躍。
與CLB相關(guān)的內(nèi)置器件功能的增多。XC4000在XC3000的基礎(chǔ)上,增加了快速進(jìn)位邏輯,從而提高了器件進(jìn)行多種邏輯運(yùn)算的能力與速度。
IOB方面。XC4000的IOB 中除了對(duì)輸出配置較3000更加靈活外,還增加了一個(gè)輸出的MUX,它可以在輸出通路中實(shí)現(xiàn)多種基本的函數(shù)運(yùn)算;而在Spartan- II系列與Virtex系列的IOB中則更加強(qiáng)了對(duì)延時(shí)的控制,通過專有的延時(shí)電路可以實(shí)現(xiàn)信號(hào)與時(shí)鐘的良好匹配。
系統(tǒng)內(nèi)連方面, Spartan - II系列與Virtex系列的內(nèi)連,連接方式比XC4000更加條理化與模塊化,隨著器件內(nèi)部時(shí)鐘的大量使用,這兩系列把時(shí)鐘的分配單獨(dú)劃分出一系統(tǒng),建立了單一的時(shí)鐘分配網(wǎng)絡(luò)。
評(píng)論