Create a new model file under "$CDK_DIR/models/spectre/nom" such as "ami06_t99j.m".
In the first line of the file, type "simulator lang=spice".
From the Wafer Electrical Test Data report (for T99J), copy the SPICE model parameters and paste them to the end of the new model file.
SPICE model parameters consist of two models: NMOS and PMOS. For each model, which is identifiable by the ".MODEL" keyword, name the model accordingly to how it is used by the transistor cells in
virtuoso. For the NCSU CDK in AMI 0.6um process, the NMOS model is named "ami06N", and the PMOS model is named "ami06P". The model statement lines should like something like the following:
.MODEL ami06N NMOS ( ...
.MODEL ami06P PMOS ( ...
As an example, the SPICE model file is given below for the T99J run (note, I found this model to be faulty -- DO NOT USE!):
simulator lang=spice
.MODEL ami06N NMOS ( LEVEL = 49
+VERSION = 3.1 TNOM = 27 TOX = 1.42E-8
+XJ = 1.5E-7 NCH = 1.7E17 VTH0 = 0.6066706
+K1 = 0.8916583 K2 = -0.0984787 K3 = 23.6382023
+K3B = -8.4234075 W0 = 3.807398E-8 NLX = 1.509888E-9
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 0.7849492 DVT1 = 0.3994002 DVT2 = -0.5
+U0 = 452.2685957 UA = 1E-13 UB = 1.176277E-18
+UC = -5.73121E-14 VSAT = 1.841184E5 A0 = 0.5371856
+AGS = 0.0886407 B0 = 1.957761E-6 B1 = 5E-6
+KETA = -2.530193E-3 A1 = 7.230825E-5 A2 = 0.315185
+RDSW = 1.081837E3 PRWG = 0.112333 PRWB = -1.908309E-4
+WR = 1 WINT = 1.761404E-7 LINT = 9.06256E-8
+XL = 1E-7 XW = 0 DWG = -1.191345E-9
+DWB = 5.413496E-8 VOFF = -1.406284E-4 NFACTOR = 0.8085791
+CIT = 0 CDSC = 2.4E-4 CDSCD = 0
+CDSCB = 0 ETA0 = 1.449343E-3 ETAB = 1
+DSUB = 0.0129169 PCLM = 2.2363819 PDIBLC1 = 1.729314E-4
+PDIBLC2 = 1.682325E-3 PDIBLCB = -0.5 DROUT = 1.01633E-4
+PSCBE1 = 2.511791E9 PSCBE2 = 1E-3 PVAG = 0
+DELTA = 0.01 RSH = 84.4 MOBMOD = 1
+PRT = 0 UTE = -1.5 KT1 = -0.11
+KT1L = 0 KT2 = 0.022 UA1 = 4.31E-9
+UB1 = -7.61E-18 UC1 = -5.6E-11 AT = 3.3E4
+WL = 0 WLN = 1 WW = 0
+WWN = 1 WWL = 0 LL = 0
+LLN = 1 LW = 0 LWN = 1
+LWL = 0 CAPMOD = 2 XPART = 0.5
+CGDO = 1.82E-10 CGSO = 1.82E-10 CGBO = 1E-9
+CJ = 4.14902E-4 PB = 0.839007 MJ = 0.429248
+CJSW = 3.600151E-10 PBSW = 0.8 MJSW = 0.2047744
+CJSWG = 1.64E-10 PBSWG = 0.8 MJSWG = 0.2047744
+CF = 0 PVTH0 = -0.0632742 PRDSW = 203.232232
+PK2 = -0.07324 WKETA = 2.457772E-3 LKETA = -6.437462E-3 )
.MODEL ami06P PMOS ( LEVEL = 49
+VERSION = 3.1 TNOM = 27 TOX = 1.42E-8
+XJ = 1.5E-7 NCH = 1.7E17 VTH0 = -0.9152268
+K1 = 0.553472 K2 = 7.871921E-3 K3 = 6.2769786
+K3B = -0.4898254 W0 = 1.23924E-7 NLX = 1.141647E-7
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 0.9353874 DVT1 = 0.3671023 DVT2 = -0.1875761
+U0 = 201.3603195 UA = 2.408572E-9 UB = 1E-21
+UC = -1E-10 VSAT = 1.202516E5 A0 = 0.8828557
+AGS = 0.088966 B0 = 5.175071E-7 B1 = 0
+KETA = -4.865785E-3 A1 = 1.370912E-4 A2 = 0.4773832
+RDSW = 3E3 PRWG = -0.0281209 PRWB = -0.0479695
+WR = 1 WINT = 2.309781E-7 LINT = 1.226577E-7
+XL = 1E-7 XW = 0 DWG = -5.470108E-9
+DWB = -1.983267E-8 VOFF = -0.0625678 NFACTOR = 1.1137245
+CIT = 0 CDSC = 2.4E-4 CDSCD = 0
+CDSCB = 0 ETA0 = 0 ETAB = -0.2
+DSUB = 1 PCLM = 2.3939111 PDIBLC1 = 0.0494294
+PDIBLC2 = 3.663793E-3 PDIBLCB = -0.0364718 DROUT = 0.2462657
+PSCBE1 = 1E8 PSCBE2 = 3.359223E-9 PVAG = 0.0150055
+DELTA = 0.01 RSH = 105.9 MOBMOD = 1
+PRT = 0 UTE = -1.5 KT1 = -0.11
+KT1L = 0 KT2 = 0.022 UA1 = 4.31E-9
+UB1 = -7.61E-18 UC1 = -5.6E-11 AT = 3.3E4
+WL = 0 WLN = 1 WW = 0
+WWN = 1 WWL = 0 LL = 0
+LLN = 1 LW = 0 LWN = 1
+LWL = 0 CAPMOD = 2 XPART = 0.5
+CGDO = 2.3E-10 CGSO = 2.3E-10 CGBO = 1E-9
+CJ = 7.238228E-4 PB = 0.8735391 MJ = 0.4909204
+CJSW = 2.545206E-10 PBSW = 0.8 MJSW = 0.1987115
+CJSWG = 6.4E-11 PBSWG = 0.8 MJSWG = 0.1987115
+CF = 0 PVTH0 = 5.98016E-3 PRDSW = 14.8598424
+PK2 = 3.73981E-3 WKETA = 0.0104146 LKETA = -8.958097E-3 )
Notes:
1. The Spectre parser has two modes. By default, Spectre is configured to expect Spice netlists unless told otherwise. When it reads simulator lang=spectre , it switches off Spice compatibility.
2. To switch back to accepting Spice netlists, use simulator lang=spice .When Spectre includes one file from another using the include statement, it automatically switches to Spice mode at the beginning of the new file, and returns to the previously active mode when it finishes reading it. For this reason, all Spectre netlists must begin with a lang=spectre statement.