OpenLane icon indicating copy to clipboard operation
OpenLane copied to clipboard

Review commands affecting SDC files

Open donn opened this issue 2 years ago • 3 comments

Description

Some commands ran by the flow may alter the contents of generated SDC files, for example:

  • unset_dont_touch may interfere with configurations set by users' SDC files. Since we unset all the variables irrespective of their original don't touch state, this may overwrite one of them.

Proposal

We need to decide on all of:

  • Whether the original SDC file should be read or not. The SDC file should still be written after every step (useful for debugging, etc.)
    • While if the SDC file changing at all could be indicative of issues, the reality is working around issues with tools is far from an unorthodox practice where OpenLane is concerned.
  • Whether we care about resizer set_dont_touch/unset_dont_touch aliasing set_dont_touch in the SDC file.
    • The reality is, the values for these two are controlled by a variable anyway (https://github.com/The-OpenROAD-Project/OpenLane/issues/1904#issuecomment-1657092842), meaning that if a user puts set_dont_touch in both the SDC file and the variable, there is a case to be made that it is the user's responsibility, but on the other hand, that is totally something a user would do then go insane.

donn avatar Jul 18 '23 11:07 donn

We only call unset_dont_touch on variables defined in RSZ_DONT_TOUCH_RX and RSZ_DONT_TOUCH.

kareefardi avatar Jul 30 '23 09:07 kareefardi

@donn what is the action here?

kareefardi avatar Dec 24 '23 17:12 kareefardi

We should, when we're in set_dont_touch, check if a net/instance is already marked as "don't touch" and only unset it in unset_dont_touch if it wasn't already set.

This should also be propagated to OL2

donn avatar Dec 25 '23 12:12 donn