gdsfactory / gplugins

gdsfactory plugins

Home Page:https://gdsfactory.github.io/gplugins/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support schematic driven layout

joamatab opened this issue · comments

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

Btw, related to gdsfactory/gdsfactory#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 gdsfactory/skywater130#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.

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

  • GdsFactory has a set of p-cell parameters per transistor, e.g. these
  • Hdl21 has its own params for those transistors, e.g. these
  • The goal is to have one drive the other (or have some 3rd thing which drives both)

I understand that right?

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:

  • Map sky130 spice model names to either gds instances/parametrized functions (such as between sky130_hdl21 and sky130 gdsfactory)
  • Verify the correct mapping between params
  • Test this out in the gplugins schematic/layout editor.

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?

So thanks Dan for the reference:

I just recently bumped into this: