Hello,
Designing a Rigid-FLEX.
Trying to apply 2 different width for a USB2 diff-pair: one width to be applied on the rigid parts, and a different width to be applied on the FLEX parts (as was calculated to keep the impedance 90 ohm).
I use the Custom Rules in the board Setup with the following script:
(rule “Track width in Flex”
(condition “A.NetClass == ‘USB2 DATA’ && A.intersectsArea(‘Flex’)”)
(constraint track_width (min 4.5mil) (max 4.5mil) (opt 4.5mil))
(constraint diff_pair_gap (min 4.5mil) (max 4.5mil) (opt 4.5mil))
)
I use inspect–>Constraits resolution and read this from the Constraints Report:
Checking rule condition “A.NetClass == ‘USB2 DATA’ && A.intersectsArea(‘Flex’)”.
Rule applied; overrides previous constraints.
Resolved width constraints: min 4.5 mils; opt 4.5 mils; max 4.5 mils.
Initially I routed the pair as 8 mil-width, but after applying I see no change at all…
I completely deleted the pair and re-routed it after applying the custom rule but no change… the pair is still 8mil width (each line).
Changing the rules doesn’t change existing items. Also, many rules can’t be applied in any given situation. For example when you are routing and a track you are drawing enters a rule area, the track width doesn’t change. Some rules aren’t applied while routing at all, only when running the DRC check.
Therefore you have to explain better what you are trying to achieve, what exactly you are doing, what you expect and what actually happens. For example by sharing a screencast.
Thank you.
This is a RIGID-FLEX. The FLEX part in a RIGID-FLEX comes out of the RIGID part.
For the same traces, I need a certain trace-width on the RIGID part; while a different trace-width on the FLEX part.
I’m having trouble to implement that and would love to get some help please.
Ah OK. This is a variation of neck down / neck up. We support it (ish) - the router will pick up the correct width on every segment start, but you need to be in the rule area for this to happen - it won’t bisect a track to find the point where the width should change. So it’s not perfect, but it does work.
The complexity here is routing a differential pair that needs different widths / spacing on the flex. I haven’t looked to see if neck down / up is supported with diff pairs (and I’d suspect not) - I know that another dev is doing a lot of work on diff pair routing at the moment though.
I’m afraid you’d going to have to route the two elements separately and join them together by hand. That’s what I’d do for now.