Skip to content

DiffPairCheck

Latest

Choose a tag to compare

@DvidMakesThings DvidMakesThings released this 11 Feb 16:05

DiffPairCheck.exe - Differential Pair Length Checker

DiffPairCheck.exe is a standalone Windows application designed to verify the length matching of differential pairs in high‑speed designs. It processes signal reports exported from Eagle (using the Eagle ULP "length") and checks that the lengths of paired signals meet the required tolerances for a given interface. The application groups signals based on strict naming conventions and allows users to assign interfaces to each pair, run detailed checks, and export a Markdown report of the results.

Naming Conventions

DiffPairCheck.exe relies on a strict naming convention to accurately group differential pairs. The signal names must follow the format.

  • Format:
    InterfaceName + _DiffPairName + ( _N or _P )

    For example:

    • ETH1_TX4_N / ETH1_TX4_P
      → These signals belong to the Ethernet interface labeled ETH1 and represent a differential pair (TX4).
    • ETH0_TX4_N / ETH0_TX4_P
      → These signals belong to a different Ethernet interface ETH0 and are treated as a separate group.

Following this naming convention ensures that signals from different connectors or interfaces (such as HDMI0 vs. HDMI1, ETH0 vs. ETH1, etc.) are grouped correctly and checked only against others in the same group.

Preparing Your Signal Report

Before using DiffPairCheck.exe, you must export the signal length list from your Eagle design:

  1. Export with Eagle ULP "length":
    Use the Eagle ULP named length to generate a text file containing the signal names and their lengths in millimeters.
  2. Save the File:
    Save the exported text file to a location of your choice.
  3. Import into DiffPairCheck.exe:
    When you launch DiffPairCheck.exe, use the Load Signal File button to browse and select your exported text file.

How to Use DiffPairCheck.exe

  1. Launch the Application:
    Double-click on DiffPairCheck.exe to start the program.

  2. Load a Signal File:

    • Click the Load Signal File button in the top-left section.
    • Navigate to the location of your exported Eagle signal report (the text file) and select it.
    • The filename will be displayed, confirming that the file has been loaded successfully.
  3. Review and Assign Interfaces:

    • The left pane lists the detected differential pairs. Each row shows the two channels (those ending with _N and _P) and includes a dropdown menu pre‑assigned with a recommended interface.
    • If necessary, adjust the interface assignment for any pair using the dropdown.
  4. Run the Check:

    • Click the Run Check button (displayed as a dark green button that becomes even darker on hover) located in the center of the button frame.
    • The application will:
      • Pair Check: Verify that the length difference between the two channels of each pair is within the specified pair tolerance.
      • Inter‑Pair Check: For groups with multiple pairs (e.g., all signals from a specific connector), it determines the longest and shortest average trace lengths and checks that their difference does not exceed the inter‑pair tolerance.
      • HDMI 1.4 Extra Check: Ensure that the TMDSCK (clock) pair’s average length is shorter than those of the data lane pairs.
    • The results are displayed in a table on the right pane, showing columns for Group, Pair, Diff (mm), Tolerance (mm), and Status (with PASS shown in green and FAIL in red).
  5. Save the Report:

    • Click the Save Report button (located to the right of the Run Check button).
    • In the save dialog, choose a destination and filename for your Markdown report.
    • The saved report will include a header with the input filename, timestamp, overall status (colored green for PASS or red for FAIL), and a neatly formatted table of results.

Example Report Format

Below is an example of the Markdown report generated by DiffPairCheck.exe:

Group Pair Diff (mm) Tolerance (mm) Status
Ethernet 1000BASE-T (ETH1) -----
ETH1_TX4_N / ETH1_TX4_P 0.471 ±0.127 FAIL
ETH1_TX3_N / ETH1_TX3_P 0.528 ±0.127 FAIL
ETH1_TX2_N / ETH1_TX2_P 0.581 ±0.127 FAIL
ETH1_TX1_N / ETH1_TX1_P 0.607 ±0.127 FAIL
Inter‑Pair 12.271 ±0.254 FAIL
HDMI 1.4 (HDMI0) -----
HDMI0_TDMSCK_N / HDMI0_TDMSCK_P 0.562 ±0.127 FAIL
HDMI0_TDMS0_N / HDMI0_TDMS0_P 0.485 ±0.127 FAIL
HDMI0_TDMS1_N / HDMI0_TDMS1_P 0.408 ±0.127 FAIL
HDMI0_TDMS2_N / HDMI0_TDMS2_P 0.508 ±0.127 FAIL
Inter‑Pair 9.342 ±0.508 FAIL
HDMI0_TDMSCK_N / HDMI0_TDMSCK_P (TMDSCK) 43.453 PASS

The report header also includes:

  • Input File: Name of the loaded signal report
  • Date/Time: When the report was generated
  • Overall Status: Displayed in large, colored text (green for PASS, red for FAIL)

Troubleshooting

  • File Loading Issues:
    Ensure your signal report is exported using the Eagle ULP "length" in the expected tab‑separated format with at least two columns (signal name and length in mm).

  • Incomplete Pairs:
    If you see “Incomplete pair” messages, verify that every differential pair has both an _N and a _P signal, and that the naming follows the correct convention.

  • Interface Assignment:
    Adjust the pre‑assigned interfaces using the dropdown menus if the default recommendations do not match your design.

License

This project is licensed under the GPL-3.0 License. See the LICENSE file for details.

Contact

For questions or feedback:

Enjoy using DiffPairCheck.exe to ensure your high‑speed designs meet the necessary differential pair matching requirements!