EE Bookshelf: Differential and Matched Length Traces

While I rarely work with signals much beyond 100MHz (SDRAM, etc., usually being the limit), it never hurts to try to improve your understanding of high speed layout.  By far the best book you can buy on the subject is High Speed Digital Design: A Handbook of Black Magic by Howard Johnson and Martin Graham.  That said, I found myself routing some USB signals that I wanted to have matched since the USB connection is high speed, and after routing the board I took a look around to see what advice I could find before signing off on that part of the board.  There are some excellent replies over on stackexchange to “How should I lay out timing matched traces“, with a valuable reminder to step back and consider the scale of your board, and that 1mm length on your PCB probably equals about 5 picoseconds in reality!.  Sometimes is helps to just zoom out, look at something at life size, and realize how small that little green board really is!  The other good source of information I found was  Board Design Guidelines for PCI Express Architecture.  Some very good tips on layout and real-world technical considerations that aren’t always cleared explained in more academic texts.  Any suggestions yourself?  Feel free to post them in the comments below.  I’m as happy to find new sources of expert advice as anyone!

As a sidenote, the new Meander tool in Eagle 6 is very useful for this.  You can use it to click on a trace and it will tell you the exact length, which makes it much easier than having to type ‘run length-freq-ri.ulp’ in Eagle 5 and try to find your trace in the other 300 listed by name!


Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7:30pm ET! To join, head over to YouTube and check out the show’s live chat and our Discord!

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Join over 38,000+ makers on Adafruit’s Discord channels and be part of the community! http://adafru.it/discord

CircuitPython – The easiest way to program microcontrollers – CircuitPython.org


New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — New Products 11/15/2024 Featuring Adafruit bq25185 USB / DC / Solar Charger with 3.3V Buck Board! (Video)

Python for Microcontrollers – Adafruit Daily — Python on Microcontrollers Newsletter: A New Arduino MicroPython Package Manager, How-Tos and Much More! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

EYE on NPI – Adafruit Daily — EYE on NPI Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

Adafruit IoT Monthly — The 2024 Recap Issue!

Maker Business – Adafruit Daily — Apple to build another chip at TSMC Arizona

Electronics – Adafruit Daily — SMT Tip – Stop moving around!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !


2 Comments

  1. What’s the best way to route USB traces when they need to cross each other to meet the connector. I recently sent out a design where I encountered this problem. Instead of using vias I routed one of the traces between the pads of the inline resistor of the other USB trace. How much problems do you think I’ll have running the bus at full speed?

  2. Nabil: I had the same problem this week and ended up routing them around the USB pins, but it really depends on the board. I usually try to keep things are short as possible with USB, though, with matched length, and no vias. The real world doesn’t always allow that, though, and honestly we can spend hours fretting over a via and then never think about the 2 metres of poor quality USB cable connecting the board to the PC. 🙂

Sorry, the comment form is closed at this time.