LEC_CHECK: default 0 for out of tree designs#3908
LEC_CHECK: default 0 for out of tree designs#3908oharboe wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
Conversation
```shell $ cd OpenROAD-flow-scripts/flow $ make print-ORFS_TEST_SUITE_DESIGN print-LEC_CHECK ORFS_TEST_SUITE_DESIGN: 1 LEC_CHECK: 1 $ make DESIGN_CONFIG=../config.mk print-ORFS_TEST_SUITE_DESIGN print-LEC_CHECK ORFS_TEST_SUITE_DESIGN: 0 LEC_CHECK: 0 ``` fixes The-OpenROAD-Project#3907 Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
| description: > | ||
| Perform a formal equivalence check between before and after netlists. | ||
| default: 1 | ||
| This is primarily an ORFS CI regression testing feature and is default 0 |
There was a problem hiding this comment.
I don't agree with this description. Anyone doing production work will likely want LEC checking. I can see not wanting to spend the time while prototyping.
The in-tree / out-of-tree distinction is a bit odd. I think it works for your particular use case but isn't that general. Perhaps it would be better to have an option project setting file you could put it there.
There was a problem hiding this comment.
I think there are two use-cases, or concerns, that should be clearly separated: development of ORFS/OpenROAD and usage of OpenROAD/ORFS.
For the usage use-case(where I'm not an OpenROAD developer, but a user), I think LEC should be default off for out of tree designs: minimum dependencies, fast lean, optional(for architectural exploration I don't care about correctness of throwaway results). I trust OpenROAD and only need LEC as a last crossing of t's and dotting's of i's. I don't want to bog down day to day CI wasted compute or extra dependencies.
For the OpenROAD/ORFS development use-case, I have no strong opinions, I think OpenROAD/ORFS developers are the best to judge and I think that they should be free to do so without worrying about the user-experience.
For the user's use-case, how about a more explicit invocation like make lec-floorplan/place/cts/grt/drt/final that checks previous stage against current stage?
make lec-final should probably do a LEC against drt as well as synthesis netlist following POLA.
I think the user use-case can be kicked down the road until we have more milage on LEC and we know that it works and is scalable for production, so this PR is good to go from that perspective.
$ cd OpenROAD-flow-scripts/flow $ make print-ORFS_TEST_SUITE_DESIGN print-LEC_CHECK ORFS_TEST_SUITE_DESIGN: 1 LEC_CHECK: 1 $ make DESIGN_CONFIG=../config.mk print-ORFS_TEST_SUITE_DESIGN print-LEC_CHECK ORFS_TEST_SUITE_DESIGN: 0 LEC_CHECK: 0fixes #3907