I have to agree that FE trial route is doing a very good job to estimate the routability in a very short time.
However, when the area is tight and double-via is a strict requirement, I thought the trial route tend to give too optimistic report. As a result, a routable placement by trial router (no congestion/routing overflow reported by trial router) may end up failure in the actual nanoRoute stage. I thought that the trial route may not actually use the double vias provided in LEF file to do its job: it always apply single cut via even there is no single cut via defined inside the LEF file. Is this observation right? If it is, how can we work-around this issue? Your opinion is highly appreciated!
Can you look at what vias trialroute is using, and tell where they are coming from?
The vias used by trialRoute are same set of vias, which come from my tech LEF file. In the trialRoute results, I saw a lot of vias are shorting to other nets. But the trialRoute report the design routable:
Remain cntH cntV
-1 0 0.00% 10 0.02%
0 1 0.00% 1587 2.43%
1 18 0.03% 7520 11.5%
When I tried the same placement with nanoRoute, I got thousands of shorts remainning. However, If I add a single cut via into my LEF file (my current LEF file ONLY have double cut cut vias), then, trialRoute and nanoRoute will give me consistant result: roughly routable ( nanoRoute will finish the route with one or two shorts).
This is an interesting problem! I've never seen a design where no single vias are allowed. My next suggestion would be to make sure you have enough kinds of double vias (north, south, east, west) to give the router the most flexibility. But I'm thinking this won't solve the entire issue. You should probably file a service request on Sourcelink.