GitHub
04/01/2025, 1:30 PMMetal and Activ, so for most layers it doesn't make sense to have fill in them. And even if the fill algo can find some small nook to stuff a tiny fill shape in between two giant power rails, I don't think it's really desirable.
What I propose is to add nofill overlays on the IO cells for all fill layers except for:
• Metal2 : There is no big rail on this layer in the cells, so you actually want Metal2 fill
• GatPoly : If you have a Activ:nofill, there won't be any GatPoly fill anyway and there is a GFil.i DRC rule that'd be violated.
For the zone to be covered, I used the same area as prBoundary except for the Corner cell where I cut one of the corner.
Attached are :
• A gdstk script that does the modification suggested above.
• A GDS modified with the above script
ihp_io_nofill.py.gz
sg13g2_io_nofill.gds.gz
Also an example picture with Metal5 and the nofill area.
[Image](https://private-user-images.githubusercontent.com/129013/429046056-b9aee786-d827-433c-9bf1-687ea59eb54f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDM3NjY3MzEsIm5iZiI6MTc0Mzc2NjQzMSwicGF0aCI6Ii8xMjkwMTMvNDI5MDQ2MDU2LWI5YWVlNzg2LWQ4MjctNDMzYy05YmYxLTY4N2VhNTllYjU0Zi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwNDA0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDQwNFQxMTMzNTFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05NDhlZThhMjBhODU1N2VmODVlMzgyYTQwMjFkY2NjZjhmYTQyZDc2NWEyYTIxZjEwMjkwNWZhNDM2YzQwNDFkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.zYmDLsI0UChAtKZzkFq9S4ElhQELG7Qc1bXT3nOSGbU)
Of course the script and GDS are only for illustration, if the cells have some other source format / script to generate them, that's where the modification should be made, that's why I didn't open a PR but raised an issue.
IHP-GmbH/IHP-Open-PDKGitHub
04/04/2025, 11:33 AM