ucb-bar / hammer

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

Meta behavior with defaults #367

Open dpgrubb13 opened 5 years ago

dpgrubb13 commented 5 years ago

The following error was thrown:

File "/tools/projects/dpgrubb/gps_physical_design/gps/hammer-template-tstech16/vlsi/hammer/src/hammer_config/config_src.py", line 273, in crossref_targets
    raise ValueError("crossref cannot be used with numbers and bools")
ValueError: crossref cannot be used with numbers and bools

It occurred because par.generate_power_straps_options.by_tracks.blockage_spacing was set to 2.0 directly, but the meta in defaults.yml was set to lazycrossref, so there was an issue when resolving. It was fixed by getting rid of the override and adding par.blockage_spacing directly. Possibly solve this by resetting the meta to null when the lazycrossref field is overridden by an input.

colinschmidt commented 5 years ago

I've run into this problem as well and used the workaround you mentioned.

edwardcwang commented 5 years ago

So it sounds like the base.yml had:

bar: 123.456
foo: bar
foo_meta: lazycrossref

and the project yml had:

foo: 2.0
jwright6323 commented 5 years ago

yes, something like that.