Skip to content

Add SG13G2 130nm PDK support#53

Draft
trabdelbasset wants to merge 3 commits intoopenecos-projects:mainfrom
trabdelbasset:main
Draft

Add SG13G2 130nm PDK support#53
trabdelbasset wants to merge 3 commits intoopenecos-projects:mainfrom
trabdelbasset:main

Conversation

@trabdelbasset
Copy link
Copy Markdown

Changes

pdk.py — add PDK_SG13G2() with cell names and file paths from
the ihp-sg13g2 config. PDK root can be passed directly or set
via env var.

parameter.py — add SG13G2_PARAMETERS_TEMPLATE with track pitches
from sg13g2_tech.lef and placement settings from the ihp-sg13g2
platform config.

ecc_service.py — allow sg13g2 as a valid PDK name in set_pdk_root.

@Emin017 Emin017 added the enhancement New feature or request label Apr 17, 2026
Copy link
Copy Markdown
Collaborator

@Emin017 Emin017 left a comment

Choose a reason for hiding this comment

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

Thank you for your contribution! Could you add some tests for the newly introduced PDK functionality to ensure that the new PDK works correctly?

@trabdelbasset trabdelbasset marked this pull request as draft April 17, 2026 20:46
@trabdelbasset
Copy link
Copy Markdown
Author

Thank you for your contribution! Could you add some tests for the newly introduced PDK functionality to ensure that the new PDK works correctly?

I've added some tests for the SG13G2 PDK (path resolution, parameter isolation, and workspace integration).

I also want to suggest a more convenient approach for adding external pdks, rather than hardcoding external PDK parameters into pdk.py and parameter.py which could get difficult to maintain as we add more PDKs, I've refactored the architecture in dev so that external PDKs are dynamically loaded from an ecc_pdk.json file located at the PDK's root directory (--pdk-root). The internal ics55 PDK remains hardcoded as the default.

I've also updated the CLI to support this:

--pdk sg13g2 --pdk-root /path/to/ihp-sg13g2

what you think of this approach?

@Emin017
Copy link
Copy Markdown
Collaborator

Emin017 commented Apr 20, 2026

I also want to suggest a more convenient approach for adding external pdks, rather than hardcoding external PDK parameters into pdk.py and parameter.py which could get difficult to maintain as we add more PDKs, I've refactored the architecture in dev so that external PDKs are dynamically loaded from an ecc_pdk.json file located at the PDK's root directory (--pdk-root). The internal ics55 PDK remains hardcoded as the default.

We may indeed need support for multiple PDKs, but we haven’t yet figured out the best way to integrate and support them, as this would increase the overall complexity of the software.

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

Successfully merging this pull request may close these issues.

2 participants