Author Topic: Four ground layers stitched together under an Artix-7 FPGA is a bad idea?  (Read 680 times)

0 Members and 1 Guest are viewing this topic.

Offline bmxseshTopic starter

  • Contributor
  • Posts: 20
  • Country: ru
I'm reading that ideally there is one uninterrupted copper sheet as a ground reference for all components. But it would be difficult for me to do since the layout I chose is:
Top
+5V
GND
Signal
+3.3V
GND
Signal
+1.8V
GND
Signal
+0.95V
GND
Signal
Bottom - 13 layers total. DC/DC converters and decoupling is on the bottom under the FPGA chip. PWR_OK led and DONE_PROG led are on the top side.

All signals go to the breakout pins to off-board circuits. So I guess the return path for these signals is from that supply GND pin. This is only a breakout board for some 134 IO'S
Now I would say it would be impossible for me to do an uninterrupted internal layer since some of the I/Os are via-in-the-pad drilled through the thickness of the entire board to the bottom side. So the only option would be the copper pour on the bottom as GND.
So all this on a screenshot is a 3 cm x 3 cm(27mm x 27 mm FBG676 BGA chip) henceforth 9cm^2 x 4 that's four 9cm^2 metal sheets stitched together with buried vias. Could that lead to some problems (I am intending this for a ~30MHz project)
« Last Edit: September 17, 2024, 09:13:26 pm by bmxsesh »
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 27716
  • Country: nl
    • NCT Developments
Re: Four ground layers stitched together under an Artix-7 FPGA is a bad idea?
« Reply #1 on: September 16, 2024, 04:27:28 pm »
Stitching ground planes together isn't a problem. However, to me this seems like a really bad stackup and poor use of 13 layers.

If the design is just a break-out board then 8 layers should be more than enough to also support using high speed signals:
1 signal 1/ top
2 ground
3 signal 2
4 ground
5 power 1
6 power 2
7 ground
8 signal 3/ bottom

You always want to have power planes sandwiched between grounds and signals should also be referenced to ground, not power. For low speed signals, you could resort to using free space on the power 1 and power 2 layers giving more flexibility.

With a bit of creativity, a 4 layer board could be sufficient as well if you can route all signals to the breakout connectors on the top layer, use 1 ground plane and use 2 layers for extra signals and power.
« Last Edit: September 16, 2024, 04:31:57 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 
The following users thanked this post: thm_w, Doctorandus_P

Online thm_w

  • Super Contributor
  • ***
  • Posts: 7005
  • Country: ca
  • Non-expert
Re: Four ground layers stitched together under an Artix-7 FPGA is a bad idea?
« Reply #2 on: September 16, 2024, 08:45:54 pm »
30MHz is not that high, but, you still only have 1 ground pin for 100+ IO?
Doesn't seem ideal.

https://electronics.stackexchange.com/questions/207752/how-many-ground-and-power-pins-to-have-in-a-connector
Profile -> Modify profile -> Look and Layout ->  Don't show users' signatures
 
The following users thanked this post: bmxsesh

Online nctnico

  • Super Contributor
  • ***
  • Posts: 27716
  • Country: nl
    • NCT Developments
Re: Four ground layers stitched together under an Artix-7 FPGA is a bad idea?
« Reply #3 on: September 16, 2024, 10:18:38 pm »
30MHz is not that high, but, you still only have 1 ground pin for 100+ IO?
Doesn't seem ideal.

https://electronics.stackexchange.com/questions/207752/how-many-ground-and-power-pins-to-have-in-a-connector
That is a good catch indeed! I didn't even look that far. Not having a whole bunch of ground pins is the number one mistake people make when designing breakout / add-on boards. And besides having ground pins, also make sure to have grounded mounting holes so metal standoffs can be used to connect ground of a carrier board to the add-on board.

Having some TVS diodes and/or series resistors on the programming signals might also be a good idea just to make sure the FPGA isn't damaged by ESD or half the AC mains coming from a non-grounded mains adapter.
« Last Edit: September 16, 2024, 10:21:21 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Online Sensorcat

  • Regular Contributor
  • *
  • Posts: 90
  • Country: de
  • Freelance Sensor Consultant
    • Sensorberatung
Re: Four ground layers stitched together under an Artix-7 FPGA is a bad idea?
« Reply #4 on: September 16, 2024, 11:50:20 pm »
There is a discrepancy between your layer list in text (12 items between top and bottom) and in screenshot (11 inner layers). Also, what is a '30MHz project?'. Since this is no standard nomenclature, it is important to clarify what that means. Is the highest component of any signal in the project 30MHz? Or do you need a clean 30MHz square wave for the project to operate properly? In the latter case, well-controlled transfer of 300MHz signal components (harmonics of the square) is the bare minimum.
 
The following users thanked this post: Doctorandus_P

Offline bmxseshTopic starter

  • Contributor
  • Posts: 20
  • Country: ru
Re: Four ground layers stitched together under an Artix-7 FPGA is a bad idea?
« Reply #5 on: September 17, 2024, 09:19:54 pm »
30MHz is not that high, but, you still only have 1 ground pin for 100+ IO?
Doesn't seem ideal.

https://electronics.stackexchange.com/questions/207752/how-many-ground-and-power-pins-to-have-in-a-connector
That is a good catch indeed! I didn't even look that far. Not having a whole bunch of ground pins is the number one mistake people make when designing breakout / add-on boards. And besides having ground pins, also make sure to have grounded mounting holes so metal standoffs can be used to connect ground of a carrier board to the add-on board.

Having some TVS diodes and/or series resistors on the programming signals might also be a good idea just to make sure the FPGA isn't damaged by ESD or half the AC mains coming from a non-grounded mains adapter.
I think there is some ESD protection within the FPGA.
Programming is done in two steps. First the SPI Flash chip is programmed with something like a Raspberry Pi computer at the bottom six pins. The rest of the board is not powered. Then the SPI lines are shorted and the flash becomes one with the rest of the circuit. Now the entire board is powered from +5V jack and the FPGA reads its bitcode from the Flash memory. PWR_OK lights up when 3.3V rail is operational. DONE lights up when the DONE pin is released from low to high by the FPGA and indicates that the bitcode was read succesfully. There's no JTAG involved.

There is a discrepancy between your layer list in text (12 items between top and bottom) and in screenshot (11 inner layers). Also, what is a '30MHz project?'. Since this is no standard nomenclature, it is important to clarify what that means. Is the highest component of any signal in the project 30MHz? Or do you need a clean 30MHz square wave for the project to operate properly? In the latter case, well-controlled transfer of 300MHz signal components (harmonics of the square) is the bare minimum.

There are two clocks 27 MHz is 1.8V silicon oscillator and 29.5MHz 3.3V resistor set oscillator. Microchip and LTC respectively. The signals will go off the board/come from off-board circuits via the breakout pins. I have signals changing layers through vias from a microstrip to a 0.08mm wire like you can see in the screenshot, but at the very end it goes through the 2.54mm plated hole to a standard rainbow colored wire, and this is the impedance I won't be able to control. I will think what can be done with the power line size

Full project is at github.com/mbondaru/flasher if you have access to Linux and LibrePCB
« Last Edit: September 17, 2024, 09:31:54 pm by bmxsesh »
 

Offline Psi

  • Super Contributor
  • ***
  • Posts: 10192
  • Country: nz
Re: Four ground layers stitched together under an Artix-7 FPGA is a bad idea?
« Reply #6 on: September 17, 2024, 09:30:18 pm »
Are you using buried/blind vias?  I've seen people try to use a massive number of layers because it had not occurred to them that using buried/blind vias would help and reduce layer count.
Another thing people somethings forget is to turn off the thing that always creates pads around vias on layers where you don't need to connect to the via. By removing those pads it gives you more room to route other tracks.

(Apologies if you know this all already, I was just checking because 13 is a lot of layers).
« Last Edit: September 17, 2024, 09:33:16 pm by Psi »
Greek letter 'Psi' (not Pounds per Square Inch)
 

Offline bmxseshTopic starter

  • Contributor
  • Posts: 20
  • Country: ru
Re: Four ground layers stitched together under an Artix-7 FPGA is a bad idea?
« Reply #7 on: September 17, 2024, 09:37:18 pm »
Are you using buried/blind vias?  I've seen people try to use a massive number of layers because it had not occurred to them that using buried/blind vias would help and reduce layer count.
Another thing people somethings forget is to turn off the thing that always creates pads around vias on layers where you don't need to connect to the via. By removing those pads it gives you more room to route other tracks.

(Apologies if you know this all already, I was just checking because 13 is a lot of layers).
My local PCB fab can make some 24 layers so it doesn't seem like a big deal. There is just a lot routed and can only be routed under the FPGA BGA chip.
It needs three voltage levels (1.8V and 3.3V IO banks, 0.95V core voltage), ground, that's already 4. DC/DC converters are directly beneath the FPGA to save space for tracks, so the power supply +5V inner layer is also under the FPGA, that's 5 layers already. Then every signal that is not on the edge of the package is routed through a via to one of three inner signal layers 3,6, and 9. That's makes 8 inner layers required under the 676 pin BGA FPGA chip. Some I/Os have a via-in-the-pad drilled through the thickness of the entire board to a wire on the opposite side of the deck. This is my first time making a PCB of this complexity and in fact the first time making a PCB at all

The only buried vias are the stitching ones that stitch together four ground layers 2, 5, 8, and 11 all around the BGA chip. The rest is blind vias from surface to some inner layer.

The green circle on the screenshot is a through-hole via from Top to Bottom. The circles around them are clearance pads that don't let these vias short with the 3.3V layer (big metal sheet) that they are passing through, in my understanding. Is that what you are talking about?

30MHz is not that high, but, you still only have 1 ground pin for 100+ IO?
Doesn't seem ideal.

https://electronics.stackexchange.com/questions/207752/how-many-ground-and-power-pins-to-have-in-a-connector
Using this website's guidelines: https://resources.altium.com/p/pcb-trace-width-vs-current-table-high-voltage-design
The DC/DC converters that supply 3.3V and 1.8V that goes off board can supply 3A of current at most per channel. So I need 50 mil or 1.27 mm wide power trace to off-board circuits, both power and ground. Breakout through hole diameter is 1 mm (see screenshot 2). So one such pair of pins PWR/GND can practically deliver almost all of the 3A that DC/DC converter can provide. The power goes from 18 μm thick 2 mm wide copper foil to a much thicker wire so I don't know if more is really needed
Converters are LTC3633 and LTC3621
« Last Edit: September 17, 2024, 10:38:02 pm by bmxsesh »
 

Online thm_w

  • Super Contributor
  • ***
  • Posts: 7005
  • Country: ca
  • Non-expert
Re: Four ground layers stitched together under an Artix-7 FPGA is a bad idea?
« Reply #8 on: September 17, 2024, 10:35:28 pm »
My concern with a single GND pin is not related to DC current capacity, its to do with signal integrity.
Profile -> Modify profile -> Look and Layout ->  Don't show users' signatures
 

Offline bmxseshTopic starter

  • Contributor
  • Posts: 20
  • Country: ru
Re: Four ground layers stitched together under an Artix-7 FPGA is a bad idea?
« Reply #9 on: September 17, 2024, 10:48:49 pm »

My concern with a single GND pin is not related to DC current capacity, its to do with signal integrity.
So here I have a 14-bit 120MHz DAC, AD9744. It only seems to have one or at most two ground legs. Why it doesn't need a ground leg for each signal line like the guy from stackexchange suggests that you posted? I'm a bit falling behind on theory here. It's obviously not a huge PCB, only a small silicon chip, but still
 

Offline forrestc

  • Supporter
  • ****
  • Posts: 693
  • Country: us
Re: Four ground layers stitched together under an Artix-7 FPGA is a bad idea?
« Reply #10 on: September 17, 2024, 11:09:18 pm »
The DC/DC converters that supply 3.3V and 1.8V that goes off board can supply 3A of current at most per channel. So I need 50 mil or 1.27 mm wide power trace to off-board circuits, both power and ground.

As thm_w mentioned, when moving high speed signals across a connector you need to add ground pins for signal integrity.  At the bare minimum,  you want 1 pin for every 3 signal pins, in an arrangement like this:

Code: [Select]
SSSGSSSGSSSGSSSGSSSGSSSG
SGSSSGSSSGSSSGSSSGSSSGSS

That way every pin is able to have a ground reference next to it.   Even better is moving to an alternating S/G pattern (so every signal is next to 3 ground pins) or even swapping the S's and the G's in the example, so every signal is completely surrounded by ground pins.

As far as the stackup goes on 6 layers and above boards, the top 3 layers should almost always be Sig-GND-SIG.   This gives you two layers referenced to a single ground layer.   I almost always put my "used by almost everything" power layer as layer 4 followed by and additional GND on layer 5, and then the rest I assign depending on what I'm doing with the board.   If it was all signals I'd just alternate sig/gnd, and for many additional power busses, I just treat them as another signal.   So for many of my designs it would be SIG-GND-SIG-PWR-GND-SIG/PWR-GND-SIG/PWR (and so on with more GND-SIG/PWR alternates)

I highly recommend the following useful video (which is really more of a free webinar): 

 

This video is a very good introduction to grounding and signal integrity and will help greatly with understanding why at least a couple of us are pointing out certain potential issues here.  It will also help you understand the desire for a single uninterrupted ground plane.
 

Offline forrestc

  • Supporter
  • ****
  • Posts: 693
  • Country: us
Re: Four ground layers stitched together under an Artix-7 FPGA is a bad idea?
« Reply #11 on: September 17, 2024, 11:27:22 pm »
So here I have a 14-bit 120MHz DAC, AD9744. It only seems to have one or at most two ground legs. Why it doesn't need a ground leg for each signal line like the guy from stackexchange suggests that you posted? I'm a bit falling behind on theory here. It's obviously not a huge PCB, only a small silicon chip, but still

Because the part was released in 2002 before we understood signal integrity as well as we do?  Remember the 7400 series had power and ground at opposite corners which is horrible.   And yes, even newer parts have horrible pinouts for signal integrity.  One thing that always comes up when discussing signal integrity among people who know what is going on is why do the IC designers still insist on giving board designers pinouts that are atrocious.   Note that to some extent the answer is that at the scale of a chip, and especially if you have a grounded substrate or exposed pad, it isn't that much of a problem.  Adding a copper pour under the IC itself can help, but I don't know how much that is needed on a board with a ground plane on layer 2.

Note that many (if not most or all) recently released BGA fpga's have a pinout which ensures that every i/o pin is next to a ground pin.
« Last Edit: September 17, 2024, 11:41:39 pm by forrestc »
 

Offline Smokey

  • Super Contributor
  • ***
  • Posts: 2851
  • Country: us
  • Not An Expert
The world has become an amazing place when you even consider making 12 layer boards just because....
 

Offline exmadscientist

  • Frequent Contributor
  • **
  • Posts: 404
  • Country: us
  • Technically A Professional
Some other people have been dancing around this but I am going to come right out and say it: I think you have bitten off more than you can chew and you should probably not be attempting this project as your first PCB.

You should really know why 13 layers is not possible. Ever. (Yes, some vendors will quote it, blah blah blah, some might even do it... but the quotes are f-off quotes and the boards will fail early if anyone is dumb enough to build them for any reason short of total desperation.) To get 134 I/Os out of a 676-ball BGA is not very difficult. You can probably do this in 4 layers if you are clever and patient; 6 is probably not too hard at all; and 8 should yield an excellent electrical and physical design, executed quickly, for the modest unit cost increase. (So, what I'm saying is, start with 8.) The only thing that should give you real pause is the fanout, as you do mention... but it's an FPGA so you can just put everything on the outer two rows (there's ~200 balls there!), where no vias are needed to break out, or at least you can break it all out however it needs to go to be nice and clean.

Your design rules may even permit vias directly between pads, at 1mm pitch. (1mm pitch is easy mode.) Or you can probably get three traces between pads. This is what makes these things possible.

I think there is some ESD protection within the FPGA.
There is not. Or, at least, there is little enough that you will be happier pretending there is not. Protect all off-board signals if you want your chips to live!


My concern with a single GND pin is not related to DC current capacity, its to do with signal integrity.
So here I have a 14-bit 120MHz DAC, AD9744. It only seems to have one or at most two ground legs. Why it doesn't need a ground leg for each signal line like the guy from stackexchange suggests that you posted? I'm a bit falling behind on theory here. It's obviously not a huge PCB, only a small silicon chip, but still
They can get away with this for ICs because ICs are tiny and sometimes even have onchip decoupling. You (and I) cannot get away with this for connectors. Connectors are hell, electrically, mechanically, and every other way. Your precious signals need their figurative hands held every step of their journeys off board, or they will suffer, and your reputation will suffer for it.

You may want to post your schematic here (as a PDF! or PNG! or whatever that isn't proprietary to your software!) for comment (probably in another thread). Someone might be able to save you a spin or three.
 

Offline bmxseshTopic starter

  • Contributor
  • Posts: 20
  • Country: ru
Some other people have been dancing around this but I am going to come right out and say it: I think you have bitten off more than you can chew and you should probably not be attempting this project as your first PCB.

You should really know why 13 layers is not possible. Ever. (Yes, some vendors will quote it, blah blah blah, some might even do it... but the quotes are f-off quotes and the boards will fail early if anyone is dumb enough to build them for any reason short of total desperation.) To get 134 I/Os out of a 676-ball BGA is not very difficult. You can probably do this in 4 layers if you are clever and patient; 6 is probably not too hard at all; and 8 should yield an excellent electrical and physical design, executed quickly, for the modest unit cost increase. (So, what I'm saying is, start with 8.) The only thing that should give you real pause is the fanout, as you do mention... but it's an FPGA so you can just put everything on the outer two rows (there's ~200 balls there!), where no vias are needed to break out, or at least you can break it all out however it needs to go to be nice and clean.

Your design rules may even permit vias directly between pads, at 1mm pitch. (1mm pitch is easy mode.) Or you can probably get three traces between pads. This is what makes these things possible.

I think there is some ESD protection within the FPGA.
There is not. Or, at least, there is little enough that you will be happier pretending there is not. Protect all off-board signals if you want your chips to live!


My concern with a single GND pin is not related to DC current capacity, its to do with signal integrity.
So here I have a 14-bit 120MHz DAC, AD9744. It only seems to have one or at most two ground legs. Why it doesn't need a ground leg for each signal line like the guy from stackexchange suggests that you posted? I'm a bit falling behind on theory here. It's obviously not a huge PCB, only a small silicon chip, but still
They can get away with this for ICs because ICs are tiny and sometimes even have onchip decoupling. You (and I) cannot get away with this for connectors. Connectors are hell, electrically, mechanically, and every other way. Your precious signals need their figurative hands held every step of their journeys off board, or they will suffer, and your reputation will suffer for it.

You may want to post your schematic here (as a PDF! or PNG! or whatever that isn't proprietary to your software!) for comment (probably in another thread). Someone might be able to save you a spin or three.

This is what a 0.08mm trace looks like between 1.0mm BGA balls. I don't know what three wires you are telling me about, one already seems to short with the ball land copper. At least the way my software generates BGA balls, it doesn't seem I can route any wires between inner pads. My manufacturer requires to make tear-shaped BGA lands for easier soldering control
FPGA vendor AMD Xilinx does mention it is 2 or 4 layers for 676 pin BGA but look at the screenshot it is sketchy to lay a wire like this. It is the thinnest wire I can lay. I am not using wires on inner layers, only microstrips or striplines like I posted above with a via transition to a surface wire
« Last Edit: Yesterday at 10:37:50 am by bmxsesh »
 

Offline exmadscientist

  • Frequent Contributor
  • **
  • Posts: 404
  • Country: us
  • Technically A Professional
You're right that you can't get three traces through (at least at 75µm trace/space), I was off by one (should never have learned how to do software! never!) but the rest is all true, see the attached.

You'll need slightly smaller pads than the usually recommended 0.6mm, but with NSMD pads slightly smaller is often good anyway, and I doubt you're going to HVM with this thing so it should be fine. Yes, some of those things need 75µm trace/space (which manufacturers will usually do for you if you keep it constrained to a BGA fanout zone), VIPPO (via-in-pad-plated-over; this is rapidly getting common and has been common in HVM for ages), or even laser drills (still less common for LVM but, again, everywhere in HVM) but... you can do it. Laser microvias may be the hardest thing to achieve here and they are only needed if you must have vias outside of the usual "checkerboard offset" BGA pattern.

Your pad shape looks wrong which is no doubt part of your problems. I don't know why you would want asymmetrical pads like that. Your manufacturer is kind of strange, do they not have an x-ray inspection system or something? You probably don't want them doing prototypes of a 676-ball BGA without x-ray inspection. What are the actual pad dimensions you are using/they are asking for?
 
The following users thanked this post: thm_w

Offline bmxseshTopic starter

  • Contributor
  • Posts: 20
  • Country: ru
You're right that you can't get three traces through (at least at 75µm trace/space), I was off by one (should never have learned how to do software! never!) but the rest is all true, see the attached.

You'll need slightly smaller pads than the usually recommended 0.6mm, but with NSMD pads slightly smaller is often good anyway, and I doubt you're going to HVM with this thing so it should be fine. Yes, some of those things need 75µm trace/space (which manufacturers will usually do for you if you keep it constrained to a BGA fanout zone), VIPPO (via-in-pad-plated-over; this is rapidly getting common and has been common in HVM for ages), or even laser drills (still less common for LVM but, again, everywhere in HVM) but... you can do it. Laser microvias may be the hardest thing to achieve here and they are only needed if you must have vias outside of the usual "checkerboard offset" BGA pattern.

Your pad shape looks wrong which is no doubt part of your problems. I don't know why you would want asymmetrical pads like that. Your manufacturer is kind of strange, do they not have an x-ray inspection system or something? You probably don't want them doing prototypes of a 676-ball BGA without x-ray inspection. What are the actual pad dimensions you are using/they are asking for?
All they say is that the teardrop-shaped pad makes the solder obtain a specific shape that helps with the x-ray inspection
Everything else in terms of dimensions I only get from the official specs (see the screenshot)
Yes my maximum limits are 0.075 mm wide trace and 0.075 mm copper to copper
I did make a 0.6 mm pad as per specs
« Last Edit: Yesterday at 09:18:44 pm by bmxsesh »
 

Offline bmxseshTopic starter

  • Contributor
  • Posts: 20
  • Country: ru
You're right that you can't get three traces through (at least at 75µm trace/space), I was off by one (should never have learned how to do software! never!) but the rest is all true, see the attached.

You'll need slightly smaller pads than the usually recommended 0.6mm, but with NSMD pads slightly smaller is often good anyway, and I doubt you're going to HVM with this thing so it should be fine. Yes, some of those things need 75µm trace/space (which manufacturers will usually do for you if you keep it constrained to a BGA fanout zone), VIPPO (via-in-pad-plated-over; this is rapidly getting common and has been common in HVM for ages), or even laser drills (still less common for LVM but, again, everywhere in HVM) but... you can do it. Laser microvias may be the hardest thing to achieve here and they are only needed if you must have vias outside of the usual "checkerboard offset" BGA pattern.

Your pad shape looks wrong which is no doubt part of your problems. I don't know why you would want asymmetrical pads like that. Your manufacturer is kind of strange, do they not have an x-ray inspection system or something? You probably don't want them doing prototypes of a 676-ball BGA without x-ray inspection. What are the actual pad dimensions you are using/they are asking for?
This is what I got now: three different footprints for a BGA pad
Now the smallest one at the minimum spec does allow to carefully lay a wire that is conforming to 0.075 mm clearance + 0.075 mm wire width + 0.075 mm clearance
In my initial layout I sticked with NOM. dimensions of the datasheet from a previous post but this now is pretty much the MIN. that is allowed
Last screenshot is how much space I had originally
Only I don't know if this change will help with manufacturing but laying out does become slightly easier

« Last Edit: Today at 05:32:44 am by bmxsesh »
 

Offline bmxseshTopic starter

  • Contributor
  • Posts: 20
  • Country: ru
The world has become an amazing place when you even consider making 12 layer boards just because....

See screenshot, but also depends on how densely you want to place the components, board size may matter for some applications and this is where layers are useful
40% of this BGA is power and ground pins, 0.95V, 1.8V and 3.3V scattered all over the chip
This comment was not useful at all, I'm sorry

My concern with a single GND pin is not related to DC current capacity, its to do with signal integrity.
I'm thinking KVL and KCL and this theory doesn't make much sense to me
Some transient inductive currents due to self-inductance of the trace? How bad are they?
« Last Edit: Today at 02:20:19 pm by bmxsesh »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf