Keysight ADS教學 - 一維&二維參數掃描(parameter sweep)

   Take-away: 

  1. ADS電路模擬可sweep一維和二維(以上)變數。
  2. 一維sweep可用Param Sweep元件。
  3. 二維sweep可用Batch Sim Controller元件。

-----Start
(如下圖)
在設計中,我們常要看參數變動對結果造成的影響,例如線寬變動對走線串擾有多少影響。Keysight ADS軟體提供了非常便利的參數sweep功能,本篇會介紹一維變數sweep、二維變數sweep。

(如下圖)一維變數sweep
本篇用ADS中TL-LINE模型當範例。
(對TL-Line不熟悉者,可見[連結])
首先建立變數var,並將要sweep的參數用變數取代,範例為掃描trace的spacing。
(如下圖)維變數sweep電路設定
接著放入Param Sweep元件,由此元件來管理變數的sweep方式。
掃描trace_spacing,20um開始、144um結束、每15um一點。
請記得在ParamSweep元件中的分頁Simulations中填入simulator的名子(這邊simulator是SP1)。
(如下圖)維變數sweep模擬結果
模擬完後,我們先叫出trace_spacing參數,看跑的變數是否如同預期。
結果顯示
trace_spacing的確是由20um開始、144um結束、每15um一點,共跑了10個點。
叫出S(1,3),可以看到S(1,3)有10條線,分別為不同trace_spacing的結果。
S(3,1)為串擾XTALK的結果,可以看到trace_spacing越大時,XTALK越小,符合預期。
跑一次模擬就完成不同spacing的XTALK結果。
如果我們不想一次看10條線的結果,只想看
trace_spacing 20um的單獨結果。
可在參數後方加入[0,::],例如S(1,3)[0,::]。
同理,S(1,3)[1,::]為trace_spacing是35um的單獨結果。
同理,S(1,3)[2,::]為trace_spacing是50um的單獨結果。
(如下圖)二維變數sweep
介紹完一維變數sweep後,接著介紹二維變數sweep。
例如我們想看trace_spacing和trace_width兩個變數帶來的影響。
可想而知,兩個變數sweep會形成一個MxN的矩陣。
首先新增兩個變數,trace_spacing和trace_width。
(如下圖)維變數sweep電路設定
一維swee是用Param Sweep元件,二維sweep則是batch sim controller。
接著設定要sweep的變數,trace_spacing和trace_width,以及其sweep方式。
請記得在元件中的分頁Simulations中填入simulator的名子(這邊是SP1)。
(如下圖)二維變數sweep模擬結果
模擬完後,我們可以先叫出trace_spacing參數,看跑的變數是否如同預期。
結果顯示
trace_spacing的確是由48um開始、96um結束、共跑了6個點。
trace_wdith的確是由48um開始、100um結束、共跑了7個點。
也形成6x7的矩陣。
若呼叫S(1,3)出來,會看到密密麻麻的data,裡面包含了6x7=42組data。
data顯示方式為[M,N,::],M為trace_width,N為trace_spacing。
若要看固定線寬trace_width,不同spacing的結果,我們可把[M,N,::]中的M固定住。
例如要看trace_width為48um,可在變數後加上[0,::,::]。
若要看固定線距spacing,不同trace_width的結果,我們可把[M,N,::]中的N固定住。
例如要看spacing為65.33um,可在變數後加上[::,2,::]。
若要看固定線寬trace_width、固定線距spacing的結果,我們可把[M,N,::]中的M&N固定住。
例如要看trace_width為48um、spacing為65.33um,可在變數後加上[0,2,::]。

更高維度的變數掃描(例如:MxNxP),也是同樣用batch sim controller來達成。
如果要跑的是兩次一維變數掃描,例如M&N,請用兩個Param Sweep元件來達成,若用batch sim controller會變成MxN二維矩陣。

-----END

留言