gdsfactory / skywater130

skywater 130nm pdk
https://gdsfactory.github.io/skywater130/
MIT License
25 stars 12 forks source link

DEMO: Inverter schematic-driven-layout using gplugins + possible SPICE simulations #86

Open daquintero opened 4 months ago

daquintero commented 4 months ago

Just thought to make this issue to break down the tasks and get my head around the latest updates:

We have the skywater PDK currently, and want to integrate a more standard schematic-to-layout flow using gdsfactory

Would the goal be to export a SPICE netlist from a given schematic-capture tool eg. and then performing the layout accordingly using the gdsfactory layout generator?

Caveats to consider:

Requirements:

So we would need to generate the first set of spice desciptions, convert to yaml, and then integrate the layout flow. I assume the idea of using "jupyter notebooks, QUCs and XSchem" would be to automate this generation.

The tasks then become:

So the place to start would be explore the current schematic representation or design flow as currently implemented? Make sure the names match, or a interface interconnection is explicit, in order to then make sure that the sky130nm PCells can be related to the schematic description. Test the SPICE conversion accordingly, make sure the layout can be fundamentally generated using this PDK and go from there.

Existing resources in this direction:

Thoughts:

daquintero commented 1 month ago

I believe the ideal interim solution in relation to https://github.com/efabless/sky130_klayout_pdk would be to have the fixed as a submodule and gdsfactory recursing though them to get the cell declarations. Ultimately, this is an application repository that builds onto the existing pdks. As such, and given that most users are using volare etc to install the PDKs, I'm not sure this is the most straightforward strategy on including the gdscells onto the package. WHat we can do, rather than pip installing possibly, would be to include the source PDK repositories and simply add the gdswrapper functionality on top of that. However, this comes at a packaging complexity problem.

daquintero commented 1 month ago

Hey @joamatab just to keep you posted: I've managed to fix things to get schematic-driven-layout from the sky130nm PDK using the gplugins schematic editor. However, there's a serious dependency hell I had to sort out, and when I've got it reproducible enough in the sky130nm repo, I'll migrate the examples there which I'm currently working on between multiple repos atm.

Think I have a plan to automate going from hdl21 models to the yaml too. The next few weeks I'll be broadly working on the stuff for the conference fyi. The next step after that is going from an xschem SPICE declaration into some python construct using vlsir, but it's a bit more involved. I'm trying to avoid writing a spice parser as there are so many variations to reconstruct the parameters.

Still some polishing work required on vis: image

image