Wait we're no longer supposed to use open_pdks?
# gf180mcu
t
Wait we're no longer supposed to use open_pdks?
a
I think it’s better to use volare
l
I use gf180 open_pdks, and it's so small I include some of its files (magic rc and ngspice models only - 1.8 MB) in the git repository of my analog projects. Simulation is straightforward this way). If I knew how to install it automatically along with my git projects, I would use it.
a
For simulation models, please use Efabless version
l
I know it is a noob question, but is there a way to link the models directly to my git repository so I don't need to upload them with my project files?
a
You could use ‘git submodule add’ to add the above repo as a submodule to your project
l
Thanks!
a
Example code
Make sure to run submodule update to keep track of changes
l
By the way, has anybody simulated gf180 resistors? My simulations with their resistors aren't working.
a
We are responsible of the quality of the models with NGspice
Could you please send me details?
Cc @Farag Elsayed
@Luis Henrique Rodovalho ?
l
@Farag Elsayed
It should be a 1k Ohm per square resistor, but it is not.
a
It's 1.2K
Let me check the data from foundry.
@Luis Henrique Rodovalho Usually resistors has about 20% around the typical value. I understand that are running typical. That's what I'm trying if the foundry data shows 1.2K or 1K exactly.
l
But the simulation shows a 173 Ohm instead of 1.2k
a
@Luis Henrique Rodovalho I simulated the netlist that you sent me. And I just put the results in the sheet that I shared.
I made some minor updates here:
f
Copy code
* resistor testbench

* .param
* +  sw_stat_global = 0
* +  sw_stat_mismatch = 0
* .temp 27

* vr vr vss 0
* xr  vr vss vss ppolyf_u_1k r_width=1u r_length=1u m=1

* .control
*     dc vr 0 1 10m
*     plot -i(vr) 
* .endc

Vin top GND 1.0
XR1 top GND GND ppolyf_u_1k r_width=1.0u r_length=1.0u m=1

.temp 25

.control
op
let ires=-1*vin#branch
let res=1.0/ires
print res
.endc

** library calling

.include "design.ngspice"
.lib "sm141064.ngspice" res_typical

.GLOBAL GND
* .end
It's 1.2k
a
Copy code
* resistor testbench

.include "/home/atork/test/globalfoundries-pdk-libs-gf180mcu_fd_pr/models/ngspice/design.ngspice"
.lib "/home/atork/test/globalfoundries-pdk-libs-gf180mcu_fd_pr/models/ngspice/sm141064.ngspice" res_typical
.param
+  sw_stat_global = 0
+  sw_stat_mismatch = 0
.temp 27

vr rn vss 0
xr vss rn vss ppolyf_u_1k r_width=1u r_length=1u

.control
	dc vr 0 1 10m
        wrdata dc -i(vr)
.endc
l
So does it need a GND global to work?
a
@Luis Henrique Rodovalho BTW, sheet resistance is variable against L and W. Large L and W usually better results.
l
Maybe my models are outdated.
a
@Luis Henrique Rodovalho possibly please check the link that I shared and use the models that I shared above.
I keep it up to date.
f
It doesn't matter using
.GLOBAL GND
, you could remove it
a
@Luis Henrique Rodovalho I used your netlist. Check mine please.
@Luis Henrique Rodovalho Originally there was an issue with the resistor models and we resolved that more than 8 months back. But unfortunately, Google didn't get the updates so far. May be you are still using those wrong models.
@Luis Henrique Rodovalho If you have any issues with GF180MCU models, please don't hesitate to contact me.
FYI, I'm using ngspice 40 to simulate.
l
I didn't see any magic technology files. Do you plan to include them? Is Klayout able to extract GF180 netlists?
a
I don't support magic. But we support klayout. Klayout is fully qualified on all devices both for DRC and LVS.
Yes, you should be able to do that.
Even on a very large designs.
One sec
@Luis Henrique Rodovalho Please use this version for Klayout LVS and DRC
Everything in that repo has been reviewed very carefully.
l
Solved. It was my models. They were outdated.
a
For Simulation models, we are facing a few issues with few devices now, but it's work in progress: • CV characteristics for MOS devices • Diodes IV/CV (ngspice somehow doesn't seem to model breakdown correctly)
Please make sure to use keep updating your models from the repo above.
LVS and DRC are fully updated.
If you have any issues with models, I would advise opening an issue on the repo that I shared. Also, if you have any issues in DRC/LVS, please don't hesitate to open an issue on the repo above.
t
@Tom: This conversation kind of took off and left the question behind, but: volare is just a repository that contains a pre-compiled version of the PDK built by open_pdks. That saves the trouble (and considerable disk and memory overhead) of compiling it yourself. But it is the same thing. Also, volare is version-controlled, whereas open_pdks will just build to the latest versions of everything (unless you specify otherwise, which is a manual process). It is very much the same difference as between installing a software package and compiling the software from source.
t
Understood @Tim Edwards, thanks for the explanation