Hello,
I am routing a large FPGA (1984 balls) to several RLDRAMs (168 balls each) and want to use the autorouter to simplify the effort in a 16 layer board. Since there are mulitple differential clocks (routed manually) and data and address and other signals, I want to group the routes and apply them to particular layers.
So far, I've been partially successful. I can apply signal groups to various layers but only if the bga ball has a via already routed to it (ie a breakout). With no via, the autorouter will only route on layer 1. If I change layer 1 to N/A then I get the error message "Unreachable smd-pad in layer 1". I am using a grid size of 0.1mm with parts on the grid and a routing grid of 0.1mm. I've also tried finer resolution for both with no difference in results. I've also set the cost of layer 1 to 10 (inner layers set to 1) but no change in results (only routes on layer 1).
Q1 What am I missing? Is there some limitation with the autorouter inserting vias?
Given that vias must be present in order for the autorouter to apply routes to inner layers, I want to use a .ulp to automatically create the bga breakout. I've tried "route-bga.ulp" but am not quite satisfied with the results. I don't want the 'hanging' traces, just the route from ball to via. And I want a different breakout pattern, whereby the balls in the NW quadrant have breakout routes with a NW angle. And likewise in the other quadrants. This leaves a cross shaped channel in the middle of the part for additional bypassing.
Q2 Are there any other bga breakout ulp's available? Has any modified "route-bga.ulp" for different breakout pattern and no inner layer routes?
Thanks for any help on this.

