Spectre 技術秘笈:Spectre FMC Analysis 功能介紹
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)建立模型,還能進一步提升效能,如下所示。

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