本文介紹了利用現(xiàn)代FPGA架構(gòu)的先進(jìn)性能管理PCB復(fù)雜性的新方法,即可以減少PCB布線的擁塞,減少設(shè)計(jì)反復(fù)、重新設(shè)計(jì)的次數(shù)以及削減層和元件的數(shù)量。同時(shí)也概述了利用FPGA的靈活I(lǐng)/O特性降低PCB制造成本的方法。
內(nèi)置嵌入式處理器、DSP和存儲(chǔ)器模塊的高端FPGA有替代整個(gè)ASIC的趨勢(shì)。最新的FPGA器件能夠?qū)iT利用多個(gè)通用I/O管腳來(lái)創(chuàng)建更寬的配置總線,從而加快編程時(shí)間,而這些引腳在配置完成后仍可作為正常的I/O管腳使用。器件復(fù)雜度的增加意味著引腳數(shù)量的增加,這會(huì)提高在PCB上集成這些器件的難度和成本。設(shè)計(jì)小組必須認(rèn)真應(yīng)對(duì)這一挑戰(zhàn),以確保使用這些新的可編程器件時(shí)不會(huì)影響到產(chǎn)品的成本和上市時(shí)間。
引腳數(shù)量超過(guò)1,000的FPGA會(huì)給電路板設(shè)計(jì)帶來(lái)很大的麻煩。采用人工方式對(duì)這么多數(shù)量的引腳進(jìn)行布局和布線是非常低效的,特別是當(dāng)FPGA設(shè)計(jì)有稍許修改時(shí)會(huì)造成費(fèi)時(shí)的電路板設(shè)計(jì)反復(fù)。盡管引腳數(shù)量提高了,封裝上的引腳間距仍保持不變,但PCB上的引腳密度卻有顯著的增加。隨之產(chǎn)生的布線擁塞意味著大多數(shù)PCB設(shè)計(jì)師必須具備高密度互連(HDI)制造工藝方面的豐富經(jīng)驗(yàn)。包含高數(shù)量引腳FPGA器件的PCB需要更多層的電路板,底線是每增加一層,制造成本增加10%到20%。
理想的I/O標(biāo)準(zhǔn)選擇和配置必須考慮PCB的電氣特性。最新FPGA器件的高速串行I/O使得FPGA和系統(tǒng)板之間的接口成為特別棘手的問(wèn)題。例如數(shù)千兆位收發(fā)器(MGT)技術(shù)旨在顯著縮短數(shù)據(jù)路徑,同時(shí)戲劇性地提高吞吐量。然而這些高速I/O會(huì)帶來(lái)新的挑戰(zhàn)。設(shè)計(jì)師現(xiàn)在不是擔(dān)心系統(tǒng)時(shí)序、上沖/下沖、串?dāng)_和正確端接,而是關(guān)心介電損耗、趨膚效應(yīng)和確定性/隨機(jī)性抖動(dòng)問(wèn)題及其對(duì)碼間干擾的影響。
數(shù)千兆位差分信號(hào)的信號(hào)劣化和衰減主要有三大原因:介電損耗(是長(zhǎng)度和板材的函數(shù))、過(guò)孔損耗和連接器損耗。根據(jù)具體物理位置的不同,每個(gè)過(guò)孔的損耗將在0.5dB到1dB之間,而總的損耗裕量只不是10dB到15dB之間。因此,大多數(shù)FPGA制造商推薦將數(shù)千兆位收發(fā)器放置在FPGA的四周,以避免打孔到內(nèi)部信號(hào)層。根據(jù)FPGA制造商的規(guī)范要求,仔細(xì)的堆疊規(guī)劃對(duì)這些信號(hào)而言至關(guān)重要,以便達(dá)到仔細(xì)校準(zhǔn)過(guò)的差分阻抗。
為了進(jìn)一步解決好問(wèn)題,F(xiàn)PGA I/0設(shè)計(jì)是靈活的。其它任何硅片技術(shù)都無(wú)法提供像FPGA器件這樣靈活的接口特性。過(guò)去由于電路板設(shè)計(jì)和FPGA設(shè)計(jì)小組沒(méi)有取得I/O設(shè)計(jì)的同步致使許多PCB 需要重新設(shè)計(jì)的情況時(shí)有發(fā)生。具有I/O新功能的高引腳數(shù)量器件會(huì)顯著地增加PCB制造成本和整體上市時(shí)間,在這種情況下,借鑒本文推薦的解決方案就能夠跨越FPGA和PCB設(shè)計(jì)流程之間的日漸變寬的溝壑。
傳統(tǒng)的突破
FPGA設(shè)計(jì)流程采用的方法基于硬件描述語(yǔ)言,而PCB仍采用原理圖輸入方法。對(duì)復(fù)雜度不高的器件來(lái)說(shuō),傳統(tǒng)流程是可以接受的,F(xiàn)PGA和PCB可以在不同的設(shè)計(jì)環(huán)境中分別進(jìn)行設(shè)計(jì)。然而,這種傳統(tǒng)的FPGA和PCB設(shè)計(jì)小組獨(dú)立工作模式帶來(lái)的是以下這種串行步驟:
1. FPGA設(shè)計(jì)師定義設(shè)計(jì)的頂層模塊,并建立邏輯信號(hào);
2. FPGA設(shè)計(jì)師在FPGA綜合步驟中鎖定一些特殊信號(hào)(時(shí)鐘信號(hào)、專門的高速信號(hào));
3. FPGA供應(yīng)商的布局布線軟件自動(dòng)將其它的FPGA頂層信號(hào)分配到物理器件管腳,并創(chuàng)建FPGA引腳映射文件;
4. FPGA小組將引腳映射信息發(fā)送給PCB設(shè)計(jì)小組,同時(shí)庫(kù)管理員創(chuàng)建FPGA器件的定義;
5. PCB設(shè)計(jì)師創(chuàng)建FPGA的符號(hào)并將它引入PCB原理圖設(shè)計(jì);
6. 根據(jù)PCB的原理圖進(jìn)行PCB的布局布線。
將FPGA I/O設(shè)計(jì)數(shù)據(jù)傳送到PCB流程通常需要人工進(jìn)行數(shù)據(jù)的重新輸入(介于步驟3和4之間)。每個(gè)引腳有很多屬性,包括邏輯信號(hào)名、物理引腳號(hào)、引腳方向、引腳組(引腳交換組)、FPGA器件普通引腳名稱和差分信號(hào)引腳對(duì)等。這樣,有一千個(gè)引腳的器件意味著PCB庫(kù)管理員需要無(wú)任何差錯(cuò)地輸入6,000個(gè)數(shù)據(jù)。為了適合原理圖紙張的大小,高引腳數(shù)量的符號(hào)通常需要被分割成若干部分。這些部分的符號(hào)創(chuàng)建和管理工作需要花數(shù)天到數(shù)周的時(shí)間。每次FPGA到信號(hào)引腳映射關(guān)系的修改所導(dǎo)致的原理圖連接更新同樣也是一個(gè)漫長(zhǎng)又容易出錯(cuò)的過(guò)程。如果邏輯信號(hào)名和物理引腳號(hào)在FPGA流程和PCB流程之間沒(méi)有得到同步,那么放置在PCB上的FPGA就可能無(wú)法正常工作。
在典型的FPGA布局布線流程中,I/O設(shè)計(jì)肯定是要修改的,因?yàn)椴季植季€需要“I/O自由分配”以滿足FPGA的時(shí)序約束條件。FPGA設(shè)計(jì)師必須采取額外的步驟鎖定I/O設(shè)計(jì),以便設(shè)計(jì)進(jìn)展時(shí)能保持不變。由于在PCB設(shè)計(jì)時(shí)整合高數(shù)量引腳FPGA器件的代價(jià)非常高,設(shè)計(jì)小組經(jīng)常在設(shè)計(jì)過(guò)程的早期就鎖定FPGA的I/O設(shè)計(jì)。I/O設(shè)計(jì)的鎖定在降低FPGA-PCB的整合維護(hù)成本的同時(shí),也失去了降低PCB制造成本的機(jī)會(huì)。許多設(shè)計(jì)小組很早就鎖定了I/O分配,隨后卻發(fā)現(xiàn)為了滿足PCB布線或性能要求必須改變FPGA I/O的設(shè)計(jì)。由于沒(méi)有充分準(zhǔn)備好有效地應(yīng)對(duì)FPGA I/O的變化,這些設(shè)計(jì)小組通常都造成設(shè)計(jì)延遲。
兩方面的約束條件
約束條件可以分成兩個(gè)部分,即FPGA約束和PCB版圖約束。FPGA約束條件包括設(shè)計(jì)的時(shí)序要求(時(shí)序約束)、器件的規(guī)模和架構(gòu)(布線約束)以及應(yīng)用于I/O緩存的I/O標(biāo)準(zhǔn)(I/O約束)。引入可配置的I/O ASIC宏單元意味著每個(gè)器件具有更大的靈活性,可以支持更廣泛的信令標(biāo)準(zhǔn),但這也會(huì)造成緊密相鄰的器件應(yīng)采用哪個(gè)標(biāo)準(zhǔn)的約束情況。為了最大化這樣的靈活性,可以將器件信號(hào)分成若干I/O組,從而使分配規(guī)則進(jìn)一步復(fù)雜。每一種約束都會(huì)影響I/O的分配。
在電路板設(shè)計(jì)這邊,最佳的I/O分配取決于可用布線層的數(shù)量和PCB上器件的方位(布線約束)。除了布線約束外,PCB版圖必須滿足信號(hào)完整性(SI)和整個(gè)系統(tǒng)設(shè)計(jì)的時(shí)序約束條件(SI和時(shí)序約束)。由于這些SI和時(shí)序約束會(huì)限制電路板上走線的長(zhǎng)度、空隙和其它物理參數(shù),因此也會(huì)影響I/O端口的引腳位置。下面列出了可能會(huì)影響I/O設(shè)計(jì)的一些約束條件:
* FPGA時(shí)序
* FPGA可布線性
* FPGA I/O
* PCB可布線性
* PCB SI和時(shí)序
因?yàn)檫@些約束條件是由不同的設(shè)計(jì)師管理的(例如FPGA、PCB和SI設(shè)計(jì)師),又會(huì)影響到相同的I/O分配過(guò)程,因此很難協(xié)調(diào)。
橋接FPGA-PCB設(shè)計(jì)流程
FPGA設(shè)計(jì)師必須滿足綜合和布局布線約束以符合時(shí)序規(guī)定要求,而PCB設(shè)計(jì)師必須在后端約束設(shè)計(jì)以便滿足系統(tǒng)級(jí)的時(shí)序和SI要求。隨著設(shè)計(jì)復(fù)雜性的提高,這些約束在兩個(gè)設(shè)計(jì)流程之間可能發(fā)生沖突。
第一個(gè)需要解決的問(wèn)題是加強(qiáng)兩個(gè)設(shè)計(jì)小組之間的溝通。另外一個(gè)關(guān)鍵的課題是確保HDL、FPGA和PCB環(huán)境中所使用的工具套件的一致性。基于語(yǔ)言的FPGA HDL描述必須被正確地描述成包含引腳分配數(shù)據(jù)的原理圖符號(hào),并保持與PCB版圖工具的正確鏈接。最后,這兩個(gè)設(shè)計(jì)領(lǐng)域必須通過(guò)PCB上正確的FPGA引腳分配來(lái)保持同步,并以原理圖符號(hào)和PCB外形數(shù)據(jù)庫(kù)來(lái)進(jìn)行表示,即使是不同的設(shè)計(jì)小組使用完全不同的工具套件也應(yīng)如此。
例如,為了滿足嚴(yán)峻的上市時(shí)間目標(biāo),一塊PCB可能包含多個(gè)并行設(shè)計(jì)的高引腳數(shù)FPGA。每個(gè)FPGA封裝內(nèi)引腳輸出的變化必須連續(xù)反饋給PCB原理圖和版圖設(shè)計(jì)數(shù)據(jù)庫(kù)。PCB的高速SI分析工具必須能夠訪問(wèn)I/O收發(fā)器的驗(yàn)證模型。為了完整或滿足高速時(shí)序要求的PCB布線也可能要求FPGA引腳輸出的調(diào)整。在這雙重跟蹤過(guò)程中,F(xiàn)PGA設(shè)計(jì)師可以使用來(lái)自EDA供應(yīng)商和FPGA供應(yīng)商的工具。PCB設(shè)計(jì)師可以使用另外一家EDA供應(yīng)商的工具,而這一工具不必與FPGA工具供應(yīng)商提供的工具相同。