This is an attempt to craft a good general question and answer for a topic that's been asked before, but only in specific situations.


Could you describe what I need to know, prior to laying out a PCB board for a differential signal pair with a specified "differential impedance"?

Differential pairs are used for various high speed serial buses, including USB, MIPI, RS-422, RS-485, PCI Express, DisplayPort, LVDS, HDMI and more.

What's the definition of "differential impedance"? On a PCB board, do I need to twist or alternate the wires, as is done for differential pairs in a cable? Is the impedance of each length matched trace half the "differential impedance", or is it more complicated that that? How close must length matching be, given the maximum signal frequency?

References that may be of help:

up vote 20 down vote accepted

I'll try to answer this briefly, but a great resource for this type of question is Eric Bogatin's Signal and Power Integrity -- Simpified.

You've listed and described several very high speed protocols that have signal edge rates in the hundreds of picosecond range. What this means is that even traces of just a couple of inches can be considered as electrically long, and that these transmission channels must be routed as transmission lines.

Put very, very briefly, presenting a transmission line with a known impedance to a high speed driver (serial transceiver on the input/output of a SerDes) allows the transmission of data cross that line without deletrious signal reflections that can interfere with successful communication. This can manifest as intersymbol interference (ISI), crosstalk, additional jitter rendering an UI (unit interval) unusable and many other effects. Recall that some of these protocols (like PCIe) are pushing in excess of 8GT/s over conventional copper on low-cost FR-4; in order to do this, designers must take care to do all they can to provide a high-quality channel for data transmission.

A given protocol (or specification) generally lists a desired characteristic impedance. As an example, Intel may request PCI Express traces for their Xeon platforms be routed as "100 ohm differential pairs". This means that they have qualified and designed their PCI Express transceivers to expect a 100 ohm characteristic impedance transmission line for data transfer. USB commonly requires 90 ohms, RS-422 can be 120 ohms, and Ethernet is 100 ohm. I'm not going to go into single-ended transmission line structures in this post, but as mentioned below in the comments, to an approximate first order, you could consider each 'half' of the structures below as half the pair impedance.

Now, to create the transmission line structure on a conventional FR-4 PCB (in order to keep this stuff affordable!), we have several options. For differential traces, we have several options. Let's say your traces are on the top or bottom layer -- option one is edge-coupled microstrip (the picture I have is 'coated', where solder-mask is above it. Technically, there's edge-coupled coated, and edge-coupled surface for top/bottom layer options -- for really high frequency RF work, even the presence of solder-mask can be an issue).

ECMS

Based on the distance to the return plane below it, the spacing between the two lines, and the width of each line, your PCB fab can deliver you a structure that presents the target impedance.

Now, let's say you're on an inner layer. The structure used here is generally edge-coupled embedded microstrip:

EC EMS

Similar to the first one, this one also factors in the distance to the nearest reference plane. A lot of designers favor burying their high-speed pairs on internal layers to benefit from the 'free' shielding of copper planes to reduce radiated emissions. Edge-coupled offset stripline is used when you have a signal layer sandwiched between two plane layers:

EC OS

To get these differential structures, you contact your PCB fabrication house and tell them the differential impedances you're looking for -- this is part of the PCB stack-up design process. The fabrication house runs the actual materials they use (which have differing Er values) for cores and pre-preg materials, and come back to you with a set of geometries to follow in your design tool, e.g. (not real numbers) "0.2mm thick traces with 0.15mm spacing on Layers 1 and 8 for 100 Ohm impedance +/- 10%". You then input these values into Altium, and it will intelligently make sure that when you route pairs you've called out as differential that they follow those geometries.

By design, when you fabricate your PCB with your shop and send them the stack-up that has been designed, those traces will result in the desired characteristic impedance. You should request an impedance coupon, which is generally a piece of your PCB from the outer portion of the array where a duplicate structure of the transmission line has been created, and a TDR (time-domain reflectometer) is used to provide you the actual impedance constructed. Typical tolerance is around 10%.

Length-matching does not affect the differential impedance and differs from protocol to protocol. There is intra-pair skew (P to N), and inter-pair/inter-lane skew (i.e. from PCIe Tx Lane 0 to 1) skew, where the latter is generally more tolerant of mismatch than the former. This is something you generally analyze near the end to add meandering or serpentine routing to get the members of the pair to meet the manufacturer specification. I use a script that dumps the raw net lengths to Excel, and then conditional formatting to let me know how I'm doing in meeting spec (redacted somewhat -- this is a board with a module that has some mis-match, and a carrier PCB that has mis-match):

Length-Matching

And here is an example of Altium set-up for 100 ohm differential pairs based on my vendor's recommendations:

100R differential routing

Here are some other tips I've picked up along the way that may help you out in no particular order:

  • Given a tolerance for mis-match from a manufacturer, start out by halving it if possible. In a case like PCI Express where you have a host PCB and a carrier PCB, this (sort of) splits the tolerance between the two.
  • When fabricating a board with differential impedances, use "D-Codes". Use the hundreths or thousandths digit in trace widths to differentiate between different impedances. For example, if 0.20mm was called out as the width for both 90 ohm and 100 ohm, I would make 90 ohm 0.201mm and 100 ohm 0.202mm, and add fabrication note explaining what I did. The CAM engineer can then easily pick out the pairs using his software and do what he needs.

So, before you start your next PCB project with protocols / requirements that imply differential trace routing:

  1. Identify all the different impedances to be controlled, and what layers they will be on (i.e., what are your signal layers).
  2. Contact your fabrication house with the above information and work with them to define a stack-up for your project and get the required geometries. Alternately, as stated in the comments below, with the appropriate material and other information, your EDA tools might be able to provide you with the required geometries.
  3. Set-up your CAD tool with the appropriate rules based on the numbers from step 2.
  4. Define net classes for the pairs and route away!
  5. Utilize a script or similar to generate a report that shows intra-pair/inner-pair mismatches and whether they are within spec or not.
  • Additionally, it's possible to solve for the required geometries yourself, but I've always generally leaned on my fab house because my products are generally low-volume and stick with one, maybe two vendors. Also not sure what part of this answer offended someone -- if there's something factually incorrect, please let me know. – Krunal Desai Jan 1 '16 at 7:29
  • You might clearly state that (to a first approximation) each line's impedance is half the "pair impedance". Altium, among others, can solve for the right line width to give a given impedance. – Bryce Jan 1 '16 at 8:05
  • I've never had good results from Altium's calculator, but did add that EDA tools can do the math for you + a note about the SE impedance. – Krunal Desai Jan 1 '16 at 8:11
  • Note that it is possible to get 'free' impedance test coupons (the PCB fabricator will charge you for them). On an impedance controlled layer (for example, with 100 diff), find an unused area and run a differential pair and expose at each end to the surface with test pads. On any given layer, the impedance of any one pair will be very close to the impedance of any other pair, so this dummy pair is representative of other pairs on that layer. Get your TDR and measure away. – Peter Smith Jan 1 '16 at 15:56
  • 1
    @Bryce, whether the individual line's impedance is half the differential impedance depends on whether the pair is "strongly coupled" or "weakly coupled". When the two lines are far apart (say, more than 3 or 4 trace widths), then the lines are weakly coupled and the individual line impedance is about 1/2 the pair impedance. If the two lines are closer together, then they are strongly coupled and this won't be true. – The Photon Jan 1 '16 at 17:44

Differential impedance is affected by coupling between the two sides of the pair. Usually, PCB differential pairs are parallel-routed side by side at a specific gap within a specific configuration of PCB layers. If there is no coupling between the two sides (they are far enough apart) then the differential impedance is exactly double the single-ended characteristic impedance of either side on its own. As the two sides couple more closely, the differential impedance diverges more from this case. Maybe a few basic insights in this blog of mine: https://blog.zuken.com/routing-pcb-differential-pairs/

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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