The-OpenROAD-Project / OpenROAD-flow-scripts

OpenROAD's scripts implementing an RTL-to-GDS Flow. Documentation at https://openroad-flow-scripts.readthedocs.io/en/latest/
https://theopenroadproject.org/
Other
342 stars 290 forks source link

sky130hd should map def PIN to both metal and pin layer:datatype #1294

Open stefanottili opened 1 year ago

stefanottili commented 1 year ago

Subject

[Flow] for any util, flow Makefile, or flow script issues.

Describe the bug

results/sky130hd/gcd/base/6_1_merged.gds only contains pin geometry, it's missing the net geometry for def PIN's

klayout can do 1:n mappings using the '+' notation, klayout.lyt needs to be updated.

Expected Behavior

Write both pin and net layer:datatype geometry for def PIN's.

klayout can do 1:n mapping using the '+' notation

adding '+ met3.pin: 70/20'; to ./objects/sky130hd/gcd/base/klayout.lyt generates both 70/16 pin and 70/20 net geometry for met3 pins. This should be done for all pin layers.

25 layer_map(...;'met3.pin : 70/16'; '+ met3.pin : 70/20';

Alternatively one can use a lefdef.map file, the notation there would be met3 PIN 70 16 met3 PIN 70 20

Environment

Git commit: 90f22d15990f0bf8aa33751a712c37048ffa9006
kernel: Darwin 22.6.0
os: macOS 13.5
cmake version 3.27.1

To Reproduce

make DESIGN_CONFIG=./designs/sky130hd/gcd/config.mk

Relevant log output

No response

Screenshots

No response

Additional Context

No response

maliberty commented 1 year ago

@stefanottili do you want to make a PR with your suggestion?

stefanottili commented 1 year ago

I have no idea where ./objects/sky130hd/gcd/base/klayout.lyt is coming from. Is it "hand written" or generated by yet another script from some other source ?

Is 1:n mapping for def PIN needed for other technologies too or do they use separate layer:datatype ?

I'm assuming that isn't of any priority, because sky130's def2gds conversion is done by magic. Presumably specified with yet another tech file.

maliberty commented 1 year ago

From https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/0bce776a9e7e5cd7cb6151120e01a3c389fdbf05/flow/Makefile#L353

the upstream source is https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/master/flow/platforms/sky130hd/sky130hd.lyt which is manual

maliberty commented 1 year ago

Nobody is taping out from ORFS directly to skywater afaik - skywater users are using OL.