can we change the routing angle using skill, currently we can change it to "off, 45, 90", is there a setting in allegro that we need to change so we can route signal using other routing angle like "10"
Hi,I don't think that is possible. axlSetLineLock only allows 45, 90 or 0 (off).What is your application? I may be able to help if I know what you are trying to do.Cheers, Dave
Dave,thanks for the reply, I'm doing layout (Allegro 15.2~15.7), currently we have some issues about the fabrication of our PCB and Differential Signals/High Speed signals (Fiber Weave Mitigation), in order minimize these effects we need to route high speed signals skewed against the fiber weave of our board, or route high speed signals with at least 5~10 degrees routing angle thanks
Hi,Well, it''s got me stumped. Ithe only way I can think of to achieve this via Skill is to re-write the route command. Probably not a very desirable solution. Another alternative may be to ask your fabricator to place your boards at an offset to the weave - or use a laminate where this effect has been reduced.Sorry I can't be of more help.Cheers, Dave
Could you route these special traces manually (using 0/45/90) then use a SKILL routine to skew them by the desired angle?But having the fabricator build the skew directly into the board sounds like the right solution - transparent to the designer and the skew applies to all traces.Keep us apprised and Good Luck,Chris Walterslocal Cadence guru()PS - anyone know of a position for a(nother) Cadence guru?
Hi,"Could you route these special traces manually (using 0/45/90) then use a SKILL routine to skew them by the desired angle?" -- i was hoping that somebody can come up on how we could materialze this idea using skill, as for the skewing the board during fabrication may have some problems, especially when the required sigals to be routed with angle are high speed signals only and we are dealing with multi layered boardsthanks
I'm trying to visualise a design with some traces skewed. Do you mean something like the attached?
If you manually routed a 'stairstep' trace from point A to point BA---- | ------ | ------ Ba routine could then skew the segments from 0/270 to 350/260, yes.Your path is now slightly shorter, which might cause other concerns.Naturally, more-complex paths would require more-complex code to achieve the goal. Something like a semicircleA-------- | ------ | | ------ |B -------would require 'breaking' the vertical segment at the midpoint to yield two smaller segments that canbe skewed, one tilted backwards the other forwards. Or maybe we're overcomplicating the problem? If you are routing these special traces manually why notsimply turn Routing Angle to 'OFF' In closing, a routine could be crafted to help you but its complexity would be in direct proportion to thecomplexity of your requirements and would definately require some fine-tuning - this is not something onecound crack out in a few hours.HTH,Chris Walterslocal Cadence guru()PS - anyone know of a position for a(nother) Cadence guru?PSS - apologies for crude ASCII artOriginally posted in cdnusers.org by kerchunk
I can think of two ways of doing this. (Neither require skill)1. Rotate the entire design 5-10 degrees, route normally (0,45,90), then rotate back.2. Create a visual grid rotated the 5-10 degrees (on an artwork layer). Then route with rotation angle off trying to stay parallel to the grid lines.
I still don't think there is currently a simple solution. I doubt that Cadence would seriously consider an "enhancement" that would allow a random line lock. There is a big mathematical difference between 45 and, say, 10 degrees as far as being able to route on grid. They effectively offer this with the "Off" option.I suggest the interim solution is to route visually and use Skill to verify the skew of critical traces. This code would be simple. Let me know if we can help.
Guys,thanks for the ideas, I'll try these ones and let you know what will be the outcome
natebizu's suggestion of rotating the design doesn't work, the database isn't accurate enough to avoid roundoff errors that intorduce hundreds of DRC errors ( 0.010" becomes 0.009999" )I used axlAddSimpleMoveDynamics() to create a 10 degree cursor to guide the user
hi guys,ive been trying to route signals witha. Routing Angle Offb. Specified grid so that every grid will at least create a 10 degree angle (x=5, y=28)c. Cursor in infinite mode with 10 degree angle for user guide*** any idea how to show 10 degree and 80 degree pcb cursor angle at the same time?result1. routing a bus is slow2. accuracy of net spacing is low*** ive seen some demo images from intels demo board and they really routed their bus group nicely(with at least high accuracy on net spacing and with jitters on it)
The angle is not so much the issue as it's easy to calculate a given angle and use "ix" to start the angle and 15.7 will maintain the direction with the right option settings. The problem is all the anomalies within the software for a tight bus path that requires a large number of diff pairs to be routed from point a to point b using the zig-zag routing shown in the above post. Dodging vias or mechanical features, finishing when copying a group of segments and connecting the beginning/end all results in unpredictable anomalies that will drive you nuts. In 15.7 they added the option to "Hug Only" in diff pair mode and while this works it has a ton of issues when you set your line lock to "off". Routing using a grid or guides may work fine if you have plenty of space, but it's not practical in high density complex designs that require dense spacing.. not too mention length matching with serpentine on odd angles.. I did log an enhancment request and found 4 other request that have also been logged, it's my hope that 16.0 will include inhancements that will address this issues.
Regarding aries question on 3/21 on the 10 & 80 degree cursor:funckey CF12 'skill (mypath=axlPathStart(list(985:174 -985:-174 -985:174 985:-174 985:174))) axlAddSimpleMoveDynamics(0:0 mypath "path" ?ref_point 0:0) (mypath=axlPathStart(list(174:985 -174:-985 174:-985 -174:985 174:985))) axlAddSimpleMoveDynamics(0:0 mypath "path" ?ref_point 0:0)'funckey CSF12 'skill (mypath=axlPathStart(list(573:820 -573:-820 -820:-573 820:573 573:820))) axlAddSimpleMoveDynamics(0:0 mypath "path" ?ref_point 0:0) (mypath=axlPathStart(list(-573:820 573:-820 820:-573 -820:573 -573:820))) axlAddSimpleMoveDynamics(0:0 mypath "path" ?ref_point 0:0)'