2
\$\begingroup\$

I was designing a 2-Layer PCB and now I'm stuck. I have routed like 80% of all nets and now I'm no more sure if it makes sense to continue. It's getting pretty messed up with all the crossing routes that I handled by using the second layer.

I thought about switching to 4 layers and wanted to know if it's possible to do 3 Signal layers and one GND layer instead of GND and PWR. All I found online was recommendations on doing two Signal 1 GND and 1 PWR plane.

I could also finish the 2 Layer design but I would have to use a lot of vias and switching between the layers. Does someone have any tips on solving routing issues?

Thanks

\$\endgroup\$
2
  • 3
    \$\begingroup\$ If you use the 2 inner layers of a 4 layer design for GND and PWR, and then one outer layer for vertical traces and the other outer layer for horizontal traces it's rather "hard" to get stuck. \$\endgroup\$ – Unimportant Dec 29 '20 at 15:24
  • 1
    \$\begingroup\$ My main tip for solving routing issues is to play planarity.net for a couple of hours and then re-do the placement with rats-nest visible. It's difficult to emphasise enough how important placement is when it comes to making the routing easier. \$\endgroup\$ – user_1818839 Dec 29 '20 at 16:27
5
\$\begingroup\$

There is no requirement to use GND and PWR for the internal layers. That seems to be a commonly repeated recommendation, but isn't necessary.

Most of the 4-layer PCBs I tend to make have both inner layers as ground planes to allow high-frequency routing on the outer layers, and then when not required to form an unbroken plane, get chopped up to use for power and signal routing as required. You can also route ground and power on outer layers too.

Basically, you can use all layers as required, don't feel that you can only use one layer for just power, or just signals.


I see a suggestion for using one layer for horizontal and one layer for vertical traces, however this is again a case of "that was then, this is now". Its a useful starting point for simple boards, however when you start using predominantly surface mount components, and throw into the mix high speed signals or fast edges, the concept rapidly falls apart.


My approach is as follows:

  1. Start by placing key components - connectors, large ICs, etc.
  2. Work out where the power pins of each IC are, and make sure decoupling capacitors are given priority nearby (e.g. a pull-up resistor for a switch can go anywhere, so don't let it displace a decoupling cap).
  3. Lay some preliminary power planes, or at least vias to allow routing of planes on other layers if need be.
  4. Route any high speed signals (differential traces, USB, RF traces, etc) if any. These are the most tightly controlled constraints, so must be given preference. Make sure that these have an unbroken plane underneath them along their entire journey. The plane would preferrably be ground, but can also be power so long as you have sufficient decoupling capacitors at each end from power to ground to allow return currents to jump on to the plane.
  5. Route any analogue components - with this, seperating analogue and digital ground planes is not necessary and can be harmful. The main idea is to seperate analogue and digital circuitry - you don't want return currents from your digital components running under your sensitive analogue or RF components.
  6. Place any less important components where there is room for them, but try to keep them grouped with components that they belong to. For example don't place a pull-up resistor on the opposite end of the board from all the other parts that trace connects to.
  7. Route the second most important signals, starting with any parallel buses that want similar routing or length, along with buses like JTAG or SPI.
  8. Begin to fill in your power planes based on your preliminary paths from step 2. You will likely find these have to move around as you've gone along.
  9. Route the remainder of the signals - e.g. buttons and low speed signals can route pretty much wherever, the number of vias in such traces don't matter to much, so they can jump around to avoid everything else.

I also tend to route from both ends - with the components grouped together like little cities, you can route traces within each city as needed, and try to escape signals which share a common destination out of each city like little highways. These can then be connected up afterwards.

The thing to bare in mind is this is an iterative process. Keep looking at the whole picture to see how each chunk of the board is likely to connect up.

Don't be afraid to move traces and components as you go along. You might discover that if you rotate a chip or reorganise some of the blocks that the routing begins to untangle.

\$\endgroup\$
2
  • \$\begingroup\$ You say you use both inner layers as ground planes for signal integrity reasons, but wouldn't a ground plane and a Vcc plane have the same effect for high-frequency signals? The voltage doesn't matter, just the fact that it's constant. \$\endgroup\$ – Hearth Dec 29 '20 at 17:02
  • \$\begingroup\$ @Hearth I do mention that - you can use the power planes as reference planes as well, so long as you have sufficient decoupling capacitors at each end to ensure that the return currents can get on to the power plane. But I find it easier to use ground as the reference as the power planes don't necessarily travel from one end to the signal to the other, especially if you use locally filtered power regions. Whereas the ground is pretty much contiguous everywhere. \$\endgroup\$ – Tom Carpenter Dec 29 '20 at 17:18

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.