Mailing list archives : pcb-rnd

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