Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Monte Carlo Simulation (Mismatch)

Status
Not open for further replies.

m_mehri65

Newbie level 3
Newbie level 3
Joined
Oct 16, 2012
Messages
3
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,307
Hello,
I'm working with TSMC 180nm and try to run Montre Calro Mismatch simulation.
I can see the parameters variation of Porcess Analysis but for Mismatch Analysis there is no variation in parameters.
I tried to check the variation of toxnmis or other parameters variation which are defined in mismatch section, but all parameters are 0 for all iterations.

Here is the script which is defined in kits' foundry file:

Code:
section mc
 
parameters par1=0
parameters par2=0
parameters par3=0
parameters par4=0
parameters par5=0
parameters vthnmis=0
parameters dlnmis=0
parameters dwnmis=0
parameters toxnmis=0
parameters vthpmis=0
parameters dlpmis=0
parameters dwpmis=0
parameters toxpmis=0
parameters a1n=par1
parameters a1p=par2
parameters a2np=par3
parameters a3np=par4
parameters a4np=par5
parameters fac_n=1.00 * 2.4
parameters fac_p=1.00 * 2.1
parameters du0n=a1n * fac_n * ( - 0.06e-2) + a4np * fac_n * ( - 0.02e-2)
parameters dlu0n=a1n * fac_n * ( - 0.22e-9)
parameters dwu0n=a1n * fac_n * ( - 0.00e-9)
parameters dpu0n=a1n * fac_n * ( - 1.0e-16)
parameters dvthn=a1n * fac_n * 0.0095
parameters dlvthn=a1n * fac_n * 1.05e-9
parameters dwvthn=a1n * fac_n * 2.25e-9
parameters dpvthn=a1n * fac_n * 1.0e-15
parameters toxn=4.08e-09 + a4np * fac_n * 0.5e-10
parameters dxln=a2np * fac_n * 0.8e-8
parameters dxwn=a3np * fac_n * 1.20e-8
parameters dk2n=a1n * fac_n * 0.002 + a4np * fac_n * 0.001
parameters dlk2n=a1n * fac_n * 0.12e-8 + a4np * fac_n * 0.10e-8
parameters dvsatn= - a1n * fac_n * 0.27e4
parameters dwvsatn= - a1n * fac_n * 0.3e-3
parameters deta0n=0.0 * a1n * fac_n
parameters dleta0n= - 0.08e-9 * 0.5 * (a1n * fac_n - sqrt(a1n * fac_n * a1n * fac_n 
+ + 1e-8)) - 0.8e-10 * 0.5 * (a2np * fac_n - sqrt(a2np * fac_n * a2np * fac_n + 
+ 1e-8))
parameters dweta0n=0
parameters dpeta0n= - 0.0e-16 * 0.5 * (a1n * fac_n - sqrt(a1n * fac_n * a1n * fac_n 
+ + 1e-8)) - 1.0e-16 * 0.5 * (a2np * fac_n - sqrt(a2np * fac_n * a2np * fac_n + 
+ 1e-8)) + 1.0e-16 * 0.5 * (a3np * fac_n + sqrt(a3np * fac_n * a3np * fac_n + 1e-8))
parameters dnfactorn=a1n * fac_n * 0
parameters dlnfactorn=a1n * fac_n * 1.5e-8 + a2np * fac_n * 1.1e-8
parameters dwnfactorn=a1n * fac_n * 0
parameters dpnfactorn=a1n * fac_n * 0.0e-15 + a2np * fac_n * 0.2e-15 - a3np * fac_n 
+ * 0.2e-15
parameters dvoffn= - a1n * fac_n * 0.003
parameters dlvoffn= - a1n * fac_n * 0.000
parameters dwvoffn= - a1n * fac_n * 0.000
parameters dpvoffn= - a1n * fac_n * 0.0e-15 - a2np * fac_n * 0.43e-15 + a3np * fac_n 
+ * 0.43e-15
parameters du0p=a1p * fac_p * ( - 0.001e-2) + a4np * fac_p * ( - 0.001e-2)
parameters dlu0p=a1p * fac_p * ( - 0.05e-9)
parameters dwu0p=a1p * fac_p * (0e-9)
parameters dpu0p=a1p * fac_p * ( - 0.05e-16)
parameters dvthp=a1p * fac_p * ( - 0.0125)
parameters dlvthp=a1p * fac_p * ( - 0.8e-9)
parameters dwvthp=a1p * fac_p * ( - 1.6e-9)
parameters dpvthp=a1p * fac_p * ( - 0.2e-15)
parameters toxp=4.08e-09 + a4np * fac_p * 0.5e-10
parameters dxlp=a2np * fac_p * 0.8e-8
parameters dxwp=a3np * fac_p * 1.20e-8
parameters drdswp=0
parameters dk2p=a1p * fac_p * 0.002 + a4np * fac_p * 0.0001
parameters dlk2p=a1p * fac_p * 0.08e-8 + a4np * fac_p * 0.04e-8
parameters dvsatp= - a1p * fac_p * 1.00e4
parameters dwvsatp= - a1p * fac_p * 0.3e-3
parameters deta0p=0
parameters dleta0p= - 0e-10 * 0.5 * (a1p * fac_p - sqrt(a1p * fac_p * a1p * fac_p 
+ + 1e-8)) - 1.6e-10 * 0.5 * (a2np * fac_p - sqrt(a2np * fac_p * a2np * fac_p + 
+ 1e-8))
parameters dweta0p=0
parameters dpeta0p= - 0.1e-16 * 0.5 * (a1p * fac_p - sqrt(a1p * fac_p * a1p * fac_p 
+ + 1e-8)) - 0.5e-16 * 0.5 * (a2np * fac_p - sqrt(a2np * fac_p * a2np * fac_p + 
+ 1e-8)) + 0.5e-16 * 0.5 * (a3np * fac_p + sqrt(a3np * fac_p * a3np * fac_p + 1e-8))
parameters dnfactorp=a1p * fac_p * 0
parameters dlnfactorp= - a1p * fac_p * 0.5e-8 + a2np * fac_p * 1.5e-8
parameters dwnfactorp= - a1p * fac_p * 0
parameters dpnfactorp=0
parameters dvoffp= - a1p * fac_p * 0.000
parameters dlvoffp=a1p * fac_p * 0.2e-8
parameters dwvoffp= - a1p * fac_p * 0.2e-8
parameters dpvoffp=a1p * fac_p * 0.9e-15 - a2np * fac_p * 0.1e-15 + a3np * fac_p 
+ * 0.1e-15
parameters cjn=0.001000266 * (1 + 0.05 * a1n)
parameters cjswn=2.040547e-10 * (1 + 0.05 * a1n)
parameters cjswgn=3.340547e-10 * (1 + 0.05 * a1n)
parameters cgon=3.665e-10 * (1 - 0.05 * a4np)
parameters hdifn=2e-07
parameters rshn=6.8
parameters dk1n=0
parameters drdswn=0
parameters cjp=0.001121 * (1 + 0.05 * a1p)
parameters cjswp=2.481e-10 * (1 + 0.05 * a1p)
parameters cjswgp=4.221e-10 * (1 + 0.05 * a1p)
parameters cgop=3.28e-10 * (1 - 0.05 * a4np)
parameters hdifp=2e-07
parameters rshp=7.2

