BSIM3 and technology related question

Discussion in 'Cadence' started by solidrepellent, May 13, 2008.

  1. Hi all,

    I would be working on designing circuits at sub-threshold logic level.
    Before I start designing and simulating small little circuits I have
    to know a couple of things.

    I understand that BSIM3 models are modelled quite well in sub-
    threshold region. But I am not sure if there are other models which
    are good compared to that. The questions that I have are related to
    this basically.

    1) Are there models which I could possibly use which are better than
    BSIM3? If yes, what are they?

    2) How do I know that the models that I am using currently belong to
    BSIM3 or something else? How do I change those models in Cadence?

    3) How do I get parameters like gamma, k, mu, Vth etc for a particular
    technology. Every one says that it is in the technology file. But my
    question is where is that technology file?

    I understand that most of the questions are not Cadence related but
    please :).

    Thanks and Regards,
    Naveen.
     
    solidrepellent, May 13, 2008
    #1
  2. BSIM4 for example.
    You can read the model source code. It is provided by the foundry. Check
    your design kit.
    You need to get it from the fab.

    You know that bsim3 has 81 and bsim4 251 independent parameters for
    modelling ?

    Check out the homepage from the bsim group (berkeley)
    http://www-device.eecs.berkeley.edu/~bsim3

    Regards,

    Stefan
     
    Stefan Joeres, May 14, 2008
    #2
  3. solidrepellent

    Riad KACED Guest

    Dear Naveen,

    There are two main questions you have to ask yourself in order to find
    the best model for your application :
    1. What is your application ? what do you want to model or simulate ?
    What is the more accurate model for your design needs ?
    You've already answered this question => MOS subthreshold region,
    which is a good start.
    2. Is your foundry, Model or PDK provider can supply you the model you
    need ? That's important as well !

    back to your questions :

    1. BSIM3v3 is the industry standard nowadays, it has a very good
    modeling of the Sub-threshold region and it is supported and provided
    by almost all the foundries.
    BSIM4 is getting more popular among the nano technologies world since
    it is solving many missing items from the BSIM3, such as the Well
    Proximity Effect (WPE), the Shallow Trench Isolation stress (STI),
    Halo/Pocket modeling, Gate direct Tunneling, GIDL ... Except these new
    silicon side effects at small geometries, i don't think BSIM4 has
    improved anything directly related to the sub-threshold region. So do
    you really need the modeling of these new stuffs ? what is your
    technology node ? If you're in 0.13u and below, I would say BSIM3 is
    fair enough.
    Apart from BSIM3, PSP has been selected as a standard for nano
    technologies by the Compact Modeling Council group, but do you really
    need it ? This is a report from TI about sub-Threshold modeling in
    PSP ...
    http://www.eigroup.org/CMC/next_gen_cmos/phase3/ti.pdf
    PSP is getting more power among the semiconductor wold but only few
    foundries are supporting it now ...
    Well, there are other modeling standards but my knowledge of EKV,
    HiSIM and stuff is very very weak.
    If you fancy reading about modeling, I would advice :
    1. The CMC's (Compact Modeling Council) web site:
    http://www.geia.org/index.asp?bid=597
    2. The BSIM's web site
    http://www-device.eecs.berkeley.edu/~bsim/
    3. The following books:
    3.1 Device Modeling for Analog and RF CMOS Circuit Design (Book)
    3.2 Operation and Modeling of the MOS Transistor MOSFET
    3.3 Models for SPICE Simulation, Including BSIM3v3 and BSIM4

    2. I entirely commit with Stefan, you've to be a bit nosy ... File
    searching in Unix is not harmful. search your PDK for .scs
    (spectre), .lib (Eldo, Hspice), .gem (ADS) ...

    3. These parameters are in your Spice Model Cards, and sometimes
    supplied in foundry's documentation (few set of them).
    For your question : "But my question is where is that technology
    file", my answer is : give me the IP address of your machine, your
    username and your password, shut down all the firewalls and other
    security stuffs. I'll then log on and give you the answer. You will be
    certainly fired for this ;-) Nobody can answer this question my
    buddy ! it depends on your PDK provider. Some BAD foundries even
    change the locations from a pdk version to another ...
    Well I'm not that bad and I can say that your simulator can dump these
    parameters for you. You just need to make a test bench with one single
    transistor, biased with DC voltage sources and run a DC OP simulation.
    Go to the ADE -> Results -> Print -> Model Parameters and then select
    your MOS !! This is what I propose to begin with. There are other ways
    to do it if requested.

    Hope this is helping you !

    Riad.
     
    Riad KACED, May 15, 2008
    #3
  4. Thanks a lot for the reply's Stefan and Riad. It was very very
    helpful.

    I now understand that I could go with BSIM3 since I am using 0.13u
    technology node and as you have said (also from my research during the
    past 2 days).

    Also I was able to find the parameter values (like k, mu, vth etc.) by
    the procedure suggested by Riad. I have also made a unix search for
    *.scs and *.lib files and found that some of those parameters that the
    simulator has dumped come from those files infact. It would be really
    interesting to know other ways of getting those parameter values.
    Please Riad :).

    Also I have one more nagging question. Suppose I have two different
    models for 0.13u provided by my foundry, I would like to know how can
    we change the models using Cadence or someother means. Just to see the
    performace of one over the other. Lets say I would like to see the
    performance of one model over the other for an inverter in the
    subthreshold region or in a region of transition from subthreshold to
    strong inversion.

    Thank you all once again,

    Naveen.
     
    solidrepellent, May 15, 2008
    #4
  5. solidrepellent

    Riad KACED Guest

    Dear Naveen,

    You could have helped me in telling me which simulator you're
    using :)
    I assume spectre for the rest.
    Before going into details, my solution is not going to help you if you
    ar a GUIsh guy who is scared by the unix terminals ...

    When you launch a spectre simulation, Cds creates a set of files into
    your unix sim working dir y've defined in ADE. these files include:
    1. input.scs, which is your main spectre netlist
    2. runSimulation which is the shell script that runs spectre.

    Assuming a dcOp simulation. if you open the input.scs, you will see
    the following lines at some point :
    dcOpInfo info what=oppoint where=rawfile
    modelParameter info what=models where=rawfile
    .....
    Means that Spectre will dump the DC OP information (models, outputs,
    subckts, opPoint ...) into a rawfile that ou can open with the Cds
    resultBrowser from your psf dir. I'm usually hacking this netlist
    changing rawfile to file in order for spectre to dump the results in
    an ASCII file rather than a raw one.

    Once the netlist hacked, I run Spectre either from ADE (!! DO NOT RE-
    NETLIST) or by running the runSimulation shell script from unix.
    A bench of 'input.info.X' files is then created, including :

    input.info.models ==>
    ****************************************
    Model parameter values `modelParameter':
    ****************************************
    Model: M0.nmos.1
    Primitive: bsim3v3
    type = n
    vtho = 775.197 mV
    vfb = -1 V
    k1 = 500.736 msqrt(V)
    k2 = 73.1886e-03
    k3 = 0
    k3b = 0 1/V
    ..........

    input.info.oppoint ==>

    Instance: M0 of nmosSubckt
    Model: M0.nmos.1
    Primitive: bsim3v3
    d : V(net5) = 2 V
    g : V(net11) = 1 V
    s : V(net2) = 0 V
    b : V(net2) = 0 V
    type = n
    region = sat
    reversed = no
    ids = 407.12 uA
    isub = 424.076 nA
    vgs = 1 V
    vds = 2 V
    vbs = 0 V
    vgb = 1 V
    vdb = 2 V
    vgd = -1 V
    vth = 524.033 mV
    vdsat = 250.463 mV
    .................

    Well, you get everything you want with this.

    If you are interested in some specific parameters only, I would advice
    to use ocean : There are some examples I've written over christmas I
    think ...

    selectResults('tranOp)
    report(?output "myReport" ?type "bsim3v3" ?param "vth")

    Will print :

    Type : bsim3v3

    /I0/M0 : vth = 1.004
    /I0/M1 : vth = 1.014
    /I0/M2 : vth = 836.7m
    /I0/M3 : vth = 836.7m

    dataTypes()
    ("bsim3v3" "capacitor" "inductor" "isource" "resistor" "vsource")

    M0Vth = pv( "/I0/M0" "vth" ?result "tranOp")
    printf("The value of VTH for M0 is %L\n" M0Vth)
    ==> The value of VTH for M0 is 1.004222

    outPort = outfile("./MyRkResults.txt")
    selectResults('model)
    report(?output outPort ?type "bsim3v3" ?name "I0.M1.nmosmod" ?param
    '("vtho" "k2" "w0" "dvt0" "dvt0w") )

    ==> Give a try ;-)

    Riad.
     
    Riad KACED, May 16, 2008
    #5
  6. solidrepellent

    Riad KACED Guest

    Ouups, for the other question: How to change model file.
    These are my comments from a previous post (You should have searched a
    bit ;-) )

    Well, when you include inculde your file into your simulation
    environment using : ADE -> Setup -> Model Libraries, you have to :
    1. fill the "Model library file" field with the path to your .scs
    file
    2. In your case since you've many sections in your file, you have to
    put the target section into the 'Section (opt.)' filed at the right
    as
    mentioned by Stéphane.


    The same subckts/models are defined in the different sections but
    with
    different technology sets.
    the naming convention for your sections is :
    T = Typical
    F = Fast
    S = Slow


    A section 'FF' means the date put into it are measured in the
    conditions of a 'Fast' NMOS and 'Fast' PMOS.


    If you want to MANUALLY run multiple simulation with TT, then FF,
    then
    SS, then whatever section ..., one way to it is then :
    . Include your .scs and specify TT as the desired section and then
    click the 'add', this will insert a new line
    Back to your section name and replace TT by FF, click add ... And so
    on. You will then have as many lines as sections.
    The last step, is to make only one 'ACTIVE' by selecting the line you
    want and click the Enable/Disable buttons on the right hand side.
    A '#' sign is added in front of each disabled line. Ensure than one
    section only is enabled. You can than switch vack and forth between
    your sections as your work evolves.
    That's the manual way to do it ...

    Riad.
     
    Riad KACED, May 16, 2008
    #6
  7. Thanks a lot for that Riad. I have tried both of them (hacking the
    netlist and changing the model files) and they work like a charm. I
    have some working experience with OCEAN and SKILL and I love the
    command line :). So, it was not a problem to understand what you
    said. I am infinitely indebted to you :). Thanks once again.

    Naveen.
     
    solidrepellent, May 16, 2008
    #7
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.