Is it possible to use the NCSU Freepdks with FOSS ...
# analog-design
k
Is it possible to use the NCSU Freepdks with FOSS tools like Xschem? I was looking for a Free PDK with around 40nm channel length for an academic project, it was the only one I could find.
t
Sure, it's possible. Xschem has the benefit that it is pretty much all ASCII-text-based, so you can usually take any symbol set from any foundry and just change the device names to match the simulation device model names, and it will work. Likewise, klayout is largely process-agnostic but getting anything like DRC rules and connectivity rules would take some work. I'm not aware of any FreePDK45 setups for klayout, but there might be. Magic has a FreePDK45 setup in qflow (https://github.com/RTimothyEdwards/qflow) (see
tech/gscl45nm
).
k
Since I only want the SPICE level files as of now, Would the models from FreePDK45/ncsu_basekit/models/hspice/tran_models work fine? From what I understand about the PDK:
ff
,
nom
and
ss
are the model variants as per various corners (fast fast, nominal and slow slow respectively). Would it work if I use these with the built-in ngspice symbols ,using the
device_model
parameter for the symbols, in xschem ? My apologies for asking so many questions, since I have never used a proper PDK or proprietary tools like Cadence before.
t
Yes, and there are some top-level SPICE files that include all the models in the
tran_models
directory. There are some differences between hspice and ngspice syntax, but generally they are compatible.
s
@Koustubh If you have some spice netlists that use this pdk It is easier to set up a library of xschem symbols for that pdk. By looking at instance lines in the netlist I get the syntax and list of necessary parameters, and adjust symbols accordingly (for example taking an existing xschem symbol library like sky130 or gf180mcu as a template).
@Koustubh I did a quick dc simulation of the
nmos_vth
and it ran out of the box. Just used the process agnostic
devices/nmos4.sym
and model copied into the instance
device_model
attribute. The test schematic has all symbols embedded (
embed=true
on all instances)so it has no dependencies. For more serious simulations do not use the
device_model
attribute, use some `.include`s to read the needed model files.
👍 1