statistics {
    process {
        vary par1 dist=gauss std=1/3
        vary par2 dist=gauss std=1/3
        vary par3 dist=gauss std=1/3
        vary par4 dist=gauss std=1/3
        vary par5 dist=gauss std=1/3
        }
    mismatch {
        vary vthnmis dist=gauss std=1/1
        vary dlnmis dist=gauss std=1/1
        vary dwnmis dist=gauss std=1/1
        vary toxnmis dist=gauss std=1/1
        vary vthpmis dist=gauss std=1/1
        vary dlpmis dist=gauss std=1/1
        vary dwpmis dist=gauss std=1/1
        vary toxpmis dist=gauss std=1/1
        }
    }
 
include "rf018.scs" section=mos
endsection mc
 
Last edited by a moderator:

Montecarlo Simulation ( Mismatch)

Hello,

I'm working with TSMC 180nm and try to run Montre Calro Mismatch simulation.
I can see the parameters changing in Porcess Analysis, but for Mismatch Analysis there is no variation in parameters which are defined in mismatch section (all parameters which are defined in mismatch section are 0 for all iterations).

Here is a simple scripts which is defined for process and mismatch parameters variation:
(I see the change in vth parameter in each iteration, but vthnmis is 0 for all iterations).


Code:
section mc
 
parameters vth=0

parameters vthnmis=0

statistics {
    process {
        vary vth dist=gauss std=1/3
       
        }
    mismatch {
        vary vthnmis dist=gauss std=1/1

        }
    }
 
endsection mc

Thank you,
 
Last edited by a moderator:

I think this foundry kit is just prepared for MC mismatch parameters, which will be provided after corresponding silicon evaluation and measurements.

New process?
 

I think this foundry kit is just prepared for MC mismatch parameters, which will be provided after corresponding silicon evaluation and measurements.

New process?

Thanks for your reply,

I have no problem with MC Process analysis because I see the variation in parameters for each iteration, but there is no variation for MC mismatch analysis which is indeed against what you say !! How it can be designed for MC mismatch while I see no variation??!!

Thanks,
 

... there is no variation for MC mismatch analysis which is indeed against what you say !! How it can be designed for MC mismatch ...
I think there's a mismatch ;-) in understanding of what I responded above:

I guess the (wafer) mismatch parameters are not yet available (all parameters ...mis=0), so this MC parameter file is just prepared for later analysis, when these parameters can be replaced from evaluated silicon measurements.

Or can you find - in another part of the sim. control file - any new parameter definitions like, e.g.
vthn = vthn0 {+,-,*} vthnmis ? Ask your foundry!
 

TSMC has a dedicated pcells for MC simulations. Change all devices to <device>_mis ones (i.e. nfet → nfet_mis) and rerun simulation
 

Hi i am facing the same problem wer i see no variation when i do mismatch analysis. Process analysis works fine. Could you pls explain what you mean by "file prepared for later analysis". Isn't it like we just add model file and run simulation for mismatch.
I found online

"Somewhere I found out that in order to do the mismatch(variation) analysis in 'Spectre', I need to surround my circuit with a
parametrized model". What is a parametrized model and how do we surround the circuit with it? Is this the right way to obtain results for mismatch analysis.

I am working with TSMC 180nm. If anybody solved this problem pls help. I have included the following in model library.

/CMC/kits/cmosp18.5.2/models/spectre/rf018.scs (section: mc)

Also one other thing is process analysis is nothing but analysis of mismatch between W and L between different die. So when mismatch of other die's transistors can take place why am i not able to do mismatch for one single circuit. thank you!!!
 

Now you've kidnapped another MC simulation mismatch thread, not bad!

Could you pls explain what you mean by "file prepared for later analysis".

the (wafer) mismatch parameters are not yet available (all parameters ...mis=0), so this MC parameter file is just prepared for later analysis, when these parameters can be replaced from evaluated silicon measurements.

The foundry hasn't yet measured/evaluated the process mismatch parameters from measurements on silicon until now. However the process variation parameters in the variation file are preset to "0" - means this has no effect on process mismatch MC analysis -, so when these variation parameters are known, the zeroes will be exchanged by the evaluated values.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top