ucb-bar / hammer

Hammer: Highly Agile Masks Made Effortlessly from RTL
BSD 3-Clause "New" or "Revised" License
255 stars 59 forks source link

Move some fields out of the tech JSON into the yaml for DRC/LVS #440

Open jwright6323 opened 5 years ago

jwright6323 commented 5 years ago

I'm writing this down so I remember to think about it after tapeout, but I'm beginning to think some of the way the DRC/LVS stuff is done should be changed as I'm working on other related updates. Right now "Additional DRC/LVS text" lives in the tech json- I think it should be moved to the tech defaults.yml, which makes it easier to override. It also obviates the need for some of the "manual_add_drc_text" providing equivalent functionality to what exists with fewer keys, which is better, IMO.

edwardcwang commented 5 years ago

One thing to keep in mind is that the tech JSON is a universal API across all techs, whereas the settings defined in each tech's defaults.yml can be arbitrary. Just mentioning it so we can do it in a portable way across all technologies (e.g. not have one tech call it drctext and another drc_Text etc)

colinschmidt commented 5 years ago

We could also start enforcing "Config Types" such that we check/enforce that all "lvs.MYTOOL" dictionaries have some set of keys? We already have some of this explicitly encoded in python for things like version parsing, where all tools are expected to provide the same kind of key.

jwright6323 commented 5 years ago

It's also worth mentioning that the example here is vendor-specific, so it's also not a good fit in the tech JSON for that reason. We just happen to use the same DRC tool vendor for all of our techs so far.