unfortunately, I have a hard time routing differential pairs, too.
For me, it helps to set the grid to the smallest possible option and then try to route them. I try to always route away from the pads, else you get an ugly routing like in your first picture. But connecting both pairs together is then the hard part.
Sometimes I got so frustrated, that I route two single traces together, but I only have PCIe 1.0 and Gigabit Ethernet on my board. For faster signals, that may not work.
So, in the end I always get a differential pair, but it isn’t a smooth process.
EDIT: I think the “freezing”, which I also see, comes from the DRC while routing.
The differential pair router has quite a big problem in connecting two ends of a wire. I usually have to fight and be very cautious to not set a fixed part of the pair I route at this moment to the point where it should be connected. If the distance between the last set point and the connection point is big enough the router normally is able to connect both, at least for me. What also helps is to make sure the last fixed point is centered on the same x/y coordinate as the connection point.
Making turns with differential pairs is hard since maybe DRC is not allowing us to place them in that specific place/position/shape, but we don’t have much visual feedback from the router on that, I feel.
Also, the same happens with placing differential pair vias. Sometimes is quite hard to place them since, for some reason, they are not being allowed, and the feedback to the user is not quite communicative.
I came up with this approach using 3 steps, similar to what @Tojan said.
I route differential the pair (6) close to the pins, but not too close, and then I place the vias (v).
After I route from the pins to the vias, ending before trying to connect them. Them I route using single traces (x) from this end to the via.
To have more balanced traces in the end, vias can be moved centralizing vertically (in this case) with the pads before steps #1 and #2
Vias can be moved close to the pins, before step #2, by removing the 2 last sections of the red traces since they were routed using single trace mode (x). Blue traces have to be increased too.
I thought it could come from the complexity of the board. But DRC does not help too since it is closely related.
Do you have an idea if is it possible to improve this? Is it possible to disable DRC while routing differential pair traces?
I have done some differential routing. It is not too easy perhaps because I don’t know all the settings which could make this easier. Corner mode is one problem, if the rule allows only 45 degree corners, and so on. Making turns is not easy either, I get extra kinks by accident but corners do not always come where I want.
Sometimes I think my machine is too slow, when everything seems to freeze. Sometimes it help if I click to show to the router that I am happy so far.
Zooming closer sometimes helps too with connecting ends. And sometimes I just do “the last mile” by hand for each track separately.
You need plenty of room to get vias and really for the whole differential pair.
I do not have any clear advise, except practise/trial and error. There seems to be some helpful settings which are not on on default.
Do you mean, the rastnets are switched? I saw some pairs switched but it is normal, I think. It depends on the IC, I think. Or if you are using custom symbols/footprints you may check if the pins on both matches. And also check if you are not connecting them wrong.
Another interesting fact is that I saw I could pain ratsnest. Then I made this group blue. Like the ones above. But when you are routing DifPais they have to appear Blue and Red, if they appear both the same color, for me, Blue, then it looks like something is wrong in that traces… it is better to remove it and start again.
Ah, maybe the second thing that may be related to what you said @LM21 is that sometimes when I start routing from let’s say _P trace, then it does not end when I connect a pad with _P. But instead ends when I click the pad with _N.