Re: exxos blog - random goings on
Posted: 21 Jul 2020 21:24
I have been experimenting with the autorouter with the MEGA ROM PCB.
I am of course not intending this to be a debate about manual routing boards, which is of course the best way. Though as I don't have time and can't click as much as I used to, things which I just simply need doing quick like this board, I am not going to bother to manual route it anymore. Though as the autorouter makes a huge diabolical mess all the time, I was looking into alternative ways of using it to get more respectable results.
A lot of the layouts end up breaking the power rails, the best I ultimately got it too was 41 vias.
Though the interesting thing is, if you only let it do one layer at a time it generally does a much better job ( but it is a bit more complicated than that).
For example...
Overall it did a reasonably decent job, other than on the right of the PCB it seems to "stick" to the dimensional layer. So there are a few bits which needed to be changed manually.. Routing on the bottom layer only had the remaining 20% to do.
A lot of the problems seem to be relating to the "hugging" in the initial routing. I think this is the most annoying setting in the whole thing. Hugging of course helps to keep the design compact, but this actually raises two additional problems particularly with initial routing.
Firstly, it constantly ends up with the "staircase steps" in a lot of the traces. These do generally get cleared up with some optimisation, but it never really ends up with a satisfactory result.
Secondly, compacting the traces actually makes it harder work for the autorouter to find routes because everything it has previously rooted is all compacted.
So what I have been experimenting is with the hugging off for the initial routing, and actually expanding the border of the PCB to give it some manoeuvring room. Then let it do a couple of optimisations, but then set the hugging to 1 and then let it compact the traces. Then on the final optimisation layer put it back to 0 so it will straighten up a lot of the stair case steps.
Any traces which look too chaotic, maybe like the three traces near the bottom ROM, can just simply be removed and they would get routed on the bottom layer instead.
This can also be prevented just by drawing copper areas to just simply not allow the route to even tried to route traces which we don't want...
Adding a few more optimisation passes and we can tidy it up even further...
I am of course not intending this to be a debate about manual routing boards, which is of course the best way. Though as I don't have time and can't click as much as I used to, things which I just simply need doing quick like this board, I am not going to bother to manual route it anymore. Though as the autorouter makes a huge diabolical mess all the time, I was looking into alternative ways of using it to get more respectable results.
A lot of the layouts end up breaking the power rails, the best I ultimately got it too was 41 vias.
Though the interesting thing is, if you only let it do one layer at a time it generally does a much better job ( but it is a bit more complicated than that).
For example...
Overall it did a reasonably decent job, other than on the right of the PCB it seems to "stick" to the dimensional layer. So there are a few bits which needed to be changed manually.. Routing on the bottom layer only had the remaining 20% to do.
A lot of the problems seem to be relating to the "hugging" in the initial routing. I think this is the most annoying setting in the whole thing. Hugging of course helps to keep the design compact, but this actually raises two additional problems particularly with initial routing.
Firstly, it constantly ends up with the "staircase steps" in a lot of the traces. These do generally get cleared up with some optimisation, but it never really ends up with a satisfactory result.
Secondly, compacting the traces actually makes it harder work for the autorouter to find routes because everything it has previously rooted is all compacted.
So what I have been experimenting is with the hugging off for the initial routing, and actually expanding the border of the PCB to give it some manoeuvring room. Then let it do a couple of optimisations, but then set the hugging to 1 and then let it compact the traces. Then on the final optimisation layer put it back to 0 so it will straighten up a lot of the stair case steps.
Any traces which look too chaotic, maybe like the three traces near the bottom ROM, can just simply be removed and they would get routed on the bottom layer instead.
This can also be prevented just by drawing copper areas to just simply not allow the route to even tried to route traces which we don't want...
Adding a few more optimisation passes and we can tidy it up even further...