I've done a few basic boards and I've decided to try my hand at a basic Raspberry Pi Compute Module board. From the Compute Module Datasheet/Design Guide:

The USB port (Pins USB DP and USB DM) must be routed as 90 ohm differential PCB traces

Similar notes exist for other devices but USB is the one I'm most interested in. I understand how routing a matched impedance differential pair works but I've never encountered the need for a specific resistance value for the traces. So my question is...

Considering there is a relatively short distance between the pin and the USB transceiver chip, how do I design for a specific resistance? Is it acceptable to add a resistor in line with the PCB trace to tune this, or must it be done in copper? Is the impedance value supposed to be derived solely by adjusting the trace width/length?


If you bought 50 metres of coax labelled 50 ohm and got your trusty meter out, you would never measure anything other than a couple of ohms or an open circuit. That might make you think what the 50 ohm is all about.

Well, imagine that instead of 50 metres you had an infinite length of coax and you then measured the resistance between inner and shield - now you would measure 50 ohms.

You can't transport voltage down a cable without inevitably transporting current and, 50 ohm coax (or 90 ohm differential PCB traces) have an impedance defined by geometry and the material properties.

So, what happens when you put 1 volt dc on a piece of 50 ohm coax - you get 20 mA flowing and if that piece of coax isn't infinitely long, at some point in time the voltage and current will reach the end of the cable. If the end of the cable is terminated in 50 ohms then voltage, current and resistance are in balance BUT, if the terminator is not 50 ohms (say it's open circuit), then you get a problem and that problem is a reflection.

What gets reflected is the net-power that cannot be absorbed by the terminator so, an open circuit (or a short circuit) reflects the full 20 mW back to the sending end and, if the sending end is a pure voltage source, there is nowhere to dissipate that power and that excess power (still 20 mW) gets reflected back down the cable towards the far end again. Again and again. Eventually it dies out due to ohmic losses in the cable.

It's a problem and it's the reason why data signals need to be sent down wires / cables / traces that are properly terminated.

Considering there is a relatively short distance between the pin and the USB transceiver chip, how do I design for a specific resistance?

Well, a relatively short distance to you might be a marathon to someone else especially if the frequencies of the signals involved start to have a wavelength that is in the same realm as the "distance" you mention. The usual rule of thumb for digital transmissions is that you should ensure that the length is no greater than one-tenth the wavelength of the most relevant signal and, for digital stuff this might be (say) the 7th harmonic of the fastest data.

So, if your data rate is (say) 86 Mbps, then flat-out this is a square wave of 43 MHz and the 7th harmonic is 300 MHz and this has a wavelength of 1 metre.

Actually, when transmitted along traces or coax, the speed is about 70% that of light so the wavelength is a bit shorter at 70 cm.

Using the one-tenth rule means that you don't need to worry about making the impedances of your traces 90 ohms differential if the run is below 7 cm. Yes you will get reflections but these won't significantly hurt your bit-error-rate.


It's referring to impedance, not resistance! An inductor and capacitor impedance is measured in ohms at for a certain frequency.

There's a ton of reading you can do on things like transmission line theory, or become an electrical engineer...

OR! Just understand that the trace geometry on your pcb matters for the signal integrity. They're telling you that you need to make your trace have the right geometry so that it's good for a 90 Ohm differential pair. Here's a diff pair calculator:


I change the trace width and seperation to 7 mil and 7 mil, and got a 90 Ohm diff pair. Make sure you know how thick your dialectric is (talk to you fab house for a stack-up) and then you can calculate your own dialectric.

If you want more of the theory, let me know and I'll see if I can help...

  • \$\begingroup\$ Thank you, that makes a little more sense to me as I couldn't figure out how to make the traces a specific resistance. I'm a software engineer by training and took some EE classes in college but don't remember too much. I'm going to read your link a little closer and come back to mark as an answer if it clears it up. \$\endgroup\$ – Ron Beyer Jan 26 '17 at 4:34

Not the answer you're looking for? Browse other questions tagged or ask your own question.