# How to use TSMC 0.35um CMOS Spice Model file to create different transistor sizes?

Status
Not open for further replies.

#### iampaul

##### Newbie
1.)How do I modify the transistor size and multplier? Can I just add L=<value> W=<value> M=<value>?
2.) How do I know what range of L and W, I can use for a certain model? I'm not sure if the range is determined by LMIN, LMAX, WMIN and WMAX?

The link to the model file is given here: https://www.utdallas.edu/~zhoud/EE 7v88/lect 2/mm0355v.l

I've read this version was publicized so there should be no issue. It uses level 49 hspice or level7 pspice bsimv3.1.

Thanks in advance. I know my question might sound stupid but I'm really desperate for help.

I'm trying to use nch.1
Code:
.MODEL nch.1             NMOS   (                    LMIN    = '1.207E-06-dxl'
+LMAX    = 2.01E-05        WMIN    = '1.183E-06-dxw' WMAX    = '1.9983E-5-dxw'
+LEVEL   = 49              TNOM    = 25              VERSION = 3.1
+ACM     = 12              LDIF    = 1.2E-07         HDIF    = hdifn
+RSH     = 82.2            RD      = 0               RS      = 0
+TOX     = toxn            XJ      = 1E-07           NCH     = 2.3579E+17
+LLN     = 1               LWN     = 1               WLN     = 1
+WWN     = 1               LINT    = 4E-08           LL      = 0
+LW      = 0               LWL     = 0               WINT    = 4E-08
+WL      = 0               WW      = 0               WWL     = 0
+MOBMOD  = 1               BINUNIT = 2               XL      = '3E-08+dxl'
+XW      = '1.5E-07+dxw'   DWG     = 0               DWB     = 0
+VTH0    = 'dvtn+0.536027' LVTH0   = 3.726466E-08    WVTH0   = -2.1316E-08
+PVTH0   = -2.460013E-14   K1      = 0.5246611       LK1     = -1.639613E-08
+WK1     = -5.031044E-08   PK1     = 2.211867E-14    K2      = 0.02709882
+LK2     = -6.586022E-09   WK2     = 5.785586E-09    PK2     = 3.435911E-15
+K3      = 0               DVT0    = 0               DVT1    = 0
+DVT2    = 0               DVT0W   = 0               DVT1W   = 0
+DVT2W   = 0               NLX     = 0               W0      = 0
+K3B     = 0               VSAT    = 95850.88        LVSAT   = 0.01310061
+WVSAT   = 0.0008223997    PVSAT   = -1.641506E-08   UA      = 3.196265E-11
+LUA     = -3.698079E-17   WUA     = -6.408507E-16   PUA     = 7.414642E-22
+UB      = 2.045354E-18    LUB     = 6.227287E-25    WUB     = 5.533028E-26
+PUB     = -1.805726E-30   UC      = 6.725734E-11    LUC     = 1.901776E-17
+WUC     = -3.996494E-17   PUC     = -3.876839E-23   RDSW    = 750
+PRWB    = 0               PRWG    = 0               WR      = 1
+U0      = 0.04660162      LU0     = 5.515446E-09    WU0     = -1.626703E-08
+PU0     = -4.134264E-15   A0      = 0.5017616       LA0     = 5.552729E-07
+WA0     = 6.615518E-07    PA0     = -5.219843E-13   KETA    = -0.008348037
+LKETA   = 2.403177E-08    WKETA   = 2.44925E-08     PKETA   = -3.102829E-14
+A1      = 0               A2      = 0.99            AGS     = 0.09736285
+LAGS    = 1.223815E-07    WAGS    = 1.607973E-07    PAGS    = -4.561918E-14
+B0      = 0               B1      = 0               VOFF    = -0.1432202
+LVOFF   = 3.766451E-08    WVOFF   = 2.755289E-08    PVOFF   = -1.641511E-14
+NFACTOR = 1.071551        LNFACTOR= -3.18949E-07    WNFACTOR= -3.166332E-07
+PNFACTOR= 4.241266E-13    CIT     = -7.628655E-05   LCIT    = 2.723331E-10
+WCIT    = 4.660042E-10    PCIT    = -4.03804E-16    CDSC    = 0
+CDSCB   = 0               CDSCD   = 0               ETA0    = 0.0002181413
+LETA0   = 4.893156E-10    WETA0   = -2.201543E-10   PETA0   = 3.379313E-16
+ETAB    = 1.65427E-05     LETAB   = -1.913991E-11   WETAB   = -2.072801E-11
+PETAB   = 2.39823E-17     DSUB    = 0               PCLM    = 0.1632291
+LPCLM   = 7.33948E-07     WPCLM   = 7.523777E-09    PPCLM   = -1.501737E-13
+PDIBLC1 = 1E-05           PDIBLC2 = -0.0001189527   LPDIBLC2= 3.04769E-09
+WPDIBLC2= 7.281391E-12    PPDIBLC2= -5.988417E-16   PDIBLCB = 0.138753
+DROUT   = 0               PSCBE1  = 4.710076E+08    LPSCBE1 = -47.68667
+WPSCBE1 = -72.788         PPSCBE1 = -1.725277E-05   PSCBE2  = 0.0001510638
+LPSCBE2 = -1.69574E-10    WPSCBE2 = -1.390941E-10   PPSCBE2 = 1.578688E-16
+PVAG    = 0               DELTA   = 0.01            ALPHA0  = 2.5E-06
+BETA0   = 20.7            KT1     = -0.2700492      LKT1    = -3.095004E-08
+WKT1    = 2.812907E-08    PKT1    = 7.879249E-14    KT2     = -0.04153765
+LKT2    = 2.524311E-08    WKT2    = 2.833375E-08    PKT2    = -1.608147E-14
+AT      = 2219.528        LAT     = -0.02686487     WAT     = -0.002395568
+PAT     = 2.596705E-08    UTE     = -2.065168       LUTE    = -4.132515E-07
+WUTE    = 4.668071E-07    PUTE    = 3.33133E-13     UA1     = 1.422613E-10
+LUA1    = -1.44336E-15    WUA1    = 9.693937E-16    PUA1    = 1.598886E-22
+UB1     = -2.172033E-18   LUB1    = 1.404262E-24    WUB1    = 5.546184E-26
+PUB1    = 6.856764E-31    UC1     = -5.716306E-11   LUC1    = 5.31648E-17
+WUC1    = -2.396283E-17   PUC1    = -2.142338E-24   KT1L    = 0
+PRT     = 24.11496        LPRT    = -1.086812E-05   WPRT    = -0.000500091
+PPRT    = 1.361775E-11
+CJ      = cjn            CJSW     = cjswn          CJSWG    = cjswgn
+MJ      = 0.3297355      MJSW     = 0.1303453      MJSWG    = 0.1303453
+PB      = 0.6944804      PBSW     = 0.6944804      PBSWG    = 0.6944804
+CTA     = 9.42521E-4     CTP      = 4.91382E-04    PTA      = 1.485657E-03
+PTP     = 1.485657E-03   CGDO     = cgon           CGSO     = cgon
+XTI     = 3              N        = 1              CAPMOD   = 0
+NQSMOD  = 0              XPART    = 1              CF       = 0
+CALCACM = 1              SFVTFLAG = 0              VFBFLAG  = 1
+NLEV    = 3              AF       = 0.85           KF       = 1.0E-24
+JS      = 6.27496E-05    JSW      = 5.79847E-10          )

