element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Autodesk EAGLE
  • Products
  • More
Autodesk EAGLE
EAGLE User Support (English) USB routing problems : D+/- length issues
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Autodesk EAGLE to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 30 replies
  • Answers 2 answers
  • Subscribers 181 subscribers
  • Views 2619 views
  • Users 0 members are here
  • length
  • d-
  • autorouter
  • usb
  • parallelism
  • d+
Related

USB routing problems : D+/- length issues

Former Member
Former Member over 14 years ago

Hello everyone

 

I'm a user of Eagle for 2 years now, and i'm trying to make USB with an Overo and a dsPIC.

The thing is that I had read somewhere (http://www.usb.org/developers/docs/hs_usb_pdg_r1_0.pdf) that the signals D+ and D- must have the same length (they talk about non parallelism page 10 figure 5)

 

But here is the point : how you do that on Eagle , to force 2 wire to have the same length (or being parallel all the way), in autorouter mode of course but even in manual mode.

 

Thanks for the help .

 

Best Regards

  • Sign in to reply
  • Cancel
Parents
  • Former Member
    0 Former Member over 14 years ago

    Vincent Vittori schrieb:

     

    I'm a user of Eagle for 2 years now, and i'm trying to make USB with

    an Overo and a dsPIC. The thing is that I had read somewhere

    (http://www.usb.org/developers/docs/hs_usb_pdg_r1_0.pdf) that the

    signals D+ and D- must have the same length (they talk about non

    parallelism page 10 figure 5)

     

    But here is the point : how you do that on Eagle , to force 2 wire to

    have the same length (or being parallel all the way), in autorouter

    mode of course but even in manual mode.

     

    First of all, I would never use the autorouter for this. (I don't use it

    at all... but here it's essential.)

     

    Then, simply (manually) route your tracks as parallel as possible. You

    can check their length with an ULP and correct them if necessary.

     

    In EAGLE, there is no way to /force/ an equally long differential pair

    during routing, neither manually nor by autorouter. Maybe V6 will add

    something new here, but I don't know.

     

    Tilmann

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • kcadsoft
    0 kcadsoft over 14 years ago in reply to Former Member

    On 09/23/11 08:08, Tilmann Reh wrote:

    ...

    In EAGLE, there is no way to /force/ an equally long differential pair

    during routing, neither manually nor by autorouter. Maybe V6 will add

    something new here, but I don't know.

     

    In V6 the (manual) ROUTE command will treat signals that have the

    same net class and the same name (one ending with '+' and the other

    with '-') as "differential pairs". When picking up one airwire of such

    a pair, both signals will be routed in parallel, keeping the distance

    as defined in the net class.

     

    This can't guarantee the same length for both signals, so there

    will also be a new command that generates "meanders" to compensate

    for length differences, or to create a fixed total length of a

    differential pair.

     

    Klaus Schmidinger

    --

    _______________________________________________________________

     

    Klaus Schmidinger                       Phone: +49-8635-6989-10

    CadSoft Computer GmbH                   Fax:   +49-8635-6989-40

    Pleidolfweg 15                          Email:   kls@cadsoft.de

    D-84568 Pleiskirchen, Germany           URL:     www.cadsoft.de

    _______________________________________________________________

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • Former Member
    0 Former Member over 14 years ago in reply to Former Member

    (for some reason my phone nntp reader doesnt quote some msgs)

    I think a simple external list of complementary(diff) or grouped(buses)

    netnames would handle this issue nicely. It does not have to be tied to any

    objects.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • kcadsoft
    0 kcadsoft over 14 years ago in reply to Former Member

    On 23.09.2011 16:31, Olin Lathrop wrote:

    Klaus Schmidinger wrote on Fri, 23 September 2011 03:46

    >> In V6 the (manual) ROUTE command will treat signals that have the

    >> same net class and the same name (one ending with '+' and the other

    >> with '-') as "differential pairs". When picking up one airwire of such

    >> a pair, both signals will be routed in parallel, keeping the distance

    >> as defined in the net class.

    >

    It's good that you are adding the capbility to keep traces together, but

    this should not be driven from the net names.  Automatic features like that

    may seem like they are saving time, but in the long run always cause

    trouble.  If two signals are to be routed together, I want to tell Eagle

    that explicitly and never have it think it knows somehow on its own.  For

    example, I have some existing designs with signal names D+ and D-, but I

    don't necessarily want them routed together.

     

    Within the existing Eagle framework, it's probably best if this were a

    property of net classes.  When this property is set, then all signals in

    the class will be routed together.  It's up to me to explicitly put such

    signals in their own net class and then enable the property.  Please,

    nothing automatic.

     

    That would mean you need one net class for each differential pair.

    Not very practical.

     

    There has to be some way of identifying which two signals form

    a differential pair, and that's going to be via the signal names.

    We can discuss which way this is done, so if '+' and '-' appear

    inappropriate, we could use "_P" and "_N".

     

    Klaus Schmidinger

    --

    _______________________________________________________________

     

    Klaus Schmidinger                       Phone: +49-8635-6989-10

    CadSoft Computer GmbH                   Fax:   +49-8635-6989-40

    Pleidolfweg 15                          Email:   kls@cadsoft.de

    D-84568 Pleiskirchen, Germany           URL:     www.cadsoft.de

    _______________________________________________________________

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • kcadsoft
    0 kcadsoft over 14 years ago in reply to Former Member

    On 23.09.2011 15:47, Morten Leikvoll wrote:

    "Klaus Schmidinger"<Klaus.Schmidinger@cadsoft.de>  wrote in message

    news:j5hdh5$va6$1@cheetah.cadsoft.de...

    >> In V6 the (manual) ROUTE command will treat signals that have the

    >> same net class and the same name (one ending with '+' and the other

    >> with '-') as "differential pairs". When picking up one airwire of such

    >> a pair, both signals will be routed in parallel, keeping the distance

    >> as defined in the net class.

     

    You should be a bit careful about using the + and - signs. It works as long

    as you dont export netfiles to other tools, but + and - in names are often a

    source of confusion and problems. As an example, we export netnames

    connected to FPGA's and feed them into the pin assignment files. That tool

    will not allow + and - and simply replacing it with something else is a

    potential source of conflict.

     

    We could just as well use something more exotic, like "_P" and "_N".

     

    Klaus Schmidinger

    --

    _______________________________________________________________

     

    Klaus Schmidinger                       Phone: +49-8635-6989-10

    CadSoft Computer GmbH                   Fax:   +49-8635-6989-40

    Pleidolfweg 15                          Email:   kls@cadsoft.de

    D-84568 Pleiskirchen, Germany           URL:     www.cadsoft.de

    _______________________________________________________________

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 14 years ago in reply to kcadsoft

    Klaus Schmidinger wrote:

     

     

    There has to be some way of identifying which two signals form

    a differential pair, and that's going to be via the signal names.

    We can discuss which way this is done, so if '+' and '-' appear

    inappropriate, we could use "_P" and "_N".

     

     

    As the feature is only for manual routing I would favour a 'gather' command

    in which you specify the pair/pairs

    This could work a number of ways but something like an alias list. You would

    store the signal name pairs in this list and whenever you start to route a

    signal the list is consulted to determine if another signal must be routed.

    Using this method, signal names are irrelevant and negate the need for + -

    _P _N

     

    This list of pairings would need to be stored in the board file

     

    Warren

     

    --

    Viewed / responded via the newsgroup at

    news.cadsoft.de

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 14 years ago in reply to kcadsoft

    Klaus Schmidinger wrote on Fri, 23 September 2011 12:24

    That would mean you need one net class for each differential pair.  Not

    very practical.

     

    Why?  Does the existance of a new class have a high cost?  Is there some

    reason not to make lots of them?  Besides, how many differential pairs do

    you envision needing?  Currently I use maybe 4 or 5 net classes at most.

    There seem to be a lot more than I need already.

     

    And what about whole busses that should be routed together?

    --

    Web access to CadSoft support forums at www.eaglecentral.ca.  Where the CadSoft EAGLE community meets.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • kcadsoft
    0 kcadsoft over 14 years ago in reply to Former Member

    On 24.09.2011 00:42, Olin Lathrop wrote:

    Klaus Schmidinger wrote on Fri, 23 September 2011 12:24

    >> That would mean you need one net class for each differential pair.  Not

    >> very practical.

     

    Why?  Does the existance of a new class have a high cost?  Is there some

    reason not to make lots of them?

     

    Net classes have a parameter that defines the minimum distance

    between either two of them, which results in a (triangular)

    matrix. That matrix would become rather bulky with a large

    number of net classes.

     

    Besides, how many differential pairs do

    you envision needing?  Currently I use maybe 4 or 5 net classes at most.

    There seem to be a lot more than I need already.

     

    I don't know how many differential pairs any future layout

    might need. But if we made it so that each and every such pair

    would need its very own net class, that would be the wrong way

    to go.

     

    And what about whole busses that should be routed together?

     

    The differential pair feature we are currently implementing is

    only about two signals being routed in parallel.

     

    Klaus Schmidinger

    --

    _______________________________________________________________

     

    Klaus Schmidinger                       Phone: +49-8635-6989-10

    CadSoft Computer GmbH                   Fax:   +49-8635-6989-40

    Pleidolfweg 15                          Email:   kls@cadsoft.de

    D-84568 Pleiskirchen, Germany           URL:     www.cadsoft.de

    _______________________________________________________________

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • kcadsoft
    0 kcadsoft over 14 years ago in reply to Former Member

    On 23.09.2011 21:27, Warren Brayshaw wrote:

    Klaus Schmidinger wrote:

     

    >>

    >> There has to be some way of identifying which two signals form

    >> a differential pair, and that's going to be via the signal names.

    >> We can discuss which way this is done, so if '+' and '-' appear

    >> inappropriate, we could use "_P" and "_N".

    >>

    >

    As the feature is only for manual routing I would favour a 'gather' command

    in which you specify the pair/pairs

    This could work a number of ways but something like an alias list. You would

    store the signal name pairs in this list and whenever you start to route a

    signal the list is consulted to determine if another signal must be routed.

    Using this method, signal names are irrelevant and negate the need for + -

    _P _N

     

    This list of pairings would need to be stored in the board file

     

    I don't like this.

    The fact that two signals are paired has to be a property of these

    two signals, and the easiest and most straight forward way to

    do it is through their names, since each signal must have a way

    of knowing its "companion".

     

    It would be the simplest method to just use a certain naming convention,

    like '+'/'-' or "_P"/"_N", but if you're afraid this might clash with

    existing projects, we could add a flag to each signal that makes it

    "part of a differential pair". However, this still would mean that the two

    signals forming the differential pair would have to follow a naming

    convention in order to be identified as a pair.

    I'd like to avoid this flag, though, because it makes things unnecessarily

    complex.

     

    Klaus Schmidinger

    --

    _______________________________________________________________

     

    Klaus Schmidinger                       Phone: +49-8635-6989-10

    CadSoft Computer GmbH                   Fax:   +49-8635-6989-40

    Pleidolfweg 15                          Email:   kls@cadsoft.de

    D-84568 Pleiskirchen, Germany           URL:     www.cadsoft.de

    _______________________________________________________________

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Johann.Glaser@gmx.at
    0 Johann.Glaser@gmx.at over 14 years ago in reply to kcadsoft

    Hi!

     

    Am Freitag, den 23.09.2011, 18:24 +0200 schrieb Klaus Schmidinger:

    On 23.09.2011 15:47, Morten Leikvoll wrote:

    "Klaus Schmidinger"<Klaus.Schmidinger@cadsoft.de>  wrote in message

    news:j5hdh5$va6$1@cheetah.cadsoft.de...

    >> In V6 the (manual) ROUTE command will treat signals that have the

    >> same net class and the same name (one ending with '+' and the other

    >> with '-') as "differential pairs". When picking up one airwire of such

    >> a pair, both signals will be routed in parallel, keeping the distance

    >> as defined in the net class.

     

    You should be a bit careful about using the + and - signs. It works as long

    as you dont export netfiles to other tools, but + and - in names are often a

    source of confusion and problems. As an example, we export netnames

    connected to FPGA's and feed them into the pin assignment files. That tool

    will not allow + and - and simply replacing it with something else is a

    potential source of conflict.

     

    We could just as well use something more exotic, like "_P" and "_N".

     

    I second the thoughts on the '+' and '-' chars in names.

     

    As you have written, you don't like to add another kind of a setting to

    specify which signals belong together, we might only have the naming.

     

    What do you think of making the naming configurable? The default could

    be:

    - '-' / '+'

    - '_n' / '_p'

    (both, but only within its little groups). But this should be possible

    to change with a dialog or "set" command. If somebody wants signals with

    that name ending, but not have them routed together, just remove the

    setting for that schematic/board. If somebody wants special name endings

    for differential pairs, e.g. '_PLUS' and '_MINUS', he simply sets it

    accordingly.

     

    So it would be nice to have zero to "a few" pair name ends to be setup.

     

    Thanks

      Hansi

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • KE5FX
    0 KE5FX over 14 years ago in reply to Johann.Glaser@gmx.at

    Would it be reasonable to make this a bus property, rather than a property of net classes or of individual signals?  As long as you allow nets to be part of more than one logical bus, it's not a big hardship to require users to associate a bus with signals that need to be routed for minimal timing skew.

     

    Using bus notation would permit groups of more than two signals to be routed for equal length, which IMHO is required for this feature to be of any real use.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 14 years ago in reply to kcadsoft

    Klaus Schmidinger wrote on Sat, 24 September 2011 05:04

    Net classes have a parameter that defines the minimum distance

    between either two of them, which results in a (triangular)

    matrix. That matrix would become rather bulky with a large

    number of net classes.

     

    I see, it's a squared problem.  I agree, net classes isn't how to define

    this then.

     

    --

    Web access to CadSoft support forums at www.eaglecentral.ca.  Where the CadSoft EAGLE community meets.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • Former Member
    0 Former Member over 14 years ago in reply to kcadsoft

    Klaus Schmidinger wrote on Sat, 24 September 2011 05:04

    Net classes have a parameter that defines the minimum distance

    between either two of them, which results in a (triangular)

    matrix. That matrix would become rather bulky with a large

    number of net classes.

     

    I see, it's a squared problem.  I agree, net classes isn't how to define

    this then.

     

    --

    Web access to CadSoft support forums at www.eaglecentral.ca.  Where the CadSoft EAGLE community meets.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube