Hi all, I'm looking for some help. I am simulatin...
# gf180mcu
h
Hi all, I'm looking for some help. I am simulating a thimble band gap reference circuit, When I change the model from SKY130 to GF180, I get the following error. I didn't find a similar error in the logs, but does anyone know how to solve this problem?
Copy code
option SCALE: Scale is set to 1e-06 for instance and model parameters
Error on line:
  m.xm1.m0 xm1.d1 c vpwr vpwr xm1:pfet_10v0_asym_core w=    2.000000000000000e+01     l=    5.000000000000000e+00     dtemp=0 ad=    3.560000000000000e-05     pd=    4.000000356000000e+01     as=    9.600000000000000e-06     ps=    4.000000096000000e+01     nf=    1.000000000000000e+00     nrd=    0.000000000000000e+00     nrs=    0.000000000000000e+00     sa=    0.000000000000000e+00     sb=    0.000000000000000e+00     sd=    0.000000000000000e+00   
  unknown parameter (dtemp) 
    Simulation interrupted due to error!
Attached are the case using the sky130model (works fine) and the case using the GF180 model (error), respectively. The GF180 model seems to load fine, but I am getting an
unknown parameter (dtemp)
The
smbb000149.ngspice
that is being read is also attached in case you are interested.
t
The issue here is the unknown parameter "dtemp", which appears in the
smbb000149.ngspice
. I noticed that everywhere else in the netlists, "dtemp" is a parameter of a subcircuit. Only in this file, for the device you are using (pfet_10v0_asym_core), "dtemp" is passed as a parameter to an "M" (MOSFET) device. This strikes me as an error and needs to be brought to the attention of @Amro Tork. Suggested solution: Remove "dtemp=0" from line 468 of smbb000149.ngspice.
h
I don't know why, but when I modified
l=5 w=20
to
l=5E-6 w=20E-6
, the
unknown parameter (dtemp)
error disappeared and the error "`could not find a valid modelname`" appeared instead. To recap,
Copy code
*XM1 A C VPWR VPWR pfet_10v0_asym l=5E-6 w=20E-6
XM1 A C VPWR VPWR pfet_10v0_asym l=5 w=20
when above conditions, the following error
Copy code
option SCALE: Scale is set to 1e-06 for instance and model parameters
Error on line:
  m.xm1.m0 xm1.d1 c vpwr vpwr xm1:pfet_10v0_asym_core w=    2.000000000000000e+01     l=    5.000000000000000e+00     dtemp=0 ad=    3.560000000000000e-05     pd=    4.000000356000000e+01     as=    9.600000000000000e-06     ps=    4.000000096000000e+01     nf=    1.000000000000000e+00     nrd=    0.000000000000000e+00     nrs=    0.000000000000000e+00     sa=    0.000000000000000e+00     sb=    0.000000000000000e+00     sd=    0.000000000000000e+00   
  unknown parameter (dtemp) 
    Simulation interrupted due to error!
Copy code
XM1 A C VPWR VPWR pfet_10v0_asym l=5E-6 w=20E-6
*XM1 A C VPWR VPWR pfet_10v0_asym l=5 w=20
when above conditions, the following error
Copy code
option SCALE: Scale is set to 1e-06 for instance and model parameters
warning, can't find model 'pfet_10v0_asym_core' from line
    m.xm1.m0 xm1.d1 c vpwr vpwr pfet_10v0_asym_core w=    2.000000000000000e-05     l=    5.000000000000000e-06     dtemp=0 ad=    3.560000000000000e-11     pd=    4.356000000000000e-05     as=    9.599999999999999e-12     ps=    4.096000000000000e-05     nf=    1.000000000000000e+00     nrd=    0.000000000000000e+00     nrs=    0.000000000000000e+00     sa=    0.000000000000000e+00     sb=    0.000000000000000e+00     sd=    0.000000000000000e+00   
Error on line:
  m.xm1.m0 xm1.d1 c vpwr vpwr pfet_10v0_asym_core w=    2.000000000000000e-05     l=    5.000000000000000e-06     dtemp=0 ad=    3.560000000000000e-11     pd=    4.356000000000000e-05     as=    9.599999999999999e-12     ps=    4.096000000000000e-05     nf=    1.000000000000000e+00     nrd=    0.000000000000000e+00     nrs=    0.000000000000000e+00     sa=    0.000000000000000e+00     sb=    0.000000000000000e+00     sd=    0.000000000000000e+00   
could not find a valid modelname
    Simulation interrupted due to error!
is output.
Copy code
could not find a valid modelname
In reference to the previous threads, I predicted a problem with the values of L and W. I tried the following parameters, but could not solve the problem.
l=5E-6 w=20E-6
:Same value as other skywater pfet (sky130_fd_pr__pfet_g5v0d10v5) `l=6E-7 w=25E-6`:Default value of pfet_10v0_asym for gf180 Other, https://gf180mcu-pdk.readthedocs.io/en/latest/analog/model_parameters/HV/HV_2_3.html#recommened-instance-parameter-range I have tried various values within the min-max range of "min-max" but it did not work. I am not sure I understand the root cause of the error, but is there a solution? Right now I am replacing only one MOS with SKY130 -> GF180, but what I would like to do is to replace all models of this circuit with GF180 and simulate them.
f
🌍 1
h
@Farag Elsayed Thank you very much for your information. However, I tried to simulate again by cloning from the lipo you mentioned, but the error content is still the same.
.include "/home/hayato/globalfoundries-pdk-libs-gf180mcu_fd_pr/models/ngspice/design.ngspice"
.lib "/home/hayato/globalfoundries-pdk-libs-gf180mcu_fd_pr/models/ngspice/smbb000149.ngspice" typical
f
@hayato kimura Looks like the issue related to using both sky130 & GF180MCU in same netlist. I have tested same pfet you have used and it works without any issues, when I just tried to include sky130 model card, it fails and gives me same error you have. • If you try to uncomment line 6 --> Will fail
t
@hayato kimura: Be aware that there will be an order to errors, and ngspice will generate an error message on the first error it encounters and then quit. Be careful that you understand each error and why it occurs, eliminate that error, and assume that if another error occurs after that one is fixed, then the first error was "shadowing" the second error. But I agree with Farag that the first and most critical problem is that you are mixing technologies. It doesn't make any physical sense to do so, and the scalefactor built into the sky130 libraries is completely incompatible with the GF libraries. What is your target process? Are you designing a circuit for Sky130, or for GF180MCU?
c
Another possibility: you need to make sure you have the right
.spiceinit
under the
simulations
directory where your ngspice is running:
Copy code
set ngbehavior=hsa
set ng_nomodcheck
set num_threads=8
h
@Tim Edwards I am very sorry for the delay in responding to your question, as I have not been able to find time to do so. What I wanted to do was to design a circuit for the GF180MCU, but I referred to the one published in the Sky130 past shuttle project. After much trial and error, I suspect that the cause of the error is not the proper model (or model parameters). By changing the model from pfet_10v0_asym to pfet_06v0 and changing some parameters, the error was eliminated. Attached is a summary of the changes made and the results obtained. Further improvements are needed, but for now the problem is solved. Thank you for your help.