Feature Request: Support for nested ".lib" commands for Open-Source PDKs (GF180MCU)

Hi Mike and the QSPICE Team,

I would like to suggest adding support for nested .lib commands in QSPICE.

Why this is needed:

Currently, many modern IC model libraries rely heavily on nested structures where one .lib file calls another sub-library or section. A prominent example is the FOSS 180nm PDK provided by Google and GlobalFoundries (GF180MCU).

Benefits:

  1. Compatibility: Many open-source and commercial PDKs use this hierarchy to manage different process corners (TT, SS, FF) and device parameters.
  2. Workflow Efficiency: Without nested support, users are forced to manually flatten or modify the model files. This is time-consuming and prone to errors.
  3. Community Growth: Supporting these industry-standard formats would allow the community to leverage open-source PDKs for circuit research and design more easily within the QSPICE ecosystem.

Having this feature would make QSPICE a much more powerful tool for those of us working with modern semiconductor process kits.

Thank you for your continuous work on improving this amazing simulator!

Here are my test result,


PDK model file on Github

Best regards,

Does the .libpath command have the capability to resolve this issue? When you have multiple .lib files, the problem appears to be that Qspice is not searching for those .lib files in subdirectory. Through my verification, libraries in the root or sub-folders of .libpath can all be searched.

You can also use the Symbol & IP Browser to add a directory. By adding a directory there, Qspice will automatically include a .libpath with that directory in every schematic during its netlist generation.

This is Qspice HELP about .libpath

1 Like

My Bad, I should use .lib 'sm141064.ngspice' fets_mm instead of nmos_6p0_t

I have already tried placing the .qsch file and all model files in the same directory, but the issue persists and is specifically related to the nested .lib command.
I am providing my environment/files below to help reproduce this behavior.


Mexample.qsch (3.5 KB)
Mexample_lib.qsch (3.5 KB)
sm141064.lib (17.3 KB)
sm141064_lib.lib (18.1 KB)

due to I can not upload *.ngspice, please download the model file from Github
GF180MCU PDK model for ngspice

I’m looking for the simplest implementation, specifically using the syntax:
.lib "sm141064.ngspice" typical

Thanks for the feedback.

Oh, I completely misunderstood the situation from the very beginning. The forum is primarily for crowd support, and to address your request, it is best to directly contact Mike Engelhardt via email, which can be found in Qspice > Help > About Qspice.

I assume that Mike will respond to this request as Qspice is aimed at IC design (just a guess, not 100% sure). Since Mike is no longer active in the forum, emailing him is the best way for this request to receive a response. Hopefully, we will see Qspice supporting this in a future update.

1 Like

Mike updated QSPICE. We’re good to use .lib "sm141064.ngspice" typical for simulations now.

Thanks a lot.

1 Like