top of page

Spectre 技術秘笈:Spectre FMC Analysis 功能介紹

Jun 4
2 min read

Cadence Blog / Jianhe Guo

隨著製程特徵尺寸不斷微縮,元件不匹配(device mismatch)對電路效能的影響日益加劇,如今需要更多的蒙地卡羅(Monte Carlo)模擬,才能分析這種不匹配對效能指標的衝擊。以標準蒙地卡羅演算法而言,記憶體設計要判定 4σ 良率所需的一百萬次模擬,執行成本過高而難以達成;至於高標準差(high-sigma)良率分析,顯然需要超過十億次模擬。

Spectre FMC Analysis 採用先進演算法加速高標準差模擬,提供兩大功能:FMC 最差樣本預測(worst sample prediction)與 FMC 良率估算(yield estimation)。本文說明使用這兩項功能的命令列選項。

FMC 最差樣本預測

這項新功能讓您無需執行完整的蒙地卡羅樣本集,即可萃取有用的統計資訊,特別適用於高標準差分析。它基於機器學習樣本重排序(sample reordering)方法,僅針對分布尾端(tail of distribution)模擬量測項目的最差樣本。搭配作業分散(job distribution)建立模型,還能進一步提升效能,如下所示。

Spectre FMC-Worst Sample Prediction

Virtuoso ADE Product Suite 與 Spectre 命令列皆支援 Spectre FMC 最差樣本預測。

若要執行最差樣本模擬,您需要指定以下三個參數中的任意兩個:numruns、fmcsigma 與 fmcnumtailsamples。

mc1 montecarlo numruns=20000 firstrun=1 seed=12345 \
   variations=all donominal=no savefamilyplots=no \
    fmcmethod=worstsample fmcsigma=3 {
       tran tran step=1p stop=2n
 }

接著,在 statistics target goal 區塊中指定要找出最差樣本的量測項目。

 statistics {
  target {
     goal  <measurement_name>  min=<value>
     goal  <measurement_name>  max=<value>
     goal  <measurement_name>  min=<value> max =<value>
  }
}

FMC 良率估算

當模擬預算有限時,Spectre FMC 良率估算能快速提供標準差(sigma)、失效率(failure rate)與信賴區間(confidence interval)的答案。它以固定的模擬成本,根據量測目標的邊界判定良率。

mc1 montecarlo numruns=1e+6 fmcmethod=yieldest  \
fmcbudget=3000 fmcconfidence=0.95 {
    tran tran step=1p stop=tran_time autostop=yes
}

為提升效能,FMC 最差樣本預測與 FMC 良率估算兩種分析皆可使用分散式模式(distributed mode)。您可以使用 fork、lsf 或 sge 其中一種選項來啟動子行程(child process),並搭配命令列選項 +mp=<number_of_processes> 指定要啟動的子行程數量。

 %bsub –R "(OSNAME==Linux)" "spectre +aps -mt +mp=50 input.scs –outdir fullpath/out_mp/"

若要讓所有分散式作業在同一主機上執行,請在上述指令之外加上 +mplauncher=ksh。

Comments


bottom of page