gdsfactory / gplugins

gdsfactory plugins
https://gdsfactory.github.io/gplugins/
MIT License
32 stars 28 forks source link

Support schematic driven layout #390

Open joamatab opened 2 months ago

joamatab commented 2 months ago

Add examples and tests for schematic driven layout to support going from schematic to layout using different schematic capture tools

This would provide SAX simulation as well for RF, @flaport @tvt173

daquintero commented 1 month ago

Btw, related to https://github.com/gdsfactory/gdsfactory/issues/2755, on the hdl21 and gdsfactory integration:

Have been looking into it. Worth mentioning, currently the hdl21-sky130 package has the latest sky130nm PDK primitives, which doesn't map to the current layout components available.

As per https://github.com/gdsfactory/skywater130/issues/63, we need to add the latest PDK layout instances into the gdsfactory sky130nm package in order to be able to link the layout and hdl21 schematic instances inherently. Currently we only have the digital cells in the gdsfactory sky130nm PDK, and I've tested this existing PR and it doesn't quite solve the problem as it depends on the klayout raw instantiation rather than one that is accessible inherently from gdsfactory .

I will try importing the gds directly, but don't know the limitations of the layout parametrization after inputting the params from hdl21 which might be tricky.

dan-fritchman commented 1 month ago

So @daquintero - correct me if I'm misunderstanding here:

I understand that right?

daquintero commented 1 month ago

Hi Dan! Yeah, I guess the idea is to ultimately pseudo-impelment the way the layout editor is generated from a schematic like in Virtuoso as you suggest. So making a schematic and then generating the corresponding layout instances that are edited via gdsfactory. The method required would translate between the hdl21 params implementation and the instance/params schematic-editor implementation within gdsfactory.

As far as I can tell so far there are a few steps to achieve this:

A next stage could be finding a way to map between xschem and hdl21/vlsir protos. Maybe you already know if this is possible? Like creating a sky130nm schematic in xschem and exporting that to a vlsir representation/data that we could interact with in vlsir/hdl21 (say specifically for actual module layout rather than testbenches) -> gdsfactory. I don't really know how that would work exactly as have been focused on the specific SPICE hdl21/vlsir-gdsfactory interface first.

What do you think? How could something like this be better implemented since you've written most of these tools?

daquintero commented 1 week ago

So thanks Dan for the reference:

I just recently bumped into this: