Home > Community > Forums > Custom IC Design > How to set the model parameter STIMOD in simulation?

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 How to set the model parameter STIMOD in simulation? 

Last post Wed, Sep 4 2013 1:41 PM by Alex Liao. 11 replies.
Started by Alex Liao 22 Aug 2013 05:27 PM. Topic has 11 replies and 1294 views
Page 1 of 1 (12 items)
Sort Posts:
  • Thu, Aug 22 2013 5:27 PM

    • Alex Liao
    • Top 200 Contributor
    • Joined on Wed, May 22 2013
    • Posts 37
    • Points 575
    How to set the model parameter STIMOD in simulation? Reply
    Hi

    The STIMOD is the LOD stress effect model selector. I can view this after any simulation by printing the model parameter in virtuoso ADE. But I have checked the modelfile.scs which is included in any simulation. It is BSIM4.5 and no such selector found in it. Is there anybody who knows how to set this STIMOD? If it is in print MODEL parameter, it should come from somewhere. Anyone who has knowledge and presents here is highly appreciated.

    Thanks,

    Alex
    • Post Points: 20
  • Tue, Aug 27 2013 9:02 PM

    Re: How to set the model parameter STIMOD in simulation? Reply

    Alex,

    The only way I can see this influencing the model parameters is if it is actually set in the model card. For example this test.scs file:

    //
    model nch bsim4 type=n stimod=2
    M1 (1 2 0 0) nch w=1u l=1u //stimod=1
    models info what=models where=screen

    Setting it on an instance line (which is also supported) does not influence the info analysis which outputs the models (nor would you expect it to).

    Regards,

    Andrew.

     

    • Post Points: 20
  • Wed, Aug 28 2013 1:26 PM

    • Alex Liao
    • Top 200 Contributor
    • Joined on Wed, May 22 2013
    • Posts 37
    • Points 575
    Re: How to set the model parameter STIMOD in simulation? Reply

    Hi Andrew,

     My model card looks like this : 

    //model nch bsim4  { 

         1: type=n 

    + lmin=9.999997e-006-dxln   lmax=2.00001e-05          wmin=1e-005-dxwn

    + wmax=0.0009000001         version=4.5               gbmin=1.00e-12 // and there is no stimod, such keyword in model card.

    I tried to put  stimod = 2 in

    // model nch bsim4 stimod =2 {  //

    or in //model nch bsim4  {  1: type=n stimode =2 // or in

    or in//model nch bsim4  { 

         1: type=n 

    + stimod = 2 

    + lmin=9.999997e-006-dxln   lmax=2.00001e-05          wmin=1e-005-dxwn//

    And view info analysis (print model parameters), the stimod field is still = 0.

    So I think there is other way of setting this stimod. 

    Regards,

    Tuotian Liao 

     

    • Post Points: 20
  • Thu, Aug 29 2013 1:18 AM

    Re: How to set the model parameter STIMOD in simulation? Reply

    Tuotian,

    The first modification won't work, because you have a binned model - and the parameters need to be defined in the bins (the 1:. 2: etc sections).

    The second modification works fine - of course, if you only made the modification in one of the bins, but your transistor has a w or l that doesn't fit between the lmin/lmax or wmin/wmax for that bin, it won't use that bin.

    For example, I took your model and did this:

    // example of setting stimod on a binned model
    parameters dxln=0.1u dxwn=0.1u

    model nch bsim4  {
         1: type=n
         + stimod = 2
         + lmin=9.999997e-006-dxln   lmax=2.00001e-05          wmin=1e-005-dxwn
         2: type=n
         + lmin=1u   lmax=2u          wmin=1u wmax=2u
         }

    M1 (1 2 0 0) nch w=12u l=11u
    //M1 (1 2 0 0) nch w=1.2u l=1.1u
    models info what=models where=screen

    This works fine - if I do "spectre teststimod.scs | grep stimod" you'll see:

     Simulating `teststimod.scs' on lnx-andrewb-w520 at 9:15:01 AM, Thur Aug 29,
         stimod = 2

    If I comment out the first M1, and uncomment the second M1, I get:

     Simulating `teststimod.scs' on lnx-andrewb-w520 at 9:14:50 AM, Thur Aug 29,
         stimod = 0

    From your original post, I assumed that you were seeing stimod as being set in your models, but if it was showing 0, that is just the default value...

    Regards,

    Andrew.

    • Post Points: 20
  • Thu, Aug 29 2013 1:42 PM

    • Alex Liao
    • Top 200 Contributor
    • Joined on Wed, May 22 2013
    • Posts 37
    • Points 575
    Re: How to set the model parameter STIMOD in simulation? Reply

    Andrew,

    In my ADE setting, I include only one model card (my_model_65STIMOD.scs) which is a copy of section of standard model card (section = tt and standard BSIM4 nch and pch part). I have manually added stimod = 2 to each section (50bins, 25 for nch, 25 for pch ). But after simulation I print model parameter of any device. The stimod is still unchanged. please see this .

    And I have tried your command "spectre teststimod.scs | grep stimod" and replaced teststimod.scs to my_model_65STIMOD.scs. The result is .

    I think I have covered every case(50 bin) and no other model section or devices involved. The unchanged result confused me.

    Regards, 

    Tuotian.

    • Post Points: 20
  • Fri, Aug 30 2013 12:58 AM

    Re: How to set the model parameter STIMOD in simulation? Reply

    You can't just run spectre on your model file - it has sections in it, and spectre will not be able to find anything (plus you don't have any instances, and no info analyses).

    Did you try running my example? (attached).

    I can only imagine there is either something wrong with the version of the simulator you're using (although I tried back to MMSIM61, and it worked even then with my example), or you made a mistake somehow and the file you updated is not being used. You also didn't say which simulator version you're using.

    Probably best at this stage to go via customer support so that we can work more closely with you to take a look at your data.

    Regards,

    Andrew.

    • Post Points: 20
  • Fri, Aug 30 2013 11:17 AM

    • Alex Liao
    • Top 200 Contributor
    • Joined on Wed, May 22 2013
    • Posts 37
    • Points 575
    Re: How to set the model parameter STIMOD in simulation? Reply

    Andrew,

    I would like to try, but your teststimod.scs is not openable. Page lost if link is clicked.  I have copied your example code and made a teststimod.scs of my version and run spectre grep command in my directory xxx/tsmc65 which is the place I RUN "virtuoso &". 

     The results is "

    [tl4528@cadlams1 ~/tsmc65]$ spectre teststimod.scs | grep stimod

    Simulating `teststimod.scs' on cadlams1 at 3:44:55 PM, Fri Aug 30, 2013 (process id: 11102).

        ERROR (SFE-675): "teststimod.scs" 3: Illegal library definition found in netlist

        ERROR (SFE-874): "teststimod.scs" 22: Unexpected identifier "MOS". Expected end of library

        ERROR (SFE-874): "teststimod.scs" 108: Unexpected end of section "endsection".

        ERROR (SFE-874): "teststimod.scs" 113: Unexpected end of section "endsection".

        ERROR (SFE-868): "teststimod.scs" 119: Unable to open input file `my_model.scs'.

        ERROR (SFE-874): "teststimod.scs" 120: Unexpected keyword "include". Expected end of

    spectre terminated prematurely due to fatal error. 

    "

    My spectre version is  7.2.0.109 32bit -- 6 Dec 2009.

    Provided this is not enough to solve this problem, I would like to go for help at customer support.

     

    Regards.

    Alex 

    • Post Points: 5
  • Fri, Aug 30 2013 11:49 AM

    • Alex Liao
    • Top 200 Contributor
    • Joined on Wed, May 22 2013
    • Posts 37
    • Points 575
    Re: How to set the model parameter STIMOD in simulation? Reply

    Andrew,

    By the way, my friend who is familiar with Hspice told me in HSPICE® Reference Manual; Version D-2010.12, December 2010;

    MOSFET Models Level 54 BSIM4 Model

    If VERSION>=4.3, the STI model is not dependent on STIMOD=0 or 1. In this case, the STI model is applied to the model similar to the UCB STI model. 

    He further explained "if your simulator uses a BSIM VERSION>=4.3 , STIMOD will automatically be reset to 1 , s. p. 482/506 , i.e. UCB's STI model usage will be enforced.

     

    I don't know if this rule is applied in spectre. If so, anything I tried is in vain. BTW. I use tsmc65nm so the BSIM model is V4.5.

    Regards,

    Alex 

    • Post Points: 5
  • Fri, Aug 30 2013 1:25 PM

    • Alex Liao
    • Top 200 Contributor
    • Joined on Wed, May 22 2013
    • Posts 37
    • Points 575
    Re: How to set the model parameter STIMOD in simulation? Reply

    Andrew,

     I think I get the idea of your test code now. .

     Stimod =2 is set in a new model card. teststimod.scs is like input.scs in runSimilation(the input file). The first time I seeing the .scs made me relate it to a model file identically in .scs suffix. But it is a input file according to your opinion. You can see from my figure I have no results no warning and errors. If stimod is not able to be set, at least stimod = 0 should be printted out. Even using "spectre input.scs | grep stimod ", which is the default input file generated from ADE, stimod is not printted out.  Also if so, this proves it cannot be changed in BSIM4.5 version because using your command is exactly the same as runing simulation in ADE.

    But I still like to try your input file (teststimod.scs).

    Regards,

    Alex 

    • Post Points: 20
  • Fri, Aug 30 2013 1:59 PM

    Re: How to set the model parameter STIMOD in simulation? Reply

    OK, I tried replying just now, but my connection timed out. I'll try again and combine everything into one post.

    First of all, apologies for the missing file - I'd forgotten that the forum site only supports certain suffixes on files, and .scs is not one of them. However, the file is identical to the indented piece of text in this earlier post of mine in this thread. So cut and paste that text into a file called teststimod.scs and then run spectre on it. Run it first without the pipe and grep, and if it works by all means pipe the output into grep to spot the stimod output.

    Secondly, your attempt to run it failed because you had library and section statements in the file, and as I'd said before you can't run that directly with spectre. They only work if you include the file, using something like include "thefile.scs" section=blah.

    Thirdly, stimod=0 is using the Berkeley model, and stimod=1 or 2 means using the TSMC LOD model. So that's different from what your friend said. That said, 4.3 was so long ago, I think it's always worked this way (and stimod has only been supported in spectre since MMSIM61 (2005). Maybe it was an HSPICE-specific extension at some point and then they changed the behaviour to match the standard? That said, some of the changes in behaviour have been at the behest of certain foundries.

    The way that you've modified your file in your final post append is fine, but it won't output anything about stimod on the output because presumably you didn't add:

      models info what=models where=screen

    which is running an info analysis but directing the output to the screen, rather than to a rawfile (the binary database usually used in ADE). So it's not surprising it doesn't print anything.

    And all that ".scs" indicates is that the file is in spectre syntax. The default is that any file that spectre reads is in SPICE syntax, unless the file ends with a .scs suffix - and avoids you having to use the "simulator lang=spectre" construct to switch to spectre's more regular syntax (SPICE is quite archaic and rather irregular).

    Next, MMSIM72 is quite old - and the version you're using is almost 4 years old. I somehow doubt that's got anything to do with the issue - maybe you modified the models in the wrong section. TSMC models are quite complex as they have a complex nesting of includes. For example, you include in your netlist the section=tt, but within the definition of the file you're including, in the tt section, it will go on to include other sections (e.g. the mos section) from a named file. So did you update the includes in the tt section to include your modified teststimodModel.scs or is it including the original model file? If so, it will be completely missing your modifications because it goes on to include the original file. Be careful because there are lots of includes in TSMC models of various sections. This is the most likely explanation as to why you don't see the stimod parameter change having an effect, in my opinion.

    Finally, why are you modifying a foundry's carefully characterized models anyway?

    Regards,

    Andrew.

    • Post Points: 20
  • Fri, Aug 30 2013 3:39 PM

    • Alex Liao
    • Top 200 Contributor
    • Joined on Wed, May 22 2013
    • Posts 37
    • Points 575
    Re: How to set the model parameter STIMOD in simulation? Reply

    Hi Andrew, my server cashed so I can only try your suggestion next week.

    But for you last question, I can answer you now.

    To be frank with you, a standard model is enough for running simulation from the perspective of a 

    circuit designer. As a researcher, I care about the significance brought about by any changes of meaningful 

    parameters. For instance, the impact of STI, you can always simulate the impact of it in any circuit. But the 

    distance of cells in real layout largely contribute to STI impact on performance especially in sub-65nm 

    technology node. If people only consider running post-layout simulation iteratively to satisfy specifications, 

    that's still OK for using standard model. However, unlike digital system design, mixed-signal design requires 

    large design cycle. A bottleneck of a project involving large system may rely on the progress of analog part. 

    Those time are money. Those who want to integrate more layout information into schematic-level simulation is 

    making a big difference in reducing cycles of traditional design flow. We call it design optimization at pre-

    layout stage. Such group of people need to know how much influence STI can bring about. If one do not know the 

    performance gap between non-STI and STI-included simulation, how can he/she completes the optimization in 

    schematic-level. The sensitive analysis cannot be performed; no data comparison regarding the degree of 

    influence of layout-dependent factors (WPE, STI). On top of that, I cannot verify the effectiveness of my 

    manually calculated equation if I cannot switch off STI. If I can, I would switch off the impact of STI and 

    replace with my parameters to see if the performance resulting from my values matches with the one simulated 

    using standard model with STI-effect switch on. Through tuning my parameters I could reflect the STI impact in 

    early stage, intelligently repeat simualtion, give advises to layout designers, accomplish optimization. Nobody 

    approves those equations or optimization methodology if I cannot even reflect non-STI, the very ideal case in 

    my paper. This is why I want to modify the 'perfect' model. So I may not only have question on the performance 

    of a circuit, I may have questions on how those stuff interactive with each other reflecting a simulation in 

    Specter because now the Spectre is the only tool I can verify my thought. Know them, modify them, verify them and make a difference! 

     

    I sincerely appreciate your help provied to me as well as those friends from EDAboard forum! I am lack of knowlege as a beginer however it is all of you who are supporting me in the course of research. Thank you all.

     

    Best Regards,

    Alex 

    • Post Points: 5
  • Wed, Sep 4 2013 1:41 PM

    • Alex Liao
    • Top 200 Contributor
    • Joined on Wed, May 22 2013
    • Posts 37
    • Points 575
    Re: How to set the model parameter STIMOD in simulation? Reply

    Hi Andrew, I can change STIMOD now. The complex nets of include is the problem. Also stimod = 0 for UCB's model is documented in Spectre manual. But for Hspice, from the documentation" If VERSION>=4.3, the STI model is not dependent on STIMOD=0 or 1. In this case, the STI model is applied to the model similar to the UCB STI model". From this citation, it shows first, the meaning for stimod between Spectre and Hspice is different. Second, even I can force it to be 0 in Hspice model using the way you taught me in Spectre, it still uses its default model. (The STI cannot be switched off in this case)

    //   **********************************************

    //   *             TSMC SPICE MODEL               *

    //   **********************************************

    //     PROCESS :  65nm Mixed Signal RF SALICIDE Low-K IMD (1.0/2.5/over-drive 3.3V) (CRN65GPLUS) 

    //     MODEL   :  BSIM4 ( V4.5 )

    //     DOC. NO.:  T-N65-CM-SP-018  

    //     VERSION :  V1.0

    //     DATE    :  Nov. 22, 2007

    //     SPECTRE VERSION : 6.0.2.247 

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     *  **********************************************

    *  *             TSMC SPICE MODEL               *

    *  **********************************************

    *    PROCESS :  65nm Mixed Signal RF SALICIDE Low-K IMD (1.0/2.5/over-drive 3.3V) (CRN65GPLUS) 

    *    MODEL   :  BSIM4 ( V4.5 ) 

    *    DOC. NO.:  T-N65-CM-SP-018   

    *    VERSION :  V1.0

    *    DATE    :  Nov. 22, 2007

    *    HSPICE VERSION : H2006.03 or 2007.03-SP1 later

     

    Regards,

    Alex.

    • Post Points: 5
Page 1 of 1 (12 items)
Sort Posts:
Started by Alex Liao at 22 Aug 2013 05:27 PM. Topic has 11 replies.