ID: | 3899 |
From: | ge...@igor2.repo.hu |
Date: | Thu, 2 Apr 2020 17:29:28 +0200 (CEST) |
Subject: | Re: [pcb-rnd] drc: Different part of board, different rules |
in-reply-to: | |
replies: | 3921 from Hannu Vuolasaho <vu...@msn.com> |
On Thu, 2 Apr 2020, Hannu Vuolasaho wrote: > This may be obvious... > > When routing tight pitched BGA part, the rules are different than in the power > supply part of the board. Also fabs give better yield when boards have looser > routing. > > Some mechanism is needed to tell which rule set to use on different parts of > board, be it mask, coordinate or telepathic link. This doesn't seem to be a rule, but as you said, a mechanism. I can offer three hypotetical solutions, examples tailored to your bga case: 1. net based This is not exactly what you described, but is somewhat close, and would also be useful in other cases: the required clearance is not a constant, but is an expression that somehow depends on which net a given object is in. Or in other words: "bigger clearnace is required on high voltage PSU nets than on signals" or in your bga case the fanout will affect a lot of signal nets that can have tighter rules while you keep the rest of the nets at normal rule. Bonus: this is trivial to implement with our existing stuff! 2. geometrical approach Create a new layer, let's call it drc zone. Draw polygons on this layer over the bga fanout regions and assign attributes to them, e.g. "zone=fanout". Then copy your normal clearance rule script originally developed for the whole board into two copies and disable the original rule. First copy, for the fanout: modify the clearance value in the check so it warns only for a lower value; wrap the rule in an interation over all polygons on the drc zone layer having the zone=fanout attrib, then add an extra && expression that allows finding cases only if the currently examined object overlaps with the drc zone poly. (In other words, this is an expensive way of saying the rule should discard anything not under the fanout poly; you better have only one poly like that, maybe with full poly flag and multiple islands!) Second copy, for the normal case: similar modifcations, but leave the normal clearance value and invert the && exression with the ! operator so it lets the rule run on anything outside of the zone=fanout region 3. solution 2, accelerated I recommend solution 1 only if I can work out how to make it run efficiently. In its raw form it'd do much more searches than needed, making this drc check very slow in big/complex boards. So if we choose this one, I will need to figure what kind of C code accelerations I should implement that doesn't take away from the flexibility (doesn't hardwire the whole thing in C) but speeds it up. What do you think? Regards, Igor2
Reply subtree:
3899 Re: [pcb-rnd] drc: Different part of board, different rules from ge...@igor2.repo.hu
3921 Re: [pcb-rnd] drc: Different part of board, different rules from Hannu Vuolasaho <vu...@msn.com>
3922 Re: [pcb-rnd] drc: Different part of board, different rules from ge...@igor2.repo.hu
3926 Re: [pcb-rnd] drc: Different part of board, different rules from ge...@igor2.repo.hu
3928 Re: [pcb-rnd] drc: Different part of board, different rules from Britton Kerin <br...@gmail.com>
3929 Re: [pcb-rnd] drc: Different part of board, different rules from ge...@igor2.repo.hu
4050 Re: [pcb-rnd] drc: Different part of board, different rules - from ge...@igor2.repo.hu