#### BigBoss

All those SPICE variables are parametric so they are dependent on M,W and L values.
W and L values are not chosen arbitrarily, there are always constraints that are defined by process itself.

#### ThisIsNotSam

I doubt this is in the public domain, you should not put it here.

As to parameters and their ranges, it's not in the model. It's in the documentation. You have to read it. Some models take any garbage input you come up with and will produce an equally garbage result.

#### iampaul

##### Newbie
All those SPICE variables are parametric so they are dependent on M,W and L values.
W and L values are not chosen arbitrarily, there are always constraints that are defined by process itself.

So the SPICE variables are dependent on fixed Ws and Ls. So I can only use the transistor sizes they provided and it's up to me to come up with a design according to those values? Am I right? The problem is it has no L, W and M values, so I have to put it in myself, but I do not know the ranges...the model file has Lmax, Lmin, Wmin and Wmax so I assumed it was the size range for that particular model

#### iampaul

##### Newbie
I doubt this is in the public domain, you should not put it here.

As to parameters and their ranges, it's not in the model. It's in the documentation. You have to read it. Some models take any garbage input you come up with and will produce an equally garbage result.

I found it while googling from the website of University of Dallas, they post their homeworks online and I found it there. I'll probably have to contact the admins to edit the post. i can't see any edit button

As to parameters and their ranges, it's not in the model. It's in the documentation. You have to read it. Some models take any garbage input you come up with and will produce an equally garbage result.

okay, I understand now thanks. i don't have any documentation for it, but the model file has readme notes in it when opened in notepad, it says it is made for HSPICE...I read the HSPICE documentation and it says that lmax, lmin wmin and wmax mean the range of transistor size for which the model applies.

#### ThisIsNotSam

okay, I understand now thanks. i don't have any documentation for it, but the model file has readme notes in it when opened in notepad, it says it is made for HSPICE...I read the HSPICE documentation and it says that lmax, lmin wmin and wmax mean the range of transistor size for which the model applies.

You found a file you are not supposed to have access to and are asking us how to use it. Of course you will struggle. You have to read the PDK that this document refers to, not HSPICE documentation.

#### rmanalo

The thing with library files is that they are provided by the fab. The code you have there is called a "bin" which is a small part of the library file. I recall that for a 0.18 um TSMC library file has 12 bins (i.e. nch1-nch12), I don't know for the 0.35 um. The way they work is that when you give a particular transistor its W and L values (W is limited to 100 um and L limited to 20 um for TSMC), the HSPICE tool uses the parameters in that particular bin for that particular size.

You can either ask the fab for the model directly provided you sign a non-disclosure agreement. Or you could limit yourself with a Level 3 model.

Status
Not open for further replies.