DRC violation with differential pair router

Bug #1533551 reported by Felix Vollmer
42
This bug affects 8 people
Affects Status Importance Assigned to Milestone
KiCad
Fix Released
Medium
Tomasz Wlostowski

Bug Description

I get a DRC violation if I use the differential pair router.

Steps to reproduce:
1. create schematic with differential pair signal
2. create netlist, etc. for the board
3. route differential pair with 0.024 inch track width and 0.005 inch gap and the design rules set to the same 0.024 in track width and 0.005 in clearance
4. run the drc

Result is a "two tracks ends too close" error. Not sure why.

I attached a demo board.

Application: kicad
Version: (2016-01-11 BZR 6449, Git 9362a6e)-product release build
wxWidgets: Version 3.0.2 (debug,wchar_t,compiler with C++ ABI 1009,GCC 5.2.0,wx containers,compatible with 2.8)
Platform: Windows 7 (build 7601, Service Pack 1), 64-bit edition, 64 bit, Little endian, wxMSW
Boost version: 1.57.0
libcurl version: 7.45.0 (with SSL - OpenSSL/1.0.2d)
         USE_WX_GRAPHICS_CONTEXT=OFF
         USE_WX_OVERLAY=OFF
         KICAD_SCRIPTING=ON
         KICAD_SCRIPTING_MODULES=ON
         KICAD_SCRIPTING_WXPYTHON=ON
         USE_FP_LIB_TABLE=HARD_CODED_ON
         BUILD_GITHUB_PLUGIN=ON

Tags: cern pns
Revision history for this message
Felix Vollmer (felixvollmer) wrote :
Changed in kicad:
assignee: nobody → Tomasz Wlostowski (twlostow)
Revision history for this message
Artsiom Shchatsko (cioma) wrote :

I experienced the same issue when I was doing a BGA fanout. I suspect the problem migth be with floating point dimensions comparison as when I decreased minimal clearance from 0.1 mm to 0.099 mm it went OK.

Revision history for this message
Eldar Khayrullin (eldar) wrote :

Same bug.

Application: kicad
Version: 4.1.0-alpha+201606160817+6936~45~ubuntu16.04.1-product, release build
Libraries: wxWidgets 3.0.2
           libcurl/7.47.0 OpenSSL/1.0.2g zlib/1.2.8 libidn/1.32 librtmp/2.3
Platform: Linux 4.4.0-24-generic x86_64, 64 bit, Little endian, wxGTK
- Build Info -
wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.58.0
Curl: 7.47.0
KiCad - Compiler: GCC 5.3.1 with C++ ABI 1009
        Settings: USE_WX_GRAPHICS_CONTEXT=OFF
                  USE_WX_OVERLAY=OFF
                  KICAD_SCRIPTING=ON
                  KICAD_SCRIPTING_MODULES=ON
                  KICAD_SCRIPTING_WXPYTHON=ON
                  USE_FP_LIB_TABLE=HARD_CODED_ON
                  BUILD_GITHUB_PLUGIN=ON

tags: added: cern pns
Revision history for this message
Novak Tamas (novak-7) wrote :

I've made some tests. Its seems a floating point rounding or simple > / >= (if handled as 0.000001mm integers) question.

I've made two parallel (horizontal) segments, track width 0.25 and clearance 0.2, so their distance might be 0.45mm or more.

The lines' coords are

  (segment (start 59 38.45) (end 43 38.45) (width 0.25) (layer F.Cu) (net 10))
  (segment (start 59 38) (end 43 38) (width 0.25) (layer F.Cu) (net 16))

DRC drops 3 "two tracks too close" error on them. (for horizontal and two connecting segments)

If I replace 38.45 with 38.450001 (manual text editing of .kicad_pcb file), DRC errors gone.
(4 occurances: both ends of horizontal, and two connecting line endings)

If it's a floating point problem, a 0.0000005 constant should be added at comparision to enable the exact values.

Revision history for this message
Novak Tamas (novak-7) wrote :

..addition: above tests were on brand new 7005 nightly

Revision history for this message
dedarken (liubenyuan) wrote :

I have the same problem. Confirmed, it might be related to the floating point comparison mechanism.

Revision history for this message
Andy Peters (devel-latke) wrote :

I have the same problem, seen on the 26 January 2017 nightly.

Jon Evans (craftyjon)
Changed in kicad:
status: New → Confirmed
Revision history for this message
Eldar Khayrullin (eldar) wrote :
Changed in kicad:
importance: Undecided → Medium
status: Confirmed → In Progress
Revision history for this message
KiCad Janitor (kicad-janitor) wrote :

Fixed in revision 0a55d8e0533929ca66036be51dd90bdbefe50f1b
https://git.launchpad.net/kicad/patch/?id=0a55d8e0533929ca66036be51dd90bdbefe50f1b

Changed in kicad:
status: In Progress → Fix Committed
Changed in kicad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.