I am trying to design a PCB that embeds 16 ADAU1787 audio codecs (ADC/DAC).

I want to design a board that connects to an FPGA through an FMC port and connects all the codecs to output connectors (Stereo jack and DB25).

Here are the technical details:

  • Each codec uses 3 clocks from the FPGA: Master clock=24MHz, Bit clock=3MHz to 24MHz, and Word select=<800kHz.
  • These 3 clocks are buffered with an LMK1C1104, each output of the buffer drives 4 codecs.
  • Each codec is configured with I2C communication through a multiplexer, but this communication only occurs during initialization (so it should not be a problem for my question, I suppose).
  • Each codec has its own data in and data out lines from the FMC connector. The codecs are only ADC/DAC, not amplifiers (so no significant current consumption).

Here is the layout: enter image description here

Each codecs square also include the decoupling capacitor and line resistor.

The digital part is on the bottom: Clock buffer and multiplexer.

The analog part is on the top and left: 8 DB25 connectors on top that handle audio signals (input and output), and 16 stereo headphone outputs on the left.

And so the routing is a huge grid. Each codec is connected to:

  • 2 DB25 connector
  • 1 stereo output connector
  • 1 Data In and Data Out from the FMC connector,
  • 3 clock from the FMC connector through the clock buffers
  • The I2C multiplexer

Not very legible, but this is my PCB: enter image description here

(The other IC on the bottom is a LED driver)

I know this is a specific PCB, but I hope I didn't do anything stupid. Here are some additional technical specs:

  • It's a 4-layer PCB (Sig, GND, VCC, Sig).
  • I didn't pour GND on the two signal layers.
  • Each signal track is >3W apart (if you see some that are not on my screenshot, it's just LED signal).
  • It's a 220mmx220mm PCB

Now, how am I supposed to do my GND layer(s)?

  • Do I have to separate AGND and DGND? That seems impossible to do without having a strange interlacing between each codec.
  • Do I have to create an AGND layer and a DGND layer? I would say that's a bad idea because of the coupling effect if I have those 2 big planes on top of each other.
  • Do I have to create only 1 ground plane?Apparently yes. But still have to separate digital and analog.

And in the end, do I have to worry about that? Because I don't have any analog component, only connectors and codecs. I'm pretty lost because usually, you have one codec and can split analog components and digital components. Here I have 0 analog and few digital components, but a lot of codecs...

What is the right approach?


2 Answers 2


Splitting ground is an highly debated subject. Splitting it means it's of a weaker impedance, but it has less noise (digital have steep rising and falling edge with broad frequency content). On the other hand, if you sack an analog and digital ground, you kinda have the worst of both world since the analog ground gets the noise of your digital and you need an extra layer to lay it out (in your specific case). Because of your layout, I would advisee you to not split the plane (you connect DGND and AGND to GND). I think it will just weaken a lot your performance but add decoupling capacitor if you are worried about noise. If you need better performance, you'd have to rethink your placement or maybe your whole system architecture.


From the datasheet:

The AGND and DGND pins can be tied directly together in a common ground plane.

Use a single ground plane in the application layout. Place the components in the analog signal path away from the digital signals.

Taken from: https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU1787.pdf

Unless there is a strong reason to do otherwise, I would do as the datasheet recommends and create a common ground plane. If you look at the pin out, they've arranged the AGND on one end of the package and the DGND on the other, so it should be straightforward to route digital to one side and analog to the other.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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