Open proppy opened 1 year ago
@proppy drc
command is very slow and it's not recommended for performance concerns.
@atorkmabrains interesting, the documentation here https://www.klayout.de/doc/about/drc_ref_layer.html#drc mention
improved performance in some applications
does that mean that our drc deck has applications are not covered by those improvement?
/fyi @klayoutmatthias @mithro
@proppy That was the recommendations from @klayoutmatthias to avoid the use of drc
command.
The drc function is not slow in general, but in this particular case it lacks an optimization (forced merging of inputs), which makes it slower. This is addressed by https://github.com/KLayout/klayout/issues/1195, but I did not have time yet to look into that problem. As of now, it is better to use the plain DRC functions ("space", "width", ...) when possible.
Matthias
@klayoutmatthias Thanks for chipping in!
@atorkmabrains I'd be in favor of keeping this open until there is progress and https://github.com/KLayout/klayout/issues/1195 and then consider switching to drc
.
BTW @proppy, @klayoutmatthias reviewed this rule deck and he was the one who suggested the removal of drc command.
Thanks @klayoutmatthias on your help back then. It would be nice to get your feedback again this time. BTW, we have integrated everything in efabless version.
@atorkmabrains Of course - you mean you want feedback on the current version?
@klayoutmatthias yes, please. Please check efabless version.
@klayoutmatthias Here is the link:
https://github.com/efabless/globalfoundries-pdk-libs-gf180mcu_fd_pv
@klayoutmatthias BTW, this time we have our DRC regression as CI. This way we could detect if the changes might have impact on the correctness of output.
There are currently 2 differents way used to test DRC assertions in the recent PRs:
.width
that evaluate a condition and returns a list of violating shape: the condition is expressed as the passing condition before.output
is called on the resulting shapes..with_length
that evaluate a condition and returns a list of matching shapes: the condition is inverted to express the failing condition before.output
is called on the resulting shapes.We should make sure we use matching semantic to ease readability and maintainance by either:
.without_length
so that the we always express passing condition.drc
method that always encode passing condition using an expression syntax.I think I'd personally favor (b) but maybe @klayoutmatthias or @mithro have strong opinions on this?