I have known people during my career who insisted on hand-routing every PCB design that they worked on. They would say that their manual routing performed better, looked better, and was just better in general. I’m not going to argue one way or the other on that, but I will say that there is one thing that can not be argued with; all of that manual routing took them a much longer time to complete than if they had used automated routers. With today’s higher-density routing being packed into reduced design schedules, PCB layout engineers need help in speeding up the routing process.
Fortunately, CAD tools like Altium Designer® have the automated trace routing features that PCB designers need today to stay ahead of their schedules. One such feature is the ability to set up the design rules for BGA fanout or FPGA fanout. Altium Designer provides a lot of options in the design rules so that you can get great results from the fanout utility. Take a look here at how these tools can help you save time on your routing by automatically fanning out a BGA.
Fanning out a BGA will often require adjustments to your design rules for smaller trace widths and spacing as well as vias. Altium Designer provides for this by giving you the ability to set up “rooms”. These rooms will allow you to apply different design rules to that specific area of routing, which in many cases is exactly what you need for your BGA fanout routing.
Here’s the BGA that we will create the fanout routing
In the picture above you can see the BGA that we will be working with. You will want to make sure that your design has enough layers to accommodate the fan-out traces, and in this design, we have plenty to work with. The larger the BGA, the more layers it will take for the fan out utility to do its job, although for demonstration purposes we are using a smaller BGA.
To create a room for the BGA-specific design rules, you will go to the “Designs > Rooms” menu selection. There are many ways to create rooms, and in our case, we have pre-selected the BGA part on our board, and then selected “Create Rectangle Room from selected components” from the menu. This will create a room perfectly around our selected BGA as you can see in the picture below.
The Rooms menu in Altium Designer
Once the room has been created, it is time to start working with the design rules. Open up the design rules by going to the “Design > Rules” menu selection. On the left side of the PCB Rules and Constraints Editor menu, go down to the “Placement” rules and click on the arrow to open up these rules. In the “Room Definition” category you will see the new rule for the room that you just created; it will have the name “RoomDefinition”.
Setting the design rules for the BGA room
In the picture above you can see the rules for the room definition category, and the changes we made to the rule. You will need to change the rule name to something more descriptive, and in our case, we have chosen “BGA_Fanout”. Make sure that the settings for object matching are set the way the picture shows, and apply these rules to save them.
Next, you will need to create a special clearance setting for the BGA_Fanout room. To do this you will remain in the design rules menu, and go up to the top of the menu on the left side to the “Electrical > Clearance” category. Right-click on this category and create a new rule giving it the name “Clearance_BGA_Fanout” in its dialog box. You will also want to adjust the clearances to a value of 0.1 mm as shown in the picture below.
Setting a clearance rule for the BGA room
To associate this clearance rule with the room that we’ve created around the BGA, we will specify a custom query as our object match. To do this click on the drop-down button under “Where The First Object Matches”, and select “Custom Query.” In the text box that pops up, start typing the word “WithinRoom.” Before you finish you will see an option for “WithinRoom” pop up. Select this option and immediately another option for the room that you want to select will pop up, which in our case is the room “BGA_Fanout”. Once you select the room that you want the new rule dialog will be complete as shown in the picture above, and you can click on “Apply” to save it.
Next, we will need a new rule for a smaller trace width in the BGA_Fanout room. Create a new routing width rule and name it “Width_BGA_Fanout.” Follow the same procedures to set up its object matching and specify a routing width of 0.1 MM for all widths as shown in the picture below. When you are finished, click “Apply” again to save this rule.
Setting a width rule for the BGA room
We will also need a new visa for the BGA fan out. Create a new “Routing Via Style” rule with a diameter of .4MM and a hole size of .2MM. As with the clearance and width rules, you will follow the same procedure to associate this rule with the “BGA_Fanout” room as shown below.
Setting a via rule for the BGA room
The last design rule that we will want to work with is the Fanout Control rule. This rule includes different rules for fanning out different component styles such as SOIC’s, LCC’s, and BGA’s. In our case, we will want to verify the settings in the BGA fanout routing rule specifically.
As you can see in the picture below, this rule already has a custom query set up to match a BGA object. Check that the “Fanout Style” is set to “BGA.” There are other settings in there such as “Auto” and “Inline Rows,” but for our purposes we want it to use the BGA style. The other rules should be set up as shown. Once you have verified that this and the rest of the rules are all set up correctly, you can click “OK” to close the PCB Rules and Constraints Editor.
Setting the fanout control rules in Altium Designer
When routing BGA components with fine pitch, the automated fanout tool needs explicit permission to place vias directly inside BGA pads in the footprint, known as via-in-pad fanout. By default, the PCB design rules prohibit this to protect standard surface-mount assemblies from solder wicking issues, and manually placing a via in an SMD pad will trigger a DRC error. Therefore, we will first need to enable placement of via-in-pad before we setup the fanout engine.
Once the constraint is active, you can then configure the fanout control settings to specify that vias should be located directly in the pad rather than offset, which is the second prerequisite for a clean via-in-pad escape pattern.
First, you must enable the "Vias Under SMD" rule in the High Speed section of the PCB Rules and Constraints Editor before the fanout engine will place vias within BGA pads. Until this rule is enabled, any attempt to run an automated via-in-pad fanout will either fail or revert to a dog-bone style that pulls the via away from the pad.
Here you have the choice of whether to enable the Vias Under SMD rule globally, or only inside the room for your BGA. There are legitimate reasons to only use via-in-pad in the BGA region, but you are not required to do this in every design. If you want to only allow via-in-pad inside the BGA fanout, use the "WithinRoom" custom query in the scope dropdown box when enabling the Vias Under SMD rule.
Next, we can create the room where we want to apply the relevant design rules by following the process above. We can also configure the fanout style to control where fanout vias are placed relative to the SMD pads in our BGA footprint:
The fanout process also relies on the Routing Via Style as a supporting rule. This will define the via size and hole size used in the fanout. The preferred via style will be used by default. While you can set a global rule for Routing Via Style, you can also set a room-specific rule with the WithinRoom query. It is critical that this rule be configured within the BGA room to ensure that the attempted fanout vias will not violate the relevant clearance constraints. If the attempted via violates clearances, then the fanout tool will fail and you will need to reconfigure the via size.
It’s time to press the button and route this fan out. There are different ways to accomplish this, and in our case, we will use the “Route” menu. Select “Fanout > Component” from the route pulldown menu, and the “Fanout Options” sub-menu will pop up. Enable the “Fanout Pads Without Nets” and “Include escape routes after fanout completion” options as shown below, and click OK.
The fanout options
You will now have a green arrow pop up on your cursor to select the BGA for fanning out. When you click on the BGA, Altium Designer may pop up a “Component Selection” sub-menu. In that case, enter the reference designator of the BGA and click OK. Give it a few moments, and the BGA fanout routing will be done. Results will obviously vary depending on what BGA is being routed, how many layers you are working with, and the connectivity, but here is a picture of what our fan out looked like.
Successful dog-bone fanout for a BGA in Altium Designer
There is one obvious question we did not address: which of these fanout options should you use?
Both options are capable of fanning out a large BGA with through-holes or blind/buried vias (either mechanical or laser drilled). Part of the selection involves packing more traces into smaller number of layers, which can be accomplished with an HDI approach and blind/buried laser-drilled microvias. Although you might not be required to use blind/buried vias with HDI manufacturing techniques, doing so can help reduce the total layer count by doubling the number of traces that can be fanned-out on internal layers. In this case, you typically stick with dog bone fanouts.
In other cases, which are discussed in this article, the BGA package's ball pitch forces you to use laser-drilled microvias because this is the only way to fit the vias under the BGA package without violating copper feature size limits or clearances between copper features. As the ball pitch on the BGA package gets smaller, you will get forced into using via-in-pad, depending on whether you are using mechanically-drilled vias or laser-drilled vias:
To see an example of how this works, take a look at the following video. This video tests the datasheet recommendations for an STM32 MCU in a BGA package to see whether it is possible to use HDI and whether it reduces layers compared to through-hole designs.
Altium Designer supports these standard BGA fanout styles through its comprehensive PCB design rule system, giving users full control over their high-density designs. For more information, I recommend the following support articles from the Altium Documentation:
Whether you need to build reliable power electronics or advanced digital systems, use Altium’s complete set of PCB design features and world-class CAD tools. Altium provides the world’s premier electronic product development platform, complete with the industry’s best PCB design tools and cross-disciplinary collaboration features for advanced design teams. Contact an expert at Altium today