Don't touch / don't route options
Closed this issue · 1 comments
hammer/hammer/par/innovus/__init__.py
Line 467 in 0bbd2b5
For preplaced pins in macros, this line currently lets Innovus still route the signal to the edge. This is not desired, e.g. if the macro pin is in the middle on a high layer and we want to leave it there.
The fix should be some combination of set_dont_touch
and set_db <nets> .skip_routing true
Note to self: after additional investigation, also doing this is incorrect:
hammer/hammer/par/innovus/__init__.py
Line 403 in 0bbd2b5
Without -insts
, it gets any pins on all BLOCK, PAD, and AREAIO macros that have pins matching that name wildcard. Similarly, if the top-level pin that the user defined as preplaced doesn't match exactly the pin name of the macro's pin, the promotion will not work.
Possible solution: query the hpins that are connected to the desired top-level pin, and input that to set_promoted_macro_pin
. Then, investigate if we still need set_dont_touch
and .skip_routing true
.