Hi, I'm currently working with the spice models fr...
# analog-design
g
Hi, I'm currently working with the spice models from the git repository : globalfoundries-pdk-libs-gf180mcu_fd_pr/models/... and I see there are "ngspice" and "xyce" model files which are slightly edited from each other. Does anyone know if the original model files from GF are accessible anywhere?
🌍 1
t
The original models are in Hspice format (also Spectre) and are considered proprietary. However, the "ngspice" files are only lightly edited, since there are relatively few differences between Hspice and ngspice formats (Spectre is a whole other bundle of issues). @Amro Tork did the conversion and can perhaps provide some details of the conversion, but I think there is not much beyond the device name changes imposed on us by Google (I also did a conversion but Amro's is the one that is currently in the PDK).
a
@Greg Warwar I don't believe we could release the HSPICE version at least from our end.
But I could try any other question you might have.
g
Super! That makes sense, and these files should work fine. Thanks very much
t
Actually I can just run a quick diff on the two and tell you what else was changed: Hspice uses tref, ngspice uses tnom. (Some of the) monte carlo parameters have been commented out, although I'm not sure why. Some parameter names were changed, like
r_length
and
r_width
for resistors, which is news to me because I still have the original parameter names being extracted from magic.
a
@Tim Edwards all the changes to make sure that models will function properly inside ngspice.
Many failures happened because the equations for MC for example.
ngspice
doesn't parse it correctly. We ended up changing it.
t
@Amro Tork: But I used to use
r_length
and
r_width
parameters without any issue in ngspice. Right now it's broken because nobody told me it was changed.
@Amro Tork: I guess capacitor
c_length
and
c_width
was also changed?
a
@Tim Edwards Could you please create a ticket and we could discuss that further there?
t
a
Thanks @Tim Edwards I'll take a closer look and give you feedback why we did this.
t
I don't really care why as much as I care that it gets fixed in the magic tech file and that I have caught all the changes that were made.
a
That's great. Anything is required from my end then?
t
Just confirm that I've caught all the changes. But I just looked at the file again and realize that MiM caps still have parameters
c_length
and
c_width
. Why were resistor parameters changed but capacitor parameters not changed?
a
If I remember correctly, resistance parameters caused the problem with resistor simulation.
t
(@Greg Warwar: You opened a can of worms. Sorry for spilling all over your thread. I can move the unrelated conversation elsewhere if you like.)
g
@Tim Edwards @Amro Tork Thanks again for the model file information. I'm sure the model files will work fine. I saw something funny in my first simulation, like it was running MC because I was getting a slightly different answer each time I ran the sim, but I need to debug this further. Thanks again for the help and if I find any issues, I will let you know. thanks
a
@Greg Warwar It is
And we fixed this
MC was enabled by default
g
Haha, That's great! Now I'm feeling better 🙂! Thanks
a
@Tim Edwards Could you please update the files from: https://github.com/efabless/globalfoundries-pdk-libs-gf180mcu_fd_pr
?
@Greg Warwar To fix this you need to replace this file.
g
Ok, great! Thank you!
t
@Amro Tork: How recently updated? I ran an update on the repository just yesterday.
a
It was fixed in Jan
@Tim Edwards About why we removed r_length and r_width
in section 3.3.4
This miss up everything, we removed all unused parameters fundmentally.
we didn't do the same for Caps
because we didn't have the same problem.
It's only for resistors.
t
I still don't get why that's a problem. There's nothing in the manual that states why you would not be able to use the name
r_width
in an equation, as opposed to
rw
. It's just a parameter name passed to the subcircuit, and then passed to the resistor model. I used it without issue when I was simulating the power-on-reset circuit for Caravel.
a
It's not the name, it's just using an equation based resistor doesn't work properly with ngspice. We could keep the
r_width
but it won't affect the simulation as we can't use it in the equation anymore. That's why I removed it all together to make sure it's not confusing anyone to try to use it and find that it doesn't affect the simulation.