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

🚧 Automatic compilation of raw efabless PDKs into a gdsfactory-compatible PDK #92

Merged
merged 12 commits into from
May 29, 2024

Conversation

daquintero
Copy link
Contributor

Related to gdsfactory/gplugins#390, and inspired by the ehtos of making this gdsfactory library mapped to the updated raw efabless pdks https://github.com/efabless/skywater-pdk-libs-sky130_fd_pr, #67

I think the ideal interim solution in relation to having an updated gdsfacotry-efabless PDK eg https://github.com/efabless/skywater-pdk-libs-sky130_fd_pr 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.

Thought to open the draft PR since it's starting to work per the basic example I'm working on, and in case there's any feedback before I start consolidating the files and structure.

Will rebase when I cleanup the commits and code.

@daquintero daquintero marked this pull request as ready for review May 22, 2024 17:10
Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pull request #92 has too many files changed.

We can only review pull requests with up to 300 changed files, and this pull request has 1295.

@daquintero
Copy link
Contributor Author

@joamatab ready for review I think, however I am not sure how you want to manage the component setting updates for those tests to pass with the new structure. Lmk to update accordingly. I suspect in the pyproject.toml the submodule dependencies will have to be added to we can upload this to pypi, but since you're the package manager keen to see what you think before implementing that?

@daquintero daquintero changed the title 🚧 Automatic compilation of raw efabless PDKs into gdsfactory 🚧 Automatic compilation of raw efabless PDKs into a gdsfactory-compatible PDK May 22, 2024
Copy link
Contributor

@joamatab joamatab left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! thank you Dario!

@daquintero
Copy link
Contributor Author

Sounds good, then I'll keep on this direction! I'll update the package build to make sure it can still upload to pypi and get the tests to pass and then I believe it'll be ready to merge - and add other functionality on another PR.

Also, if you want someone else to more constantly manage this repo happy to be a repo collaborator and on top of maintaining it - maybe let's see how much more functionality I'll add here too.

@daquintero
Copy link
Contributor Author

daquintero commented May 23, 2024

Hi @joamatab , good news 🎉, I think it is ready for at least a minor release. I have fixed the build issues, and pip installed the built-package locally successfully, tests are passing on the actions, and seems to be working pretty slickly locally.

I don't think there's another sky130nm package that can get installed so easily and completely by pip, so quite exciting to make this more accessible especially using gdsfactory. Further upgrades to come 🚀 with more spice integration.

EDIT: ok possible issues when uploading this to pypi since it contains large binaries. This will be an issue with this approach, really. Hmm, thinking of alternative solutions. I guess we could ask them to increase the size limit. The build size is big but relatively small compared to the AI ones (and this one has a lot of value in accessible microelectronics)

-rw------- 1 daquintero daquintero 196M may 23 13:36 sky130-0.11.1-py3-none-any.whl
-rw-rw-r-- 1 daquintero daquintero 180M may 23 13:35 sky130-0.11.1.tar.gz

pypa/packaging-problems#86

The alternative is having this package upload to conda instead which have 1Gb limits? I'm inclining towards this option. It's a bit like jaxlib host their own binaries etc.

@joamatab
Copy link
Contributor

amazing job! thank you Dario, lets merge and try to release to see if this works

@joamatab joamatab merged commit 8be6b64 into gdsfactory:main May 29, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants