5
\$\begingroup\$

It is the first time for me to design a PCB with a PCIe bus. My first design failed, the bus is not working!

Tom helped me in this question and instructed me how to correctly route a high speed bus - thanks! Ethernet controller not recognized on PCIe bus

I now improved my design, but before spending some more hundred bucks I would like to make sure this should work. Does my routing now look ok? Ground planes and ground vias are not shown.

enter image description here

\$\endgroup\$
  • 1
    \$\begingroup\$ Have you confirmed the trace width/spacing requirements to make the differential pairs 100 Ohm? The spacing seems to keep changing along the length of the traces. \$\endgroup\$ – Tom Carpenter Oct 6 '18 at 19:31
  • 1
    \$\begingroup\$ You can use this tool to work out approximate characteristic impedance. \$\endgroup\$ – Tom Carpenter Oct 6 '18 at 19:32
  • \$\begingroup\$ To confirm, you are planning a 4 layer board, right? \$\endgroup\$ – Connor Wolf Oct 7 '18 at 0:56
  • \$\begingroup\$ Yes, 4 layers... \$\endgroup\$ – Reto Oct 7 '18 at 6:37
8
\$\begingroup\$

You'll need to confirm the trace width/spacing requirements to make the differential pairs 100 Ohm. You can use this tool to work out approximate characteristic impedance of various trace width/spacing combinations. I'd suggest 8th width, 8th spacing is a good place to start, though you may need to tune those to match your PCB stackup.

Also, in your routing, the spacing seems to keep changing along the length of the traces which will not maintain constant impedance, you must route the traces with the spacing maintained constant along the length.


Having a look at your layout, I have the following comments.

It's worth noting that for starters PCIe doesn't require any specific phase on the reference clock, nor specific biasing on the P and N side for the clock. That means that you are free to swap the P and N lines of the clock without consequence. If you make that swap, your clock routing becomes much simpler as you no longer need to cross over.

Next a little rearranging of your PCIe Tx/Rx lanes allows for a much cleaner routing. The length of the two pairs doesn't need to be the same, so it doesn't matter if the RX pair is much longer or shorter than the TX pair. That means that if you place your AC caps on the bottom for both TX and RX, you can actually route the TX pair all the way around the RX pair, meaning your vias can be placed directly at the connector.

Finally, liberal use of ground vias (shown in the image as green filled vias) is essential, especially placed symmetrically either side or around wherever the differential traces change layer - the ground vias are needed to allow return currents on the reference planes to swap layers.

Based on that, I'd suggest something like the following - though you will need to route it and check design rules as this was hand drawn in paint.

Routing Suggestion

\$\endgroup\$
  • 1
    \$\begingroup\$ you drew this in paint? \$\endgroup\$ – Marcus Müller Oct 6 '18 at 23:08
  • 1
    \$\begingroup\$ I sure hope you're putting your talent to good use :) \$\endgroup\$ – Marcus Müller Oct 6 '18 at 23:08
  • 3
    \$\begingroup\$ @MarcusMüller aye, got to love paint at times. I'm currently busily routing a PCIe Gen 3 switch board at the moment (though not in paint I might add). \$\endgroup\$ – Tom Carpenter Oct 6 '18 at 23:30
  • 1
    \$\begingroup\$ @Reto, in which case, I'd probably put them on the horizontal part of the trace near the PHY. \$\endgroup\$ – Tom Carpenter Oct 7 '18 at 14:56
  • 1
    \$\begingroup\$ @Reto seems reasonable on quick glance. \$\endgroup\$ – Tom Carpenter Oct 10 '18 at 21:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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