[轉載]克服FPGA I/O引腳分配挑戰--xilinx系列

轉載走,放到本身的分類中好了

    http://www.eefocus.com/lubee/blog/2012-05/205849_34433.htmlhtml

對於須要在PCB板上使用大規模FPGA器件的設計人員來講,I/O引腳分配是必須面對的衆多挑戰之一。 因爲衆多緣由,許多設計人員發表爲大型FPGA器件和高級BGA封裝肯定I/O引腳配置或佈局方案愈來愈困難。 可是組合運用多種智能I/O規劃工具,可以使引腳分配過程變得更輕鬆。

在PCB上定義FPGA器件的I/O引腳佈局是一項艱鉅的設計挑戰,便可能幫助設計快速完成,也有可能形成設計失敗。 在此過程當中必須平衡FPGA 和 PCB兩方面的要求,同時還要並行完成二者的設計。 若是僅僅針對PCB或FPGA進行引腳佈局優化,那麼可能在另外一方面引發設計問題。

爲了解引腳分配所引發的後果,須要以可視化形式顯示出PCB佈局和FPGA物理器件引腳,以及內部FPGA I/O點和相關資源。 不幸的是,到今天爲止尚未單個工具或方法可以同時知足全部這些協同設計需求。

然而,能夠結合不一樣的技術和策略來優化引腳規劃流程並積極採用Xilinx PinAhead技術等新協同設計工具來發展出一套有效的引腳分配和佈局方法。 賽靈思公司在ISE軟件設計套件10.1版中包含了PinAhead。

賽靈思公司開發了一種規則驅動的方法。首先根據PCB和FPGA設計要求定義一套初始引腳佈局,這樣利用與最終版本很是接近的引腳佈局設計小組就能夠儘量早地開始各自的設計流程。 若是在設計流程的後期因爲PCB佈線或內部FPGA性能問題而須要進行調整,在採用這一方法晨這些問題一般也已經局部化了,只須要在PCB或FPGA設計中進行很小的設計修改。

  步驟1: 評估設計參數

那麼,從哪裏開始呢? 首先應當儘早制定I/O分配策略。 但沒有優化工具或完整的網表,完成這一任務可能很困難。

首先,讓咱們先回答幾個問題來肯定PCB物理參數和限制:

* PCB板有幾層、走線寬度以及過孔尺寸多大?

* PCB參數對可以使用的FPGA封裝類型(如BGA)有限制嗎?

* PCB上有沒有FPGA必須使用的固定接口位置? 其它芯片、鏈接器或佈局限制?

* 哪些高速接口須要特別關注?

可否將佈局策略可視化,從而保證最短互連?

你會發現畫一張PCB佈局圖頗有幫助。PCB佈局圖上應當包括全部主要元器件以及關鍵接口和總線,從而能夠幫助肯定最佳的FPGA引腳分配。 請注意將元器件畫在PCB板的實際安裝面上。 標註出須要特別關注的接口,如高速總線和差分對(圖1)。

下一步,檢查FPGA器件的佈局來了解芯片上的物理資源所在。 列出設計中使用的不一樣電壓和時鐘,開始隔離設計須要的接口。 而後肯定設計是否使用特殊的I/O接口資源,如千兆收發器(GT)、BUFR、IODELAY以及數字時鐘管理器。這些資源可能須要將有關的I/O引腳佈署得儘可能互相靠近。

如今須要肯定設計中使用的PowerPC、DSP48和RAM16等FPGA資源的位置。 將鏈接到I/O組的任何相關I/O儘可能置於盡相關資源最近的地方。 而後看一下可否將某些I/O信號組合到接口,這對於引腳分配頗有幫助。 最後,肯定FPGA的配置模式。網絡

                                                                                                      圖1 PCB鏈接圖

  步驟2: 定義引腳佈局要求

一旦瞭解了主要的FPGA接口並建立了物理佈局的原型,就能夠定義引腳佈局了。 有些設計人員喜歡使用包含全部I/O信號數據表來保持與引腳的對應。 你能夠按電壓、時鐘、接口或總線對它們進行分組。 這一方法確實很是有用,由於它可幫助你將信號組合成組,從而在分配引腳時能夠按組進行。 這一階段,你還會發現爲了實現最優PCB佈線,有些關鍵接口必須置於器件的某個邊,或者利用外部物理引腳。

在考慮到FPGA和PCB要求並肯定了主要的接口位置之後,下一步是根據全部這些條件將引腳分配給I/O組。 這也是真正開始工做的地方。 在當前的設計流程中,引腳分配時一項耗費時間的任務,在解決任何性能和信號完整性問題的過程當中可能會涉及許多嘗試和錯誤。 傳統上,設計人員都是徒手畫圖來完成這項任務的,由於EDA和芯片供應商沒有提供幫助設計人員將FPGA和PCB引腳佈局可視化的工具。

但如今賽靈思公司提供了相應的工具。 在ISE Foundation軟件工具10.1版本中包含的PlanAhead Lite是PlanAhead設計、分析和平面佈局工具的簡化版。 其中包括的針對PCB 和 FPGA設計的PinAhead的工具使得I/O引腳配置更爲容易。

這裏咱們不打算詳細介紹該工具的全部細節,而只是看一下如何將其用於I/O引腳分配。 若是你但願瞭解PinAhead的更詳細信息,包括視頻展現和教程,請訪問 www.xilinx.com/planahead。

  步驟3: 利用PinAhead進行引腳分配

PinAhead環境提供了一組不一樣的視圖。利用這些視圖能夠幫助完成I/O端口信息與物理封裝引腳或裸片I/O盤(Pad)的對應和分配(圖2)。

PinAhead的圖形環境與PlanAhead相似,在器件視圖中清晰地顯示出芯片上的I/O盤和相關資源,並在封裝視圖中顯示出物理器件引腳。 視圖同時顯示出I/O端口和物理引腳信息,這樣能夠經過交叉選取來試探邏輯設計和物理器件資源的對應。

你能夠在沒有設計網表的狀況下使用PinAhead來嘗試器件資源,或者直接開始I/O引腳規劃流程。 封裝引腳視圖(「Package Pins」 view)根據器件數據表列出了器件封裝技術參數,所以大多數狀況下在進行引腳配置時都再也不須要去參考器件數據手冊。 封裝引腳視圖以列表形式對I/O組(bank)進行了分類,所以能夠同時在器件和封裝視圖中交叉選擇和高亮顯示I/O組。 視頻清晰顯示出物理引腳位置和裸片中的I/O盤的關係,從而簡化了I/O組的優化選擇。 封裝引腳視頻還顯示了I/O組中每一引腳的信息。

你能夠利用PinAhead接口從頭開始建立I/O端口,也能夠從CSV格式數據表、HDL源文件頭或綜合後的網絡和UCF格式約束文件中導入I/O端口。 I/O端口視圖(「I/O Ports」 view)顯示出設計中定義的全部I/O端口信號,總線文件夾則顯示分組的總線和差分對信號。

你能夠按不一樣方式對封裝引腳和I/O端口視圖進行排序。 能夠切換列表視圖顯示基於分類的列表或所有列表,或者點擊鼠標對封裝引腳視圖進行排序,顯示全部可用的全局時鐘或地區時鐘引腳。 同時還能夠將信息導出到CSV格式數據表,作爲引腳配置的出發點。

PinAhead還提供了一個界面,支持有選擇地禁止PinAhead將I/O端口分配給某些I/O引腳、I/O引腳組或I/O組。 能夠在封裝引腳、器件或封裝視圖中選擇和禁止引腳。 例如,你能夠對封裝引腳視圖(Package Pins view)排序並禁止全部VREF引腳。

PinAhead容許將相關的I/O端口和總線組合爲「接口」(interface)。 這樣組合使你能夠將相關I/O端口作爲單個實體處理,從而簡化了I/O端口管理和分配任務。 接口組合功能能夠更容易地可視化顯示和管理與特定邏輯接口相關聯的全部信號。

可方便地在設計間拷貝接口,或者利用接口組合生成特定接口的PCB原理圖符號。 組合後的接口在I/O端口視圖中以可擴展文件夾的形式出現,經過在視圖中選擇I/O端口並將其拖動到接口文件夾,能夠將額外的I/O端口添加到接口組合中。工具

 

當建立I/O端口時,可將其分配到封裝引腳或I/O盤(pad)。 在此以前,最好先檢查一下I/O端口的最初PCB互連草圖並與PCB設計人員協商,瞭解布放不一樣I/O端口接口的相關位置和其它需考慮的因素。 適當的總線順序和邊緣距離有PCB佈線很是有幫助,能夠大大節約設計時間。

經過將單個引腳、總線和接口拖動到器件或封裝視圖,能夠將它們分配到I/O引腳。 利用不一樣的分配模式,能夠將引腳組分配給選定的I/O引腳。 可用的模式包括「Place I/O Ports in an I/O Bank,」 「Place I/O Ports in Area,」 以及 「Place I/O Ports Sequentially.」。

每種模式提供了將I/O端口分配到引腳的不一樣分配方式。 利用這些模式,能夠經過鼠標光標處彈出的窗口瞭解你所分配的端口數量信息。 直到分配了全部選定I/O端口以前,這一模式一直保持。

器件視圖(Device view)以圖形方式顯示全部時鐘區域和時鐘相關的邏輯對象,從而使時鐘相關的I/O分配更容易、更直觀。 選擇一個時鐘區將會顯示全部I/O組、時鐘相關的資源以及與其相關的器件資源。

PlanAhead軟件試圖保證你在引腳分配時始終符合規則。 在你的指引下,PlanAhead工具將差分以端口分配給適當的引腳對。 當交互式指定I/O端口時,工具會運行規則檢查(DRC)來保證佈局是合乎規則的。

工具缺省設置運行在交互DRC模式,固然你也能夠選擇關閉這一模式。 工具會檢查電壓衝突、VREF引腳或I/O標準衝突,以及位於GT器件附近的噪聲敏感引腳。 當發現錯誤或問題時,工具會顯示一條提示信息(Tooltip),告訴你爲何不可以將某個I/O端口分配給特定的引腳。

經過激活 PinAhead的 「Autoplace」命令,還可讓其自動分配全部或任何選擇的I/O端口到封裝引腳。 Autoplace命令將會遵照全部I/O標準和差分對規則,並正確佈署全局時鐘引腳。 該命令還會嘗試儘可能將I/O端口組合爲接口(interface)。

器件視圖(Device view)以圖形方式顯示全部時鐘區域和時鐘相關的邏輯對象,從而使時鐘相關的I/O分配更容易、更直觀。 選擇一個時鐘區將會顯示全部I/O組、時鐘相關的資源以及與其相關的器件資源。 經過可用資源與其物理關係的探索,區域時鐘規劃過程變得更容易。

還可利用PinAhead佈局設計中其它與I/O相關的邏輯,如BUFG、BUFR、IODELAY、 IDELAYCTRL和DCM。 利用PlanAhead中的「Find」命令,能夠方便地定位這些對象和布放點。 要想有選擇地察看的擴展邏輯和邏輯鏈接,請使用工具中的原理圖視圖(「Schematic」 view)。

經過在PlanAhead軟件中的某個視圖中選擇特定的I/O相關邏輯並將其拖動到器件視圖(Device view)中的選定位置,就能夠鎖定其佈局。

PlanAhead軟件將會自動判斷,僅容許將有關邏輯放在合適的位置。 在拖動設計中的邏輯對象時,動態光標會顯示出適當的佈局位置。

  步驟4: 爲最終核籤(Sign-Off)運行DRC和WASSO

一旦完成引腳分配,就可利用 PinAhead豐富的DRC規則來進行核籤前的DRC檢查,保證在運行PlanAhead軟件實施工具前設計是無錯的。 工具中的衆多I/O和時鐘相關規則可保證I/O佈局是合法的。 可利用PlanAhead的DRC對話框來選擇相應的規則。

若是工具發現違反規則的狀況,將會顯示帶有錯誤信息的DRC結果表。 選擇相應的錯誤信息能夠更進一步入地瞭解有關狀況。

PlanAhead還提供了加權平均同步轉換輸出(WASSO)分析功能,可幫助識別引腳分配引發的潛在信號完整性問題。 爲工具提供PCB設計的寄生參數特性,PlanAhead軟件將會分析不一樣的I/O組以及其近鄰,並報告每一I/O組的利用狀況和狀態。

  步驟5: 導出I/O引腳分配數據

你能夠將I/O端口列表和封裝引腳信息從PlanAhead軟件導出爲CSV格式文件、HDL頭或UCF文件。 CSV文件包括有關器件封裝引腳的全部信息,以及與設計相關的I/O引腳分配和配置。 列表中的封裝引腳部分是數據表中定義I/O端口的很好起點。

你還能夠利用該數據表自動生成設計小組開始PCB佈局所須要的PCB原理圖符號。 然而,有時這些符號對於原理圖來講太長了,可能須要將它們縮短爲幾個符號。 利用PinAhead中的建立的接口組能夠快速作到這一點。

以原理圖符號形式提供這些I/O引腳配置爲PCB設計人員開始PCB佈局提供了很好的基礎。 由於若是在引腳分配的最初就考慮到PCB接口,那麼最極可能與最終的引腳配置比較接近。

若是確實須要改變引腳來方便佈線,那麼改變也比較容易,由於須要改變的引腳可能已經在I/O組內了。 這種方法不會對FPGA設計形成太大的影響。 經過在PCB和FPGA設計人員之間傳遞修改過的引腳佈局數據表或UCF文件,能夠保證兩個部分之間的任何修改是同步的。

爲防止信號噪聲以及支持某些FPGA功能,你還可能但願將未用的引腳或特定配置的引腳鏈接到VCC或GND。 賽靈思目前正在致力於在PinAhead的下一版本中提供這一功能。經過一個界面方便FPGA設計人員指導此類引腳,並在輸出的CSV數據表中包含相應的引腳鏈接。 這樣PCB設計人員就能夠更容易識別相關引腳並正確鏈接之。

將來,隨着FPGA集成更復雜的功能以及使用更先進的封裝,發展可靠的FPGA和PCB引腳佈局方法勢在必行。 PinAhead Lite在幫助實現基於協同設計理念的引腳佈局策略方面已經可以提供很大幫助,但咱們仍然已經在致力於改進這一工具以幫助設計人員更好地應對引腳佈局方面的挑戰。佈局

                                                                         圖 2 PinAhead 環境
相關文章
相關標籤/搜索