fpga內(nèi)部的可編程互連資源是連接各模塊的通道,形成多個(gè)clb,iob組成的功能電路?;ミB資源主要由各種長(zhǎng)度的金屬導(dǎo)線、可編程開(kāi)關(guān)點(diǎn)和可編程開(kāi)關(guān)矩陣組成。 fpga內(nèi)部信號(hào)通過(guò)金屬線在各個(gè)模塊進(jìn)行傳輸,并通過(guò)可編程開(kāi)關(guān)點(diǎn)和可編程開(kāi)關(guān)矩陣控制其傳輸方向。
所有的內(nèi)部布線通道都由金屬線、可編程開(kāi)關(guān)點(diǎn)及可編程開(kāi)關(guān)矩陣來(lái)完成布線任務(wù)。圖1所示是spartan系列clb可編程連線資源示意圖。布線區(qū)里的金屬線以縱橫交錯(cuò)的格柵狀結(jié)構(gòu)分布在兩個(gè)層面(一層為橫向線段;一層為縱向線段),金屬線可分為單長(zhǎng)線、雙長(zhǎng)線、長(zhǎng)線和全局時(shí)鐘線。下面對(duì)spartan系列clb可編程連線資源進(jìn)行分別介紹。
圖1 clb可編程連線資源
圖2 可編程開(kāi)關(guān)矩陣
1. 可編程開(kāi)關(guān)矩陣
在每一個(gè)水平和垂直布線通道的交匯處有-個(gè)控制布線方向的可編程開(kāi)關(guān)矩陣,其結(jié)構(gòu)如圖4.7所示。每個(gè)開(kāi)關(guān)矩陣是由多個(gè)可編程的跨接的晶體管用于建立線間的連接。允許毗鄰行和列的金屬線段之間的可編程互連。例如一個(gè)單倍長(zhǎng)度信號(hào)從開(kāi)關(guān)矩陣的右邊進(jìn)入。能夠與布線到上部、左部或底部的單長(zhǎng)度線。同樣,雙長(zhǎng)度線也是一樣。
2.單長(zhǎng)度線
單倍長(zhǎng)度線提供了一種最大的互連靈活性和相鄰功能塊之間的快速布線。在鄰近的clb中,有八條水平及八條垂直的單倍長(zhǎng)度線與每個(gè)clb相連,這些線把位于clb每行每列的開(kāi)關(guān)矩陣連接起來(lái)。單長(zhǎng)度線之間的連接通過(guò)可編程開(kāi)關(guān)矩陣的方式連接的。
單倍長(zhǎng)度線在通過(guò)每個(gè)開(kāi)關(guān)矩陣會(huì)產(chǎn)生延遲,因此,不適合長(zhǎng)距離信號(hào)布線。通常用于局部區(qū)域的信號(hào)布線。
3.雙長(zhǎng)度線
由柵狀金屬段組成,比單長(zhǎng)度線長(zhǎng)兩倍。有四條水平或垂直的雙長(zhǎng)度線與每個(gè)clb相連。在進(jìn)入下一個(gè)開(kāi)關(guān)矩陣之前穿行兩個(gè)clb。雙長(zhǎng)度線是與開(kāi)關(guān)矩陣交錯(cuò)成對(duì)分組,以使每根線在clb的另一行或列通過(guò)開(kāi)關(guān)矩陣。雙長(zhǎng)度線由開(kāi)關(guān)矩陣編程連接。提供快速靈活的中等距離布線。
4.長(zhǎng)線
長(zhǎng)線通常水平地或垂直地跨過(guò)整個(gè)陣列,或由中點(diǎn)的一個(gè)可編程分離開(kāi)關(guān)將長(zhǎng)線分成兩條獨(dú)立的布線通道。每行每列兩個(gè)clb之間有3條水平長(zhǎng)線。長(zhǎng)線是能被一系列的三態(tài)門(mén)驅(qū)動(dòng),所以它們可以實(shí)現(xiàn)三態(tài)總線、寬多路轉(zhuǎn)換器和”線與” 、”線或”功能。長(zhǎng)線用于高扇出,時(shí)延小,遠(yuǎn)距離布線。
5.全局時(shí)鐘線
全局時(shí)鐘線只分布在垂直方向上,用來(lái)提供全局時(shí)鐘信號(hào)和高扇出的控制信號(hào)。
6.布線通道
布線通道有三種:
(1) clb布線通道:用于連接行列通道的clb的布線通道為clb布線通道。
(2) iob布線通道:在clb陣列周圍,用于連接i/o和clb布線通道。
(3) 全局布線:任務(wù)是分配整個(gè)器件的時(shí)鐘得到最小的延遲和擺率。全局布線也可用作其它高扇出信號(hào)布線。
所有的內(nèi)部布線通道是由金屬段及可編程的開(kāi)關(guān)點(diǎn)及開(kāi)關(guān)矩陣來(lái)完成布線任務(wù)。一個(gè)構(gòu)造的體系的矩陣在布線通道提供自動(dòng)高效布線。設(shè)計(jì)軟件基于密度和時(shí)序的要求自動(dòng)分配適當(dāng)資源。為了保證得到精確內(nèi)連線的描述,設(shè)計(jì)者可打開(kāi)epic設(shè)計(jì)編輯器去查找器件內(nèi)實(shí)際的內(nèi)部連接。
clb輸入輸出信號(hào)均勻分布于clb四周提供最大布線的靈活性。一般整個(gè)結(jié)構(gòu)是對(duì)稱有規(guī)則的,它適合建立布局布線的算法。輸入、輸出及查找表能自由在clb內(nèi)改變位置避免布線擁擠。
圖3 clb布線連線圖
spartan系列詳細(xì)的clb布線連線圖如圖3所示,陰影方塊是可編程開(kāi)關(guān)矩陣。金屬線通過(guò)開(kāi)關(guān)矩陣psm和可編程開(kāi)關(guān)點(diǎn)與clb和iob相連。在每一個(gè)水平和垂直布線通道的交匯處有-個(gè)控制布線方向的可編程開(kāi)關(guān)矩陣psm??删幊涕_(kāi)關(guān)點(diǎn)也是由可編程的晶體管實(shí)現(xiàn)所選金屬線之間及模塊引腳之間的連接。
fpga的分段式連線結(jié)構(gòu)提供了很好的互連靈活性和很高的布線成功率。但是這種連線結(jié)構(gòu)也具有明顯的缺點(diǎn),由于每個(gè)信號(hào)的傳輸途徑和金屬線長(zhǎng)度各異,它的信號(hào)傳輸延遲時(shí)間不能確定。與fpga相比,cpld不采用分段又連方式,cpld利用連續(xù)式互連結(jié)構(gòu)實(shí)現(xiàn)邏輯單元的互連,因而具有較大的時(shí)間可預(yù)測(cè)性,產(chǎn)品可以給出引腿到引腿的最大延遲時(shí)間,同時(shí)工作速度也更快;具有isp性能的cpld,可以直接在系統(tǒng)內(nèi)對(duì)其進(jìn)行編程,因而類似于一問(wèn)世就具有isp性能的sram查找表類型的fpga;cpld的主要缺點(diǎn)是功耗比較大,15000門(mén)以上的cpld功耗要高于fpga、門(mén)陣列和分立器件。