設計問題尤其涉及到那些大型高性能計劃,最有效的解決方法就是首先對問題詳盡分析,然後將大問題分解成易於管理的小問題。觀察近年來可編程器件的發展過程,fpga在尺寸和複雜性方面有巨大的提高,但pld eda工具卻相對沒有多少變化。在傳統的扁平設計流程中,每個設計更改都意味著要對整個設計重新綜合、重新實現。對於要在幾百萬門的器件上實現的複雜設計來說,即使是一個微小的更改也會導致長時間的令人無法接受的布局布線(par),更不要說典型設計中從ptl 到par的反覆操作所導致的時間耗費。
本文引用地址:http://www.eepw.com.cn/article/21024.htm很少有設計團隊能夠容忍超過預期時間設計仍得到出乎意料的低性能,更別說隨之而來的挫折感和壓力。此外,這可能還意味著較低的fpga利用率,甚至錯過產品面市機會。
planahead 工具
越來越多的客戶在賽靈思 planahead 設計分析工具提供的層次化設計方法學中找到解決方案。planahead 軟體為 fpga 設計流程增加了可視性和可控性。通過解決物理方面(介於邏輯綜合和實現工藝之間)的問題,可在設計結果中實現性能的提高。
雖然先進的 fpga 綜合產品為幾百萬門設計提供極高的自動優化水平,許多設計者仍需要具有更多啟發性的技術,以達到最佳性能目標。通過提供早期分析和布局規劃 (floorplanning)功能,planahead 設計工具可以施加物理約束,以幫助控制設計的初始實現。實現後,planahead 軟體可以分析布局和時序結果,以改進用於完成設計的布局規劃。可以使用來自導入結果的物理約束,在後續實現嘗試期間鎖定布局。這些約束用於創建可重用 ip,連同鎖定布局,一同用於其它設計。
planahead 設計方法提供了性能、生產率以及結果的可重複性。憑藉其層次化設計流程,planahead 軟體可減少運行 par 然後返回 rtl 與綜合的反覆次數。反之,可以分析設計並在實現之前解決物理方面的問題。
速度更快,性能更好
planahead 用戶通常可以實現 10-15% 的性能提升,有些用戶甚至可以更高。此外,設計者可以在一個緊湊的器件中額外加入 10% 的邏輯。更快的性能與更高利用率的結合意味著可以使用尺寸更小、成本更低的器件,或者以更低的速度等級實現設計目標。
planahead 設計工具可在縮短總設計時間的同時,在結果中增加一定的一致性。通過利用以前的布局規劃或增量設計技術,可以以更少的時間執行設計反覆,實現可重複的結果。還可以利用成功結果,將它們鎖定下來或在其它設計中重用。
解決真正棘手的性能問題所需要的絕不僅僅是增加新的菜單項或腳本能力。planahead 軟體通過使用各種視圖(見圖 1)展示設計數據,提供了一個完整的環境,使該層次化方法實現交互並易於使用。這些獨立的視圖可以相互結合使用,從而允許快速識別和瀏覽關鍵設計對象和信息。
還可顯示時鐘區,並在布局規劃時使用它來優化各個時鐘或最大程度地降低器件中的功耗。通過將時鐘隔離到專門的時鐘區,它們可以運行得更快,並消除了為其它時鐘區供電的需要。
在設計過程中的各個階段均可使用 planahead 設計工具的分析和探測環境。甚至,可以在實現之前分析設計。
planahead 軟體提供了一個靜態時序引擎 timeahead,用於研究設計在時序方面的可行性。還可以通過調整純邏輯延遲,在不進行互連的情況下,使用估計的布線延遲執行分析。這可以看清楚設計中存在多大的時序容差。
可視化
planahead 環境通過顯示 i/o 互連和物理塊(pblock)網束 (net bundle),提供洞察設計數據流的能力。可以根據信號數量控制網束的顏色和線厚,方便地在貫穿設計的整個數據流中確定具有大量連接的 pblock。然後採取校正措施,避開布線擁塞故障點,並將具有大量連接的 pblock 相近放置或將它們合併。
可在 planahead 環境中編輯和精調時序約束,相同的分析結果可以幫助確定哪些邏輯應組合在一起並進行布局規劃。針對布局規劃,可對路徑進行邏輯排序、組合和選擇,還可以使用同一 timeahead 環境處理從 trce 導入的時序結果,trce 是賽靈思 ise軟體中的時序評估工具。
可以查看和修改為設計指定的時序約束。並可以在編輯器中將所有 ise 時序約束定義為新約束。這可以使約束指定變得更容易,不必再記住專門的約束格式。可以在運行任何 ise 實現工具之前,將其與 timeahead 一起使用以驗證和優化約束集。
planahead設計工具提供了可視輔助,以幫助理解物理實現結果。設計規則檢查 (drc) 功能有助於及早捕獲錯誤。它還會對未正確利用某些器件資源(如 virtex-4 fpga 中的 xtremedsp切片或 ram)的設計進行標記。
通過將問題區域可視化,可以在 rtl 側或物理實現側快速解決問題,而不必繼續重複進行 rtl 與綜合。可以對各個邏輯模塊進行選擇性地高亮顯示,以更好地了解它們放置的位置以及創建在邏輯最集中區域的pblock。此外,可以高亮顯示故障時序路徑,以可視化和了解設計中發生了什麼物理問題。
planahead 軟體包含量度圖 (metric map),以快速確定設計的故障區域(見圖 2)。
這可能與時序或利用率有關,有助於在試圖確定設計中要關注的區域以實現邏輯壓縮或時序連接性。
planahead 設計工具允許研究設計中的連接性。在設計中選擇一個特定的網絡、pblock 或實例後,通過單擊滑鼠高亮顯示所有連接到選定元素的網絡。
在選擇一個實例或 pblock 後,所有連接到該元素的網絡都將被高亮顯示。這一過程可以繼續,以選擇和擴展邏輯錐形。運行"顯示連接性"將高亮顯示連接到選定實例的下一級網絡。這是一種選擇從某個特定實例或 i/o 埠開始的邏輯錐區的簡易方法,從而可真正實現對設計層次優勢的利用。
解決性能問題
整個方案是要提供一個綜合環境,以分析時序問題並輕鬆約束邏輯以避免或糾正問題。可使用來自 timeahead 或 trce 的時序結果進行布局規劃,通過幫助確定哪些邏輯應組合在一起並進行布局規划進行更好的性能設計。
關鍵路徑通常穿越邏輯層次。planahead 軟體支持獨立於邏輯層次的物理層次,從而使您可將設計中任意位置的邏輯組合在一起並有效地進行布局規劃。
planahead 軟體還提供了資源利用估算功能,以幫助確定 pblock 的尺寸和形狀。同樣這些統計資料還可報告時鐘信息、供應鏈和 prm 適應尺寸以及各種其它信息。
planahead 設計工具提供了自動布局能力,如基於邏輯層次的自動分區和自動 pblock 尺寸確定與放置。由於使用單個 pblock 矩形來包含所需的器件資源通常很困難,因此可以使用多個矩形創建非矩形-線性形狀。planahead 軟體還允許在 pblock 內創建 pblock,或創建"子"pblock,以幫助更好地維護設計層次。
器件容量可通過壓縮 pblock 的邏輯進行提高。一種方法是使用稱為 compression 的賽靈思 area_group 屬性。area_group 是一種設計實現約束,支持將設計分成用於映射、打包、布局和布線的物理區域。使用 compression 屬性將導致 ise mapper 將無關的邏輯打包成未使用的 clb 站。使用它時請小心,因為它會對時序產生副作用。 改善性能的最佳策略是壓縮非時序關鍵型邏輯,從而在器件中騰出更多空間用於時序關鍵型邏輯。第二種選項是使用 planahead 功能在 pblock 上獨立運行 par。 可以持續縮減 pblock 尺寸,直到 par 失敗。這將儘可能緊密地壓縮和打包塊內邏輯,以騰出器件空間。
一個 virtex-4 布局規劃示例
planahead 設計工具可輕鬆地導入布局和時序結果。通過該信息,可以查看和排序時序報告中的關鍵路徑,並使用原理圖或器件視圖對路徑進行可視化顯示。一旦確定故障路徑,可以高亮顯示布局規劃中的所有路徑實例,以確定原理圖視圖中的所有路徑實例。
在顯示中,高亮顯示了一條特定路徑上未能滿足時序要求的觸發器。由於它們在器件中分布太廣,設計實現產生了無法接受的長延遲。由於在 virtex-4 fpga 中存在大量的時序域,因此這是一種普遍情況。
通過選擇這些觸發器中的每個觸發器,並將它們限制到單個 pblock 中,可以調節和優化該 pblock的尺寸和位置,從而縮短關鍵路徑的延遲,如圖 4 所示。
圖 4 在對與該路徑相關的 所有基元進行約束後, 您可以對 pblock 進行 優化,以使該路徑達到 所需的時序要求
必要時,甚至可以創建嵌套 pblock,從而創建一種子/主層次來進一步約束子模塊,以獲得額外的性能提升。根據捕獲邏輯的資源需求,可以將關鍵邏輯鎖定位置,以實現對必要資源的最佳訪問。