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