分配FPGA引腳的幾個(gè)原則
? ? ? ? 現(xiàn)在的FPGA正變得越來越復(fù)雜,向引腳分配信號(hào)的任務(wù)曾經(jīng)很簡(jiǎn)單,現(xiàn)在也變得相當(dāng)繁復(fù)。下面這些用于向多用途引腳指配信號(hào)的指導(dǎo)方針有助于設(shè)計(jì)師根據(jù)最多到最少的約束信號(hào)指配原則提前考慮信號(hào)指配,并減少反復(fù)的次數(shù)。
這里有一個(gè)前提,即假定設(shè)計(jì)師已經(jīng)根據(jù)設(shè)計(jì)的大概規(guī)模和信號(hào)要求確定了目標(biāo)器件范圍和型號(hào)。對(duì)以下每一步都應(yīng)在考慮單極信號(hào)前優(yōu)先考慮差分對(duì)信號(hào)。
最先指配那些只能在特定引腳上工作的特殊信號(hào),正常情況下是指串行I/O信號(hào)和全局時(shí)鐘信號(hào)。其次指配大型和/或高速信號(hào)總線,特別是那些要跨越多個(gè)庫(kù)或區(qū)域的信號(hào)。如果總線需要局部時(shí)鐘,那么就要考慮具有更多局部時(shí)鐘引腳的庫(kù)或區(qū)域,并先指配局部時(shí)鐘。
如果針對(duì)FPGA器件采用了多種I/O標(biāo)準(zhǔn),那么設(shè)計(jì)師還必須先考慮將I/O信號(hào)映射到庫(kù)/區(qū)。這一步需要慎重考慮,因?yàn)樵S多I/O標(biāo)準(zhǔn)和參考電壓是不兼容的。一些I/O標(biāo)準(zhǔn)要求在特殊引腳上輸入?yún)⒖茧妷?,使得這些引腳不可再用于一般用途。將高速輸出和雙向信號(hào)分開指配在一定程度上可避免同時(shí)開關(guān)輸出噪聲(SSO)問題。
第三,采用第二步中相同的基本規(guī)則指配速度較慢和約束較少的總線,但不用太多考慮SSO等問題。第四,最后完成個(gè)別信號(hào)的指配。如果只剩下少量引腳,或在第一次反復(fù)時(shí)用完了所有的引腳,可以考慮選用具有更多I/O數(shù)量的下一種器件,因?yàn)楦鶕?jù)市場(chǎng)情況肯定還會(huì)臨時(shí)增加某些功能,而且沒有哪個(gè)設(shè)計(jì)師愿意在設(shè)計(jì)的最后階段再做一遍指配過程吧。
在以上每一步中,要建立含有正確信號(hào)分配和I/O標(biāo)準(zhǔn)的約束文件,以及含有I/O設(shè)計(jì)部分的HDL文件。然后再開始布局和布線,因?yàn)榘磸淖疃嗉s束信號(hào)到最少約束信號(hào)的順序可以更好地發(fā)現(xiàn)錯(cuò)誤
在芯片的研發(fā)環(huán)節(jié),F(xiàn)PGA 驗(yàn)證是其中的重要的組成部分,如何有效的利用 FPGA 的資源,管腳分配也是必須考慮的一個(gè)重要問題。一般較好的方法是在綜合過程中通過時(shí)序的一些約束讓對(duì)應(yīng)的工具自動(dòng)分配,但是從研發(fā)的時(shí)間段上來考慮這種方法往往是不可取的,RTL驗(yàn)證與驗(yàn)證板設(shè)計(jì)必須是同步進(jìn)行的,在驗(yàn)證代碼出來時(shí)驗(yàn)證的單板也必須設(shè)計(jì)完畢,也就是管腳的分配也必須在設(shè)計(jì)代碼出來之前完成。所以,管腳的分配更多的將是依賴人,而非工具,這個(gè)時(shí)候就更需要考慮各方面的因素。
? ? ? ?如何分配FPGA引腳信號(hào)
綜合起來主要考慮以下的幾個(gè)方面:
1、 FPGA 所承載邏輯的信號(hào)流向。
IC 驗(yàn)證中所選用的 FPGA 一般邏輯容量都非常大,外部的管腳數(shù)量也相當(dāng)?shù)呢S富,這個(gè)時(shí)候就必須考慮到PCB 設(shè)計(jì)時(shí)的布線的難度,如果管腳的分配不合理,那么有可能在PCB 設(shè)計(jì)時(shí)出現(xiàn)大量的交叉的信號(hào)線,這給布線帶來很大的困難,甚至走不通,或者是即便是布線走通了,也有可能由于外部的延時(shí)過大而不滿足時(shí)序方面的要求。所以在管腳分配前對(duì) FPGA 工作的環(huán)境要相當(dāng)?shù)氖煜?,要?duì)其中的信號(hào)來自哪里去向何方非常的清楚,這就按照連線最短的原則將對(duì)應(yīng)的信號(hào)分配到與外部器件連線最近的 BANK 中
2、 掌握 FPGA 內(nèi)部 BANK 的分配的情況。
現(xiàn)在 FPGA 內(nèi)部都分成幾個(gè)區(qū)域,每個(gè)區(qū)域中可用的 I/O 管腳數(shù)量各不相同。在 IC 驗(yàn)證中都是采用了ALTERA 與 XILINX系列的 FPGA ,這兩個(gè)廠商的 FPGA中內(nèi)部BANK的分配有一定的差異,這可以在設(shè)計(jì)中查閱相關(guān)的手冊(cè)。下面與 ALTERA 中 Stratix II系列的 FPGA 內(nèi)部 BANK 的分配為例來進(jìn)行說明。
圖中詳細(xì)說明了 FPGA 內(nèi)部 BANK 的分配情況和每個(gè) BANK 中所支持的 I/O 標(biāo)準(zhǔn)。根據(jù) FPGA 中內(nèi)部BANK 的分配的情況,同時(shí)結(jié)合圖 1 中信號(hào)的流向也就可以大體固定
FPGA 在單板中的方向,同時(shí)按照就近的原則將相關(guān)的信號(hào)分配到相關(guān)的 BANK 中,這樣的方法可以完成一般信號(hào)的分配。
3、 掌握所選 FPGA 每個(gè) BANK 所支持的 I/O 標(biāo)準(zhǔn)。
可以看出 FPGA 內(nèi)部的每個(gè) BANK 所支持的 I/O 的標(biāo)準(zhǔn)不盡相同,所以管腳的分配時(shí)要將支持相同標(biāo)準(zhǔn)的管腳都集中到一個(gè) BANK 中,因?yàn)?FPGA 中同一個(gè)BANK一般不同時(shí)支持兩種 I/O 標(biāo)準(zhǔn),當(dāng)然也有例外,這就需要查閱相關(guān) I/O 標(biāo)準(zhǔn)所要求的工作條件。
4、 關(guān)注特殊信號(hào)的管腳的分配
這里的特殊信號(hào)主要是指時(shí)鐘信號(hào)與復(fù)位信號(hào),或者是一些要求驅(qū)動(dòng)能力較高的信號(hào)。時(shí)鐘信號(hào)一般都是要求分配到全局的時(shí)鐘管腳,這樣獲得的時(shí)間的延遲將是最小的,驅(qū)動(dòng)也最強(qiáng)。復(fù)位信號(hào)因?yàn)橐笸叫院抿?qū)動(dòng)的能力強(qiáng),所以一般的情況下也會(huì)從全局的時(shí)鐘管腳送入。在分配時(shí)鐘時(shí),根據(jù)時(shí)鐘的多少分配的策略差別很大,也需要重點(diǎn)關(guān)注,這需要查閱相應(yīng)的手冊(cè)看哪些時(shí)鐘分別能到達(dá)哪些區(qū)域,一般的時(shí)鐘都是差分時(shí)鐘,這個(gè)時(shí)候如果所用的不是差分時(shí)鐘就需要注意 P 端與 N 端一般不能同時(shí)分配給不同的時(shí)鐘信號(hào)。如下圖所示 XILINX 系列的 FPGA 中成對(duì)的時(shí)鐘如果是同時(shí)采用那么就不能同時(shí)到達(dá)相同的區(qū)域,因?yàn)榈竭_(dá)相同區(qū)域的時(shí)鐘線只有一根。
所以在時(shí)鐘較少時(shí)最好成對(duì)的P和S不要同時(shí)使用,而是只是選擇P或者是N這樣就不會(huì)出現(xiàn)沖突的情況。
5、 兼顧信號(hào)完整性的考慮。
由于在分配中常常會(huì)出現(xiàn)總線分配的情況,同時(shí)大量的總線又有可能常常是同時(shí)翻轉(zhuǎn),這樣就會(huì)帶來了一系列信號(hào)完整性的問題,所以在管腳分配時(shí)大量同時(shí)翻轉(zhuǎn)的信號(hào)盡量分開。
評(píng)論