本文介紹了利用現代FPGA架構的先進性能管理PCB復雜性的新方法,即可以減少PCB布線的擁塞,減少設計反覆、重新設計次數以及降低層和元件的數量。同時也概述了利用FPGA的靈活I/O特性降低
PCB制造成本的方法。
內建嵌入式處理器、DSP和記憶體模組的高階FPGA有替代整個ASIC的趨勢。最新的FPGA元件能夠專門利用多個通用I/O接腳來制作更寬的配置匯流排,因而加速編程時間,而這些接腳在配置完成后仍可作為正常的I/O接腳使用。元件復雜度的增加意味著接腳數量的增加,這會提高在PCB上整合這些元件的難度和成本。設計小組必須認真應對這一挑戰,以確保使用這些新的可程式元件時不會影響到產品的成本和上市時間。
接腳數量超過1,000的FPGA會給
電路板設計帶來很大的麻煩。采用人工方式對這么多數量的接腳進行布局和布線是非常低效的,特別是當FPGA設計有稍許修改時會造成費時的電路板設計反覆。儘管接腳數量提高了,封裝上的接腳間距仍保持不變,但PCB上的接腳密度卻有顯著的增加。隨之產生的布線擁塞意味著大多數PCB設計師必須具備高密度互連(HDI)制造制程方面的豐富經驗。包含高數量接腳FPGA元件的PCB需要更多層的電路板,底線是每增加一層,制造成本增加10%到20%。
理想的I/O標淮選擇和配置必須考慮PCB的電氣特性。最新FPGA元件的高速串列I/O使得FPGA和系統板之間的介面成為特別棘手的問題。例如數Gb收發器(MGT)技術旨在顯著縮短數據路徑,同時戲劇性地提高吞吐量。然而這些高速I/O會帶來新的挑戰。設計師現在不是擔心系統時序、上沖/下沖、串擾和正確端接,而是關心介電損耗、趨膚效應和確定性/隨機性抖動問題及其對碼間干擾的影響。
數Gb差分訊號的訊號劣化和衰減主要有三大原因:介電損耗(是長度和板材的函數)、過孔損耗和連接器損耗。根據具體實體位置的不同,每個過孔的損耗將在0.5dB到1dB之間,而總的損耗裕量只不是10dB到15dB之間。因此,大多數FPGA制造商推薦將數Gb收發器放置在FPGA的四周,以避免打孔到內部訊號層。根據FPGA制造商的規格要求,仔細的堆迭規劃對這些訊號而言至關重要,以便達到仔細校淮過的差分阻抗。
為了進一步解決好問題,FPGA I/0設計是靈活的。其它任何硅片技術都無法提供像FPGA元件這樣靈活的介面特性。過去由于電路板設計和FPGA設計小組沒有取得I/O設計同步致使許多PCB需要重新設計情況時有產生。具有I/O新功能的高接腳數量元件會顯著地增加PCB制造成本和整體上市時間,在這種情況下,本文推薦的解決方案就能夠跨越FPGA和PCB設計流程之間的日漸變寬的鴻溝。
傳統的突破
FPGA設計流程采用的方法基于硬體描述語言,而PCB仍采用原理圖輸入方法。對復雜度不高的元件來說,傳統流程是可以接受的,FPGA和PCB可以在不同的設計環境中分別進行設計。然而,這種傳統的FPGA和PCB設計小組獨立工作模式帶來的是以下這種連續步驟:
1. FPGA設計師定義設計頂層模組,并設立邏輯訊號;
2. FPGA設計師在FPGA合成步驟中鎖定一些特殊訊號(時脈訊號、專門的高速訊號);
3. FPGA供應商的布局布線軟體自動將其它的FPGA頂層訊號分配到實體元件接腳,并制作FPGA接腳映射文件;
4. FPGA小組將接腳映射資訊發送給PCB設計小組,同時庫管理員制作FPGA元件的定義;
5. PCB設計師制作FPGA的符號并將它導入PCB原理圖設計;
6. 根據PCB的原理圖進行PCB的布局布線。
將FPGA I/O設計數據傳送到PCB流程通常需要人工進行數據的重新輸入(介于步驟3和4之間)。每個接腳有很多屬性,包括邏輯訊號名、實體接腳號、接腳方向、接腳組(接腳交換組)、FPGA元件普通接腳名稱和差分訊號接腳對等。這樣,有一千個接腳的元件意味著PCB庫管理員需要無任何差錯地輸入6,000個數據。為了適合原理圖紙張的大小,高接腳數量的符號通常需要被分割成若干部份。這些部份的符號制作和管理工作需要花數天到數周的時間。每次FPGA到訊號接腳映射關系的修改所導致的原理圖連接更新同樣也是一個漫長又容易出錯的過程。如果邏輯訊號名和實體接腳號在FPGA流程和PCB流程之間沒有得到同步,那么放置在PCB上的FPGA就可能無法正常工作。
在典型的FPGA布局布線流程中,I/O設計肯定是要修改的,因為布局布線需要‘I/O自由分配’以滿足FPGA的時序約束條件。FPGA設計師必須采取額外的步驟鎖定I/O設計,以便設計進展時能保持不變。由于在PCB設計時整合高數量接腳FPGA元件的代價非常高,設計小組經常在設計過程的早期就鎖定FPGA的I/O設計。I/O設計鎖定在降低FPGA-PCB的整合維護成本的同時,也失去了降低PCB制造成本的機會。許多設計小組很早就鎖定了I/O分配,隨后卻發現為了滿足PCB布線或性能要求必須改變FPGA I/O的設計。由于沒有充分淮備好有效地應對FPGA I/O的變化,這些設計小組通常都造成設計延遲。
兩方面的約束條件
約束條件可以分成兩個部份,即FPGA約束和PCB版圖約束。FPGA約束條件包括設計時序要求(時序約束)、元件的規模和架構(布線約束)以及應用于I/O緩沖記憶體的I/O標淮(I/O約束)。導入可配置的I/O ASIC巨集單元意味著每個元件具有更大的靈活性,可以支援更廣泛的信號傳輸標淮,但這也會造成緊密相鄰的元件應采用哪個標淮的約束情況。為了最大化這樣的靈活性,可以將元件訊號分成若干I/O組,因而使分配規則進一步復雜。每一種約束都會影響I/O的分配。
在電路板設計這邊,最佳的I/O分配取決于可用布線層的數量和PCB上元件的方位(布線約束)。除了布線約束外,PCB版圖必須滿足訊號完整性(SI)和整個系統設計時序約束條件(SI和時序約束)。由于這些SI和時序約束會限制電路板上走線的長度、空隙和其它實體參數,因此也會影響I/O埠的接腳位置。下面列出了可能會影響I/O設計一些約束條件:
* FPGA時序
* FPGA可布線性
* FPGA I/O
* PCB可布線性
* PCB SI和時序
因為這些約束條件是由不同的設計師管理的(例如FPGA、PCB和SI設計師),又會影響到相同的I/O分配過程,因此很難協調。
橋接FPGA-PCB設計流程
FPGA設計師必須滿足合成和布局布線約束以符合時序規定要求,而PCB設計師必須在后端約束設計以便滿足系統級的時序和SI要求。隨著設計復雜性的提高,這些約束在兩個設計流程之間可能產生沖突。
第一個需要解決的問題是加強兩個設計小組之間的溝通。另外一個關鍵的課題是確保HDL、FPGA和PCB環境中所使用的工具套件的一致性?;谡Z言的FPGA HDL描述必須被正確地描述成包含接腳分配數據的原理圖符號,并保持與PCB版圖工具的正確鏈接。最后,這兩個設計領域必須透過PCB上正確的FPGA接腳分配來保持同步,并以原理圖符號和PCB外形資料庫來進行表示,即使是不同的設計小組使用完全不同的工具套件也應如此。
例如,為了滿足嚴苛的上市時間目標,一塊PCB可能包含多個平行設計高接腳數FPGA。每個FPGA封裝內接腳輸出的變化必須連續反饋給PCB原理圖和版圖設計資料庫。PCB的高速SI分析工具必須能夠存取I/O收發器的驗證模型。為了完整或滿足高速時序要求的PCB布線也可能要求FPGA接腳輸出的調整。在這雙重追蹤過程中,FPGA設計師可以使用來自EDA供應商和FPGA供應商的工具。PCB設計師可以使用另外一家EDA供應商的工具,而這一工具不必與FPGA工具供應商提供的工具相同。
最大的障礙在于將FPGA布局布線工具結果傳送給原理圖和PCB版圖工具。如前所述,對于1,000個接腳以上的單個FPGA元件來說,這一過程可能要花一周的時間。隨著平行的FPGA-PCB設計過程的進行,接腳輸出變化(典型情況是4到6次)以及缺少完全自動的FPGA工具到PCB原理圖符號和幾何傳送過程,將導致設計進度被打亂。如果PCB設計系統能夠理解FPGA的接腳交換和驅動器規則,那么就能在PCB環境中實現這些接腳的變化,并自動反饋給FPGA工具。
為了確保獲得正確的性能,需要執行包括PCB上實際布線在內的高速驗證。隨著數Gb高速訊號的普及,FPGA供應商提供的設計套件必須包含精確的IBIS、Spice或VHDL-AMS模型。有了這些模型以及能夠在GHz范圍內進行訊號分析的PCB驗證工具,整個設計SI和性能就能得到充分驗證。
設計小組可能分布在世界上不同的地區,這在大型組織機構中經常見到。這時需要采用內建數據管理方法學使設計師們合作進行FPGA的板上整合,并追蹤任何一個設計師做出的每個修改。因此讓這兩個工具套件一起工作的關鍵在于這兩個流程所采用的工具之間的緊密介面。
如果設計小組能在FPGA I/O設計階段就開始前端的合作,那么他們勢必就能消除設計反覆。對于適合FPGA和PCB實現的獨特平行、互動式設計方法來說這是一種非常迫切的需求,它能最大可能地制作可布線的設計,并一次性地滿足SI和時序要求。新的整合化系統設計工具,如明導資訊公司的I/O Designer,就提供了這樣一種能夠滿足這些特殊需求的合作環境。
一致性、自動化和可擴充性
大多數FPGA I/O設計產生在設計過程中的邏輯抽象級。而實際上為了便于完成PCB設計過程,I/O設計必須在實體級進行。在設計過程中給每套約束指定優先級后形勢將變得更復雜。
如果目標只是盡快完成電路板原型,那么接腳輸出必須在設計過程早期固定下來。理想情況是,為了滿足PCB約束條件并得到最最佳化的PCB,PCB版圖設計師應該在PCB版圖設計過程中決定接腳的分配方案,同時自動完成所有的FPGA約束。過去,I/O分配是由FPGA供應商提供的布局布線工具自動完成的,很少考慮到PCB的要求。然而,隨著PCB復雜度的提高,這一過程需要得到設計小組的認真管理。因此目前典型的設計過程是在合成和布局布線過程之前就定義好這些前端約束。一般這些約束先被定義在特殊工具約束文件中,再直接傳遞給合成工具,然后轉送給布局布線工具。透過ASCII約束文件定義約束條件時要求設計師在分配I/O埠之前很好地理解FPGA I/O接腳詳細內容和分配規則(FPGA I/O約束)。而這一工作一般是由FPGA設計師完成的,但他們可能不太明白PCB版圖細節,因此不會最最佳化這一部份設計。
I/O設計過程是將所選FPGA連接到電路板上所有周邊元件時最佳化接腳分配的第一個步驟。I/O Designer能夠解決這一問題。為了最終決定電路板最佳化過程,I/O Designer將管理和控制PCB版圖設計過程中的接腳交換,同時確保這些交換不會破壞任何的FPGA技術規則。I/O Designer能使用戶以特殊的方式貫穿整個設計流程,從頂層HDL描述到PCB級符號,甚至到FPGA布局布線工具所需的實體接腳資訊。它能背注布局布線、PCB原理圖和版圖工具中產生的任何FPGA修改。因此這樣的工具能為設計HDL和FPGA實體實現的數位工程師以及采用元件符號的電路板設計師提供一個集中統一的環境。這樣做具有下面三大優點:
一致性。每當設計師修改接腳輸出時,這種變化應該自動傳遞給FPGA設計用到的其它設計工具。如果PCB設計師決定交換兩個接腳,而這種交換又會影響到FPGA的內部布線。I/O Designer能夠確保FPGA和PCB流程是一致的。作為一種數據管理工具,它監視每個流程并管理所有產生的變化。它能追蹤PCB的接腳交換,并即時修改相關的文件。I/O Designer會根據HDL設計和接腳I/O分配過程產生FPGA布局布線約束,并根據‘后布線’接腳數據制作必要的符號、原理圖和分層關系。
自動化。FPGA布局布線過程的自動化以及時序和I/O約束的管理相對比較容易實現。但PCB版圖設計過程的全自動化比較困難,因為有許多可變因素需要考慮。在PCB版圖設計過程中,設計師要考慮整個電路板的布線,同時又要避免破壞任何時序、SI和可布線性約束條件。因此任何設計用于在電路板上整合FPGA的工具需要重點實現FPGA約束管理的自動化,同時允許設計師在PCB版圖設計中能集中精力執行‘難以自動完成’的任務。這樣的工具還必須有內建的包含了Altera、Actel和Xilinix等供應商提供的必要元件資訊的庫,以便使約束得到順利實施以及使FPGA和PCB設計流程中所有工具能夠得到良好地整合。I/O Designer可以利用I/O設計資訊自動產生必要的符號和原理圖,并在I/O分配修改時維護好這些原理圖。如果變化來自于FPGA一側,那么原理圖經過簡單更新后就可將變化傳遞給PCB版圖工具。
可擴充性。在設計階段重新選用規模更大或更小的元件比較常見。由于FPGA元件的每個接腳具有特殊的屬性(如前所述可定義為FPGA I/O約束),設計師在分配I/O接腳時需要考慮向更大或更小規模元件轉移的可能性。有了I/O Designer后,設計小組在決定切換至更大或更小FPGA時就無需重新分配I/O。由于改變I/O設計經常會造成額外的電路板重新設計工作,因此,如果沒有十分的必要應避免這樣的作業。
利用FPGA的靈活性
現代FPGA架構包含可程式的I/O,可支援50種以上不同的I/O標淮。一般用得比較多的是單端和低電壓差分訊號(LVDS)I/O標淮。雖然FPGA I/O設計是可變的,但它們的靈活性也有一定的限制?,F代的FPGA元件架構將接腳集合分組成‘接腳組(pin-bank)’。在同一個接腳組中接腳共享參考電壓等某些共同的特性,因此通常是可交換的。但在不同接腳組中的接腳可能被指定不相容的I/O標淮,因此會導致不同的情況。
一種情況是為了滿足PCB互連性能要求或PCB的可布線性,PCB設計師可能要求修改FPGA I/O接腳。另外一種情況是最初的接腳改變造成了不同I/O標淮同時存在的問題,迫使已有訊號轉移到新的接腳組。最后一種情況是前一種情況下重新定位的訊號又造成了不同I/O標淮同時存在的問題,迫使現有訊號被轉移到新的接腳組。
LVDS訊號線對主要用于高速訊號傳輸,此時SI問題比較突出。當FPGA元件中的一個訊號被賦于LVDS I/O標淮時,這個FPGA訊號就需要用到FPGA封裝中的2個接腳。LVDS訊號會改善PCB的性能,但也會產生附加的約束條件。LVDS線對必須:1)長度差在±10%之內;2)在整個走線長度內差分線對保持固定的間距。
FPGA邏輯訊號使用太多的LVDS I/O標淮會導致使用更大且具有更多接腳的FPGA封裝。而不采用LVDS I/O標淮意味著產品性能會受到限制,甚至達到許多產品設計小組無法接受的程度。從單個接腳到雙接腳I/O標淮(或反過來)的輕易改變能力能使整個設計小組使用最少的LVDS I/O訊號滿足系統性能約束條件??傊M量減少LVDS的使用可以降低PCB制造的復雜性和成本。
在I/O Designer等工具中置入I/O接腳組規則(PCB設計師很容易透過直觀易用的GUI學會)可以釋放PCB設計師的精力,開拓他們的視野,因而讓他們更有效地參與FPGA I/O設計過程。在掌握了FPGA I/O的平行FPGA和PCB小組設計、實現了FPGA和PCB設計流程中實體整合的自動化后,設計小組就能充分利用FPGA I/O的靈活性減少PCB布線的擁塞。認真檢查現代FPGA架構和它們的用途可以發現很多有趣的事實:
* 在同一接腳組中的接腳很容易實現交換;
* 設計中同一匯流排內的訊號一般都分配到同一接腳組(充分利用接腳的易交換性);
* 對設計中的匯流排訊號來說接腳組并不代表最佳的實體設計。(從圖3可以看出,使用相同的接腳組會迫使匯流排訊號在PCB上相互交叉)
通常學會高效地使用多個接腳組可以實體最佳化FPGA的I/O,并消除匯流排中的交叉訊號,同時也可能減少制造PCB所需的訊號層數量,因而達到降低成本的目的。
隨著目前高速、高閘數、高接腳數FPGA的出現,FPGA設計唯一永?的主題是不斷產生的變化,包括為了滿足時序和損耗要求的互連級變化和FPGA本身內部接腳分配階段的變化。FPGA設計具有的高度靈活性對電路板設計師來說也許是一個最大的夢魘。FPGA公司應該明智地認真檢查現有技術,確保今天的FPGA所提供的巨大靈活性和強大功能不會太過而成為PCB實現的潛在障礙。像I/O Designer這樣的工具能夠實現PCB布局和驗證所需的原理圖連接自動化,而且它還能記住哪個訊號連接連到了哪個元件接腳,并指示這些接腳如何映射到原始的電路板級匯流排結構。依靠正確的軟體工具以及FPGA和PCB設計平行路徑之間的緊密合作,FPGA設計和實現進度就可能節省‘周’數量級的時間,因而顯著地降低總體成本。
深圳宏力捷推薦服務:PCB設計打樣 | PCB抄板打樣 | PCB打樣&批量生產 | PCBA代工代料