教你如何測量芯片數字模擬噪聲
1. 簡介
本文引用地址:http://2s4d.com/article/201612/333265.htm與過去相比,現代SoC設計的利潤空間更低、掩膜成本更高。這兩點增加了對一次投片成功率的要求。過去使用的專門方法已經不足以確保一次投片成功率,因此需要新的分析方法。SoC設計的諸多領域都遇到了這一問題并已得到妥善解決,因此,芯片的數字部分與模擬部分間的交互便成為最后的棘手問題之一。
本文將介紹一種利用Primetime-SI(PT-SI)來測量芯片數字部分對模擬部分產生的串擾的分析方法。內容包括使用此方法時遇到的問題以及各種限制和優(yōu)勢。
2. PrimeTime-SI中的噪聲
PT-SI用于計算兩種形式的串擾延遲變化和噪聲。近年來,延遲變化功能受到廣泛的關注,而噪聲影響則未得到如此多的注意。
2.1 PT-SI如何計算噪聲
下面的圖1是來自SOLVNET的圖像,說明了PT-SI如何計算噪聲。如圖所示,干擾源在被干擾網絡中引入了一個噪聲沖擊,當干擾源的時序重疊時,噪聲沖擊便會疊加在一起。盡管這是一種簡化的說明,但足以達到我們的目的。
圖1:串擾和傳播噪聲的組合影響[1]
2.2 噪聲類型
除了噪聲沖擊的時序關系,PT-SI還能計算四種類型的噪聲沖擊——高于高電平、低于高電平、高于低電平和低于低電平。圖2給出了相應說明,該圖同樣來自SOLVNET。盡管PT-SI的假設(即,地或VDD中出現噪聲)不一定適合模擬網絡,但它提供了合理的預估,并且運行時權衡的重要性應高于引入的任何誤差。
圖2:噪聲沖擊類型[1]
2.3 噪聲特性
圖3給出了根據PT-SI特性計算的噪聲沖擊。對于我們的目的而言,只需考慮沖擊的高度,因為模擬網絡通常與數字網絡異步,所關注模擬網絡的經典示例是ADC的輸入。在這種情況下,我們關注的問題是串擾引入的最大誤差,而集中研究高度可以解決這一問題,同時還能簡化分析。
圖3:噪聲沖擊特性[1]
3. 能否計算模擬網絡上的噪聲?
3.1 要求
在2012年,產品團隊提議CAD部門尋找一種方法來分析其設計中模擬網絡上的噪聲?,F有流程采用一種專門方法處理噪聲,即,依靠設計人員的經驗在需要之處添加屏蔽和額外的間距。對于團隊一直使用的相對較大的幾何工藝而言,這些“屏蔽然后聽天由命”的方式足以應對。但若要轉向新工藝時,則希望可以借助某種分析方法來改善流程。
要起到作用,分析方法必須合理有效,并且最好盡可能地充分利用現有基礎結構。運行時的性能被認為比絕對精度更加重要;需要考慮最壞情況下的結果。發(fā)現的任何潛在問題都可以進一步分析,移植步驟也可以實現。如果發(fā)現了足夠的余量,則可回收先前為屏蔽或間距分配的資源。此外,還需要一種能夠在設計更改時作為標準回歸流程一部分運行的自動化技術。
3.2 實現中的挑戰(zhàn)
PT-SI的噪聲分析功能似乎能夠滿足上述要求。只需寫出SPEF和交叉耦合電容并確保模型支持SI分析,便可將該功能添加到現有流程中。但是,PT-SI針對同步數字網絡而設計。它能夠計算模擬網絡上的噪聲沖擊嗎?如果能,它將如何處理數字干擾源在異步模擬網絡上的時序?PT-SI能夠處理作為干擾源的模擬網絡嗎?如果能,它將如何處理?在SolvNet或Web上進行搜索對回答這些問題沒有太大幫助,也難以找到人們使用PT-SI分析模擬網絡的任何證據。
3.3 尋求解決方案
3.3.1 PT-SI能夠計算模擬網絡上的噪聲嗎?
由于我們了解自己的工作范圍超出了PT-SI的設計意圖,因此先從最基本的問題開始——PT-SI能夠計算模擬網絡上的噪聲嗎?要回答這個問題,需要找到獲取噪聲沖擊的命令(report_noise_calculation),然后在模擬網絡上進行嘗試。得出的答案是“可以”,即,PT-SI可以計算模擬網絡上的噪聲。然后下一個問題是:它究竟如何計算該異步模擬網絡上的噪聲沖擊?其行為與預期相同,還是因被干擾網絡的性質而有所不同?
3.3.2 PT-SI如何計算模擬網絡上的噪聲沖擊?
要利用PT-SI計算模擬網絡上的噪聲沖擊,需要哪些模型增強功能或額外設置?PT-SI會按預期處理被干擾網絡上的干擾源,還是將所有干擾源視為異步干擾源(就像干擾會產生過度糟糕的結果一樣)?它會因模擬網絡由黑盒驅動而忽略作為干擾源的這些模擬網絡嗎?
第一個問題需要搜索文檔來找到合適的命令。有兩個命令可用于被干擾網絡上的驅動器和負載引腳。Set_noise_lib_pin或set_steady_state_resistance定義驅動器的強度,而set_noise_immunity_curve或set_noise_margin則定義負載引腳對所引入噪聲沖擊的容限。盡管并未嚴格要求定義負載引腳的容限,但它可提供一種方法來實現自動校驗:PT-SI計算噪聲的余量,結果可能滿足要求或違反要求(就像時序校驗)——如果噪聲超出限制,便可輕松實現自動校驗。
回答第二個問題需要閱讀更多文檔并進行一些實驗。相關文檔指出,模擬網絡上的噪聲沖擊應按預期計算:按時放置同步數字干擾源并計算其影響,隨后添加重疊沖擊來計算最壞情況下的噪聲沖擊。異步干擾源會置于最糟糕的點上,其影響也將按預期添加。
實驗大體上證實了我們的預期,即噪聲沖擊由大量數字干擾源組成。令人驚訝的是,盡管如此,仍然存在許多模擬干擾源(包括很多最大的干擾源)。進一步研究發(fā)現,即使在這些網絡由黑盒驅動時:如果已為這些干擾源定義了時序,PT-SI會推斷出其輸出上的轉換,從而產生異步干擾源。此干擾源隨后按預期進行處理,其影響會按時置于最糟糕的點上。PT-SI會自動過濾大多數小干擾源。由于我們希望得到最壞情況下的噪聲沖擊,因此將si_filter_per_aggr_noise_peak_ratio和si_filter_accum_aggr_noise_peak_ratio變量設置為0,從而使PT-SI的分析中包含所有干擾源。
3.4 遇到的挑戰(zhàn)
我們在研究早期遇到的一個問題是set_noise_lib_pin無法對雙向端口起作用,而所關注網絡上的許多引腳的模型都是雙向引腳。當模型尚不具備模擬網絡驅動器的相關細節(jié)時,這將限制我們使用set_steady_state_resistance。這并非一個關鍵問題,但確實從工具箱中移除了某個工具。
深入分析初步結果會發(fā)現一個更微妙的問題:當這些網絡之一受到多重驅動時,PT-SI會忽略任何標注信息并計算轉換,同時僅發(fā)出隱藏的RC-002警告(“RC-002(警告):網絡’%s’僅控制多重驅動網絡’%s’的一個驅動器子集,因此無法使用詳細的RC延時計算。”)。這種轉換極其糟糕(引起的噪聲沖擊幾乎占示例中總噪聲沖擊的25%),并且根本不會嘗試讓轉換成為現實——即,set_annotated_transition不起作用。PT-SI會接受在該干擾源的驅動器上應用set_annotated_transition,然后忽略向其發(fā)送的任何值,轉而采用內部計算的值。最終,我們使用disconnect_net命令將驅動器的數量減少為一個,并標注一個有干擾性但真實的轉換值,如圖4所示。對于這種情況,這會完全消除干擾源的影響。
結論
應用PT-SI來計算模擬網絡上引入的噪聲是可行的,但存在一定限制。這種技術可自動驗證敏感模擬網絡在設計定案前是否已充分隔離,也可創(chuàng)造機會來提高設計的布通率,具體方法是:恢復先前在關鍵模擬網絡附近用于實現屏蔽或隔離的資源。可在自動化流程中引入該分析方法來替代當前的特殊方法,新的分析方法有助于確保一次投片成功率。
評論