Meander with components

Meander with components

weasdown
Contributor Contributor
2,262 Views
7 Replies
Message 1 of 8

Meander with components

weasdown
Contributor
Contributor

I am designing a microcontroller breakout board with a microcontroller that has a USB differential pair that needs series resistors. I have added the resistors to my board but now need to make the two overall traces the same length. I've tried the meander tool, but it doesn't seem to like the fact that I have the resistors in the way and will only let me meander a single trace at a time, rather than adjusting both halves of the differential pair and showing the percentage lengths (see attachment 1). If I remove the resistors, it happily lets me meander both sides (see attachment 2). How can I use meander on both sides of the differential pair on both sides of the resistors to make sure that my full lengths from the USB connector to the microcontroller are the same?

 

Thanks in advance.

Reply
Reply
0 Likes
Accepted solutions (1)
2,263 Views
7 Replies
Replies (7)
Message 2 of 8

rachaelATWH4
Mentor
Mentor

@weasdown wrote:

I am designing a microcontroller breakout board with a microcontroller that has a USB differential pair that needs series resistors. I have added the resistors to my board but now need to make the two overall traces the same length. I've tried the meander tool, but it doesn't seem to like the fact that I have the resistors in the way and will only let me meander a single trace at a time, rather than adjusting both halves of the differential pair and showing the percentage lengths (see attachment 1). If I remove the resistors, it happily lets me meander both sides (see attachment 2). How can I use meander on both sides of the differential pair on both sides of the resistors to make sure that my full lengths from the USB connector to the microcontroller are the same?

 

Thanks in advance.


 

So, firstly in the version where you have the resistors in the way, you have not routed those as a differential pair. You need specific trace width AND gap for them to have the correct differential impedance.

 

I suspect it's not treating it as a diff pair when you have resistors in the way because on that side of the resistors it no longer has the _N/_P suffixes.

 

Best Regards,

 

Rachael

Reply
Reply
0 Likes
Message 3 of 8

weasdown
Contributor
Contributor

Thanks for getting back to me Rachael.

 

Do you mean by using a net class? I saw that mentioned in the tutorial here but didn't really understand how it was useful, as all my traces will have the same width anyway and the example in the tutorial doesn't make use of the clearance option.

 

I have actually used the name tool to ensure that I have a differential pair on both sides of the resistors. On one side I've called them D_P and D_N (Data + and -) and on the other side they're DD_P and DD_N (Data Downstream + and -), but the issue still persists.

Reply
Reply
0 Likes
Message 4 of 8

rachaelATWH4
Mentor
Mentor

@weasdown wrote:

 

Do you mean by using a net class? I saw that mentioned in the tutorial here but didn't really understand how it was useful, as all my traces will have the same width anyway and the example in the tutorial doesn't make use of the clearance option.


 

So using a net class is the easiest way to do it. Basically you usually want a differential pair to have a specific impedance for each trace but also the differential impedance of the two traces which is why both the track width and the gap between them should be controlled, also the lengths need to be matched as accurately as possible with the matching done as close to the source end of the signal as possible so the two halves of the signal are matched along the length of the trace. If not it will not be working as a differential pair and your signal integrity may be compromised which depending on the application may cause things to not work correctly. 

 


@weasdown wrote:

 

I have actually used the name tool to ensure that I have a differential pair on both sides of the resistors. On one side I've called them D_P and D_N (Data + and -) and on the other side they're DD_P and DD_N (Data Downstream + and -), but the issue still persists.


 

Are you using 9.4? If so have you turned on the differential routing mode? It's changed in this release. In earlier versions before the latest routing updates, it would automatically start routing as a diff pair just by having the presence of the _N/_P suffixes, but with 9.4 you need to right click on the route icon and select differential mode as this is now a much more powerful tool with object avoidance and push&shove capability as well as much better via handling.

 

Best Regards,

 

Rachael

Reply
Reply
0 Likes
Message 5 of 8

weasdown
Contributor
Contributor

I see, thanks.

 

Yes, I'm using 9.4.1 and have been using the new differential routing tool.

Reply
Reply
0 Likes
Message 6 of 8

weasdown
Contributor
Contributor

Is anyone able to provide some further support on this? Any help would be appreciated.

 

Thanks.

Reply
Reply
0 Likes
Message 7 of 8

rachaelATWH4
Mentor
Mentor
Accepted solution

@weasdown wrote:

Is anyone able to provide some further support on this? Any help would be appreciated.


 

If you set it up like a diff pair and route it like a diff pair it will meander like a diff pair. Here is an example I just made to prove it works:

 

Schematic:image.png

 

Board:

image.png

 

Literally all I did to make this work was name the signals correctly, use a net class to make sure it's got the correct routing properties (width/gap), and route it with the differential router tool selected and you can see, it works fine.

 

Best Regards,

 

Rachael

 

 

Reply
Reply
0 Likes
Message 8 of 8

weasdown
Contributor
Contributor

Thanks.

 

With some more playing about with it, I eventually managed to get the lengths to meander to 100% on both sides of the resistors. I think the problem I'd been facing was on one side of the resistors, the lengths were too similar before meandering, so the meander kept overshooting. I tweaked one of the traces to make it significantly longer, which enabled meander to add a suitable length to the other side to make the two the same length. Then I just used " run length-freq-ri" to confirm the equal lengths.

Reply
Reply
0 Likes