kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #27832
Re: Differential pair DRC Errors
On 13.02.2017 17:26, Jon Evans wrote:
> I verified using Novak's test case on the Launchpad bug report. DRC
> error is generated if the distance between the tracks is exactly equal
> to the clearance.
> If you increase the spacing by the minimum distance recognized by the
> software's precision, the DRC passes.
> So, I think it's an issue of DRC specification -- The code currently
> requires that the clearance be *larger* than the minimum in the design
> rules.
> The diff pair router is setting the spacing to the minimum (exactly)
> which causes this bug.
>
> IMHO, the DRC code should be changed to "larger or equal to", but I am
> not sure if there is some subtle reason why it is implemented this way.
> If you tell KiCad that you can go down to 2mm clearance, you should be
> able to design something with *exactly* 2mm clearance :-)
Hi guys,
The issue is a bit more complex: it's a mix of DRC's floating point
inaccuracies as well as ill-defined (rounding-error-wise) fixed point
calculations in the 'gateway' computation part of the diff pair code.
I'll fix it when my time permits (certainly before v5.0).
Cheers,
Tom
>
> -Jon
>
> On Mon, Feb 13, 2017 at 11:15 AM, Andy Peters <devel@xxxxxxxxx
> <mailto:devel@xxxxxxxxx>> wrote:
>
>
> > On Feb 13, 2017, at 2:06 AM, Clemens Koller <cko@xxxxxxxxx <mailto:cko@xxxxxxxxx>> wrote:
> >
> > Hello!
> >
> > If the global minimum mandatory clearance/spacing (pitch) of a design (due to manufacturing limitations) is set (& activated) it should complain when some other settings are violating that.
>
> I purposely set the differential gap and trace width to something
> higher than the global minimum to see if that would have an effect,
> and it didn’t.
>
> > It could be assisting if the user gets a clear warning when the differential pair dimensions violate the design limitations and then give options to
> > a) reset the differential pair dimenstion to the global minumum, which is x.
> > b) create an exception for the differential pairs (the DRC need to handle that).
> > c) adjust the global design limitations accordingly.
> >
> > If b) or c) is selected, the Ok button should be labelled with "Ok, I really know what I do..." ;-).
>
> Differential routing in the GAL canvas with “shove” as the default
> routing mode should result in never having a DRC clearance failure.
> Let’s expand on that — all routing in that mode should never result
> in a DRC clearance (or width) fail. I remember the first time I
> tried differential routing and it wouldn’t let me draw any traces
> because the default diff width/gap violated my global minimums.
>
> So the question is: what is the real source of the error? Is it in
> the routing algorithm that allows the user to place differential
> traces that violate the design rules, or is it, as Jon Evans wrote,
> an error in the post-routing DRC code?
>
> -a
>
> > On 2017-02-13 03:15, Jon Evans wrote:
> >> I took a quick look at the DRC code, and it looks like it is
> doing an exclusive check on the minimum distances for clearance --
> i.e. it is requiring the clearance be greater than the minimum, not
> greater or equal.
> >> I'm not familiar enough with this part of the code to want to
> submit a patch for this now, but maybe someone who is familiar can
> comment on whether there is a reason that it is done this way.
> >>
> >> -Jon
> >>
> >> On Sun, Feb 12, 2017 at 8:08 PM, Andy Peters <devel@xxxxxxxxx
> <mailto:devel@xxxxxxxxx> <mailto:devel@xxxxxxxxx
> <mailto:devel@xxxxxxxxx>>> wrote:
> >>
> >>
> >>> On Feb 12, 2017, at 5:59 PM, Andy Peters <devel@xxxxxxxxx
> <mailto:devel@xxxxxxxxx> <mailto:devel@xxxxxxxxx
> <mailto:devel@xxxxxxxxx>>> wrote:
> >>>
> >>> I am using a nightly build from 26 January 2017 on a Mac.
> >>>
> >>> The design has a handful of differential pairs. I have set up
> design rules for most nets in the design as 1.6 mm trace width and
> 1.6 mm clearance. I created a net class for the pairs with those
> clearances and widths and made that the “diff pair width” and “diff
> pair gap” too.
> >>>
> >>> Then I set the “Differential Pair Dimensions” in the Dimensions
> menu to that same width and gap. Aside: why is this step necessary?
> Why doesn’t the differential routing use the net classes set up by
> default?
> >>>
> >>> I route the signals and run the DRC, and for every corner in the
> trace pairs, I get an ErrType(x): “Two Track Ends Too Close”
> complaint. Sometimes it’s ErrType(16), sometimes it’s ErrType(17),
> the rest ErrType(18), but they are for all corners. See the picture.
> This doesn’t make any sense.
> >>
> >> This was reported as a bug over a year ago:
> https://bugs.launchpad.net/kicad/+bug/1533551
> <https://bugs.launchpad.net/kicad/+bug/1533551>
> <https://bugs.launchpad.net/kicad/+bug/1533551
> <https://bugs.launchpad.net/kicad/+bug/1533551>>
> >> _______________________________________________
> >> Mailing list: https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> <https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>>
> >> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> >> Unsubscribe : https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> <https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>>
> >> More help : https://help.launchpad.net/ListHelp
> <https://help.launchpad.net/ListHelp>
> <https://help.launchpad.net/ListHelp
> <https://help.launchpad.net/ListHelp>>
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> Mailing list: https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> >> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> >> Unsubscribe : https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> >> More help : https://help.launchpad.net/ListHelp
> <https://help.launchpad.net/ListHelp>
> >>
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > Unsubscribe : https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> > More help : https://help.launchpad.net/ListHelp
> <https://help.launchpad.net/ListHelp>
>
> Andy Peters
> 5511 E Rosewood St
> Tucson, AZ 85711
> 520-907-2262 <tel:520-907-2262>
> devel@xxxxxxxxx <mailto:devel@xxxxxxxxx>
>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> Unsubscribe : https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> More help : https://help.launchpad.net/ListHelp
> <https://help.launchpad.net/ListHelp>
>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
Follow ups
References