# Why wiggle nearby tracks on a PCB?

I've been reading an article (TheMagPi eMagazine) relating to the Raspberry Pi; "An ARM GNU/Linux box for \$25."

In the article, page 17 at the bottom it shows an area on the Pi where a track zigzags next to a straight one with the explanation text:

The “wiggles” in tracks, ensure signals are matched electrically, reducing interference and signal delay. This is particularly important for high speed video data and HDMI signals.

I have very limited knowledge of electrical engineering so perhaps this is a very simple question but why would you incorporate these 'wiggles' in a PCB design?

I realise the quote gives me an answer and I sort of understand the interference point due to problems with power cables and coaxial cables running next to each other but I'd appreciate something assuming very little knowledge that explained why you would get the problems and how wiggles help. For example, why isn't the board covered in wiggles?

• Is it just me or do those wiggled tracks look like they're longer in total than the outside track? By eye, I'm guesstimating that just a single wiggle would already compensate for the length difference around one 45 degree corner. Are there corners we can't see, and this is the only space available for the accumulated wiggle demand? – Bernd Jendrissek Jul 3 '12 at 15:33
• That is my thought too and if you look carefully, the second pair is shorter than the other wiggled pairs. – jippie Jul 3 '12 at 18:41
• From this one photo... there's no telling what happens elsewhere on the pair. The length correction sometimes gets all bunched up at one end like this if there's little room elsewhere. Connectors are a low-density area generally, so it's easy to do there. I think it is preferable to match lengths with smaller corrections along the full length if possible, though. – darron Jul 5 '12 at 21:29

## 2 Answers

The wiggle is present on the inside track at corners (or the shorter overall) to equalise the track lengths of a differential pair - that is any two wires that use differential signalling to cary data. If the tracks were not the same length, the noise-cancelling benefit of a differential signalling would be lost.

While the physical-layer components of most modern LVDS signalling (PCIe, HDMI, DVI) include de-skew or 'elastic' buffers to compensate for differing track lengths between pairs, skew within a pair must be avoided with these physical layout techniques.

Following comments by OP:

Taking Gigabit ethernet as an example, as this might be more familiar to you: The CAT6 cable has eight wires, which if you tear open the outer insulating sheath are twisted together in pairs, so wires 1+2 are twisted together as pair one. Next to this lies pair 2, which is wires 3+4 twisted together, pair 3 comprises wire 5+6 twisted together etc. It's important to keep the pairs the same length, because they contain copies of the same signal sent with opposite polarities (one is positive, while the other is negative). If and only if the wires are the same length, the signals arrive together (given the fixed speed of electrons), which allows any common-mode electrical interference to be rejected in the magnetic coupling.

The four pairs themselves however do not have to be exactly the same length because the gigbit auto negotiation process calibrates the elastic buffers (and echo cancelling units) such that any minute discrepancies in arrival time are removed before the higher level components do their work.

The same thing is happening on this circuit board. The immediately adjacent/close circuit board traces are "the pairs" and are kept the same length to allow the differential receivers to reject noise, although electrically rather than magnetically. You can see the HDMI connector carries several such pairs, and no attempt is made to keep one pair the same length as the pair next to it ("between pairs"). There are however some limits in the size of the elastic buffers (in bytes) after which the cable becomes non-operative or downgrades. It would be fun to experiment and find the limits in millimetres.

This picture of a HDMI plug shows the differential pairs:

• This is probably very basic, but searching hasn't really helped. What is a pair? If a pair is simply two different components then I don't understand the difference between within a pair and between pairs – George Duckett Jul 3 '12 at 15:01
• a 'pair' here just means two wires next to each other. A 'differential pair' is a way to send the same signal with opposite polarity, on the two wires, which allows you to cancel out any common-mode noise in the receiver. – shuckc Jul 3 '12 at 15:17
• @GeorgeDuckett: If one just sends a logic level on a single wire, then any currents that flow in that wire must return via the ground plane, and any noise picked up by the wire or the ground plane may affect the signal. To avoid those issues, high-speed signals are often sent using two wires (which I'll arbitrarily call "X" and "Y"); a logic "1" will be sent by driving X high and Y low; a logic "0" will be sent by driving Y high and X low. A device which is receiving the signals will interpret them as "1" any time the voltage on X higher than Y, and "0" any time Y is higher than X. – supercat Jul 3 '12 at 15:47
• @GeorgeDuckett: At any given time, current which flows out one wire will be pretty well balanced by current in the other, so the signals will not couple current onto the ground plane (which would be seen by other signals as noise). Further, any noise which appears on the ground plane from other devices will be seen roughly equally by both wires in the pair, and thus not affect which wire is "higher" at any given moment. – supercat Jul 3 '12 at 15:49
• @shuckc: George Ducket wanted to know what the significance of a "pair" of wires was, since the way the wiggles are laid out does suggest that the wires go in pairs. I could have added that for a pair of wires to eliminate ground-plane currents, it's necessary that a rising edge on one wire and falling edge on the other arrive precisely simultaneously; even if logic could handle timing differences, it wouldn't be able to avoid the extra noise coupling that would result if the signals arrive at different times, but the answer already alluded to that. – supercat Jul 3 '12 at 16:17

Basically, the wiggle is used in situations where there are two or more (fast) signals that should be synchronized, so that they are not delayed relative to each other due to different track lengths.

This is extremely important for signals that have a clock line because, for example, on a system with various data lines, if some of the data lines are longer than others, when the clock pulse occurs it is possible that not all the signals have reached the receiver for the data being transmitted.

On the image you can see that the inner tracks are the ones that are wiggled, because if they were straight they would be shorter than the outer ones.

• I upvote this one since this answer is equivalently good as the accepted one. Track length is very important for high speed signals. I've learned it the hard way. – bakcsa83 Jan 16 '16 at 15:20