【解決方案】透過任務分配 優化訊號完整性分析的平行模擬效率
- Enlight Technology
- Apr 21
- 5 min read
By Zach Caprai
使用 HyperLynx 進行任務分配
計算任務分配是擴展與優化任何訊號完整性(SI)分析的重要關鍵。任務分配的目的是透過平行運算,在維持所需模擬精準度的同時,縮短模擬所需時間。這類平行模擬具備高度延展性,無論是 3 條通道還是 3,000 條通道,都能順利運作。此外,任務分配也能用來擴展整體模擬的精確度。HyperLynx 特別設計的任務分配功能,可依據使用者的技術程度進行彈性調整與擴充。
當你開始將「運算時間」視為需要模擬精度與深度皆平衡的可用資源時,你將能更有效率地管理並擴展後期的訊號完整性需求。
時候到了
當你的電路板佈線完成後,你會怎麼做?是直接送交製造商、然後祈禱一切正確無誤嗎?一旦佈局完成,通常就會面臨時程壓力,讓人傾向直接將設計送交製造。花時間驗證設計其實是大家都知道該做的事,但在時間與精準度之間,總得取得某種平衡。沒時間再手動檢查所有細節——畢竟設計規則都遵守了、佈線過程也都很仔細,所以這塊板子應該沒問題,對吧?
佈局完成後的分析,也就是設計驗證,是評估設計是否已準備好進入製造階段的正確方式,其主要目的是找出整體設計中複雜區域可能存在的錯誤。
「在尋找設計中的隨機錯誤時,你必須全面檢查並模擬所有項目。」
問題在於這些錯誤若存在,往往會隨機分布在整個佈局中。若只模擬電路板的部分區段,只能靠運氣發現這些錯誤。因此在這種情況下,你必須進行全面驗證,而且無法靠人工手動完成。HyperLynx 提供了一個實際可行的方法來協助完成這項工作。
最重要的檢查重點,會集中在關鍵訊號網路上。串列連結訊號網路通常是電路板中速度最快的訊號,因此也最有可能隱藏故障,成為最需要進行分析的關鍵網路。
在 HyperLynx 的進階求解器(Advanced Solvers)與全波求解器(Full-Wave Solvers)中,這些網路中的 3D 區域對於訊號完整性分析至關重要,因為它們能在保持計算效率的同時,精準建模關鍵訊號區域。當在系統層級使用全波求解器時,整個互連系統通常過於龐大,不適合以 3D 模式全面解算。因此,會採用「切割與拼接」(cut and stitch)的方法,策略性地將互連區段化,將 3D 求解器保留給像是 breakout 區域、導通孔(via)與退耦電容等關鍵位置。
這樣一來,包含回流路徑與訊號轉換等關鍵區段就能被精準分析,而較不複雜的部分則可透過線路或 S 參數模型有效表示。正確定義這些 3D 區域,是確保模擬準確性的關鍵。
任務分配的演進
任務分配的演進取決於使用者可運用的資源,而一切的起點通常是使用者的本機。當模擬需求超出單一電腦的處理能力時,任務分配的重要性就會開始浮現。
本機執行
你會在可用的本地機器上(例如筆記型電腦)依序執行模擬。
遠端機器
將模擬轉移至單一遠端機器,是最直接的升級方式。這樣做可以在維持高模擬精準度的同時,減少總體模擬時間,並釋放本機的運算資源。
多部遠端/伺服器
下一步的自然演進,是將多部連網電腦整合在一起,透過多機協作、伺服器叢集,或是兩者的組合來平行處理專案模擬。
使用第三方軟體進行任務管理
導入第三方軟體解決方案來管理任務,是任務分配演進的下一步。這類工具能協助將可用資源分配至任務佇列中,免去手動在本機或虛擬機之間分派處理工作的需求。常見的解決方案包括:
負載共用設備(Load Sharing Facility, LSF)
高效能運算(High Performance Computing, HPC)
Sun Grid Engine(SGE)

分析優化
本地運算效能的提升,並不一定會以線性方式對應到模擬時間的縮短。換句話說,增加本機的運算資源,未必會等比例地減少運算時間。為了更清楚說明這點,我們可以透過一個實際案例來進一步探討。

我們可以透過對其中一塊展示用電路板進行訊號完整性分析,來觀察這項操作的實際效果。這個特定的設計是一張 dBRICK 插卡,屬於 dRedBox 系統的一部分,並且廣泛應用於許多 HyperLynx 的教學課程中。

當在一台具備 4 核心的本地機器上執行時,總運算時間為 427 分鐘。隨著所使用的核心數量加倍,運算時間大致減半,但很快就會出現報酬遞減的現象。當核心數增加到 32 顆後,分析所需時間便趨於穩定,不再明顯縮短。

分散式運算

若將上述分析擴展,納入主機板上的 PCIe 通道,我們所面對的就會是一個更為複雜的分析任務。此範例包含 32 條訊號網路,並需要透過 HyperLynx 全波求解器(Full Wave Solver)針對 32 個 3D 區域進行解算。

這項任務最初使用 2 部本地執行節點,共 64 顆核心,基準運算時間為 85 分鐘。當我們加入遠端執行節點並將總核心數加倍時,運算時間並未出現停滯。使用 16 部遠端執行節點、總計 512 顆核心時,整個任務只需 12 分鐘即可完成。
若我們將這張圖表中的首筆資料(64 核心、85 分鐘)與前一張圖表中的最後一筆資料進行比較,會發現兩者擁有相同的核心數,且運算時間也相近(85–86 分鐘)。這說明任務在可用運算資源中的分配方式,對於整體分析所需時間有著決定性的影響。
若在單一擁有 32 核心的機器上,執行主機板與插卡的完整系統驗證,將需耗時超過 18 小時,且在此期間可能發生錯誤或中斷。透過任務分配機制,你可以在約 80 分鐘內完成針對 134 個 3D 區域的完整 PCIe 全波求解分析,並取得可供採取行動的當日回饋結果。
摘要
幾乎所有的訊號完整性分析都處於容易受到時程壓力影響的環境中。有效管理與運用可用資源,是整體分析流程中的關鍵一環。在設計分析流程時,如何在模擬精準度與交付時間之間取得平衡,是不可忽視的考量因素。
最終的目標,是在適當的時間內提供可付諸行動的資料,使回饋在仍具價值的時間點產生。兩週前的設計快照對當下的決策幫助有限。理想情況下,分析工作應該能在下班前啟動,隔天上班時結果已可供參考。實務上,模擬運算時間需壓縮在 8 至 14 小時的區段內,最佳情況是透過夜間運算,隔日早上取得分析結果。對於設計極為複雜的大型企業客戶而言,3 至 4 天的運算時間則是可以接受的。
「任務分配功能適用於 HyperLynx 訊號完整性(Signal Integrity)、電源完整性(Power Integrity)、HyperLynx 設計規範檢查(DRC),以及 HyperLynx 進階求解器(Advanced Solvers)。」
一旦運算完成,接下來的關鍵就是將資料整理與結構化,使其能夠清楚明瞭、即時閱讀。HyperLynx 透過各種工具協助達成這個目標,包括散佈圖(Scatter plots)、具通過/失敗指標的互動式報告、時域與頻域指標、所有訊號的眼圖(Eye Diagrams)等等。這些功能不僅讓設計工程師能快速掌握整體分析狀況,也能迅速深入檢視任何一筆資料點。
目標是在有限的時間內,取得最佳的分析成果。
Comments