Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support schematic driven layout #390

Open
4 tasks
joamatab opened this issue May 2, 2024 · 4 comments
Open
4 tasks

Support schematic driven layout #390

joamatab opened this issue May 2, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@joamatab
Copy link
Contributor

joamatab commented May 2, 2024

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

@joamatab joamatab added the enhancement New feature or request label May 2, 2024
@daquintero
Copy link

daquintero commented May 21, 2024

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.

@dan-fritchman
Copy link

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?

@daquintero
Copy link

daquintero commented May 27, 2024

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?

@daquintero
Copy link

So thanks Dan for the reference:

I just recently bumped into this:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants