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!

Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here:

Join Adafruit on Mastodon

Adafruit is on Mastodon, join in!

Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

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

Join over 36,000+ makers on Adafruit’s Discord channels and be part of the community!

CircuitPython – The easiest way to program microcontrollers –

Maker Business — “Packaging” chips in the US

Wearables — Enclosures help fight body humidity in costumes

Electronics — Transformers: More than meets the eye!

Python for Microcontrollers — Python on Microcontrollers Newsletter: Silicon Labs introduces CircuitPython support, and more! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

Adafruit IoT Monthly — Guardian Robot, Weather-wise Umbrella Stand, and more!

Microsoft MakeCode — MakeCode Thank You!

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

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — #NewProds 7/19/23 Feat. Adafruit Matrix Portal S3 CircuitPython Powered Internet Display!

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


  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.