• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Allegro X PCB Editor
  3. Create a report for extracting the information of min track...

Stats

  • State Suggested Answer
  • Replies 6
  • Answers 2
  • Subscribers 162
  • Views 11215
  • Members are here 0
More Content

Create a report for extracting the information of min track width and min spacing

Ramadas
Ramadas over 3 years ago

How to create a report for extracting the information of minimum track width and minimum spacing information in the PCB editor?

  • Sign in to reply
  • Cancel
Parents
  • steve
    0 steve over 3 years ago

    Look at Tools - Reports, there is a list of default reports which may help but if not click on New/Edit and you can choose which items you want to add to a report template.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Reply
  • steve
    0 steve over 3 years ago

    Look at Tools - Reports, there is a list of default reports which may help but if not click on New/Edit and you can choose which items you want to add to a report template.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Children
  • Ramadas
    0 Ramadas over 3 years ago in reply to steve

    Thanks for the response, I have tried that option, but I am not getting any options for adding minimum track width and minimum spacing in the report. Which database do I want to choose for getting the options like minimum track width and minimum spacing?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • DavidJHutchins
    0 DavidJHutchins over 3 years ago in reply to Ramadas

    The extracta/report functionality is based upon reading the Allegro database,

    however the minimum track width and minimum spacing values are stored in the 'constraint' data, which I think is accessible only using skill

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • DavidJHutchins
    0 DavidJHutchins over 3 years ago in reply to DavidJHutchins

    Below is some skill code that will scan the constraints to find the minimum width & spacing values...

    procedure(min_width_space() let((min_width min_gap phys_width phys_gap phy_csets spc_list sps_csets data) ;# phy checks (min_width = 9999.999) (min_gap = 9999.999) ;#(phys_list=axlCNSGetPhysical(nil nil nil)) (phys_width=list('neckwidth_min 'width_min)) (phys_gap=list('dp_min_gap 'dp_neck_gap 'dp_primary_gap)) (phys_csets = axlCnsList('physical)) foreach(cset phys_csets when(equal(cset "DEFAULT") (cset="")) foreach(chk phys_width foreach(subclass axlSubclassRoute() (data = axlCNSGetPhysical(cset subclass chk)) when(and(realp(data) greaterp(data 0.0) lessp(data min_width)) axlMsgPut("cset %s chk %L old=%f new=%f" cset chk min_width data) (min_width = data) ) ) ) foreach(chk phys_gap foreach(subclass axlSubclassRoute() (data = axlCNSGetPhysical(cset subclass chk)) when(and(realp(data) greaterp(data 0.0) lessp(data min_gap)) axlMsgPut("cset %s chk %L old=%f new=%f" cset chk min_gap data) (min_gap = data) ) ) ) ) ;# spc checks (spc_list = axlCNSGetSpacing(nil nil nil)) (spc_csets = axlCnsList('spacing)) foreach(cset spc_csets when(equal(cset "DEFAULT") (cset="")) foreach(chk spc_list foreach(subclass axlSubclassRoute() (data = axlCNSGetSpacing(cset subclass chk)) when(and(realp(data) greaterp(data 0.0) lessp(data min_gap)) axlMsgPut("cset %s chk %L old=%f new=%f" cset chk min_gap data) (min_gap = data) ) ) ) ) (axlMsgPut "Min_Width %f Min_Gap %f" min_width min_gap) ) )

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Yuva09
    0 Yuva09 over 1 year ago in reply to DavidJHutchins

    I saved this skil fil with *.il , then what is the axlCmdRegister("XXXX", 'XXXXX") for run this skil

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • DavidJHutchins
    0 DavidJHutchins over 1 year ago in reply to Yuva09

    there are couple of comment strings in the original posting that cause problems, a new version is included below from the file 'min_width_space.ils'

    procedure(min_width_space() let((min_width min_gap phys_width phys_gap phy_csets spc_list sps_csets data) (min_width = 9999.999) (min_gap = 9999.999) (phys_width=list('neckwidth_min 'width_min)) (phys_gap=list('dp_min_gap 'dp_neck_gap 'dp_primary_gap)) (phys_csets = axlCnsList('physical)) foreach(cset phys_csets when(equal(cset "DEFAULT") (cset="")) foreach(chk phys_width foreach(subclass axlSubclassRoute() (data = axlCNSGetPhysical(cset subclass chk)) when(and(realp(data) greaterp(data 0.0) lessp(data min_width)) axlMsgPut("cset %s chk %L old=%f new=%f" cset chk min_width data) (min_width = data) ) ) ) foreach(chk phys_gap foreach(subclass axlSubclassRoute() (data = axlCNSGetPhysical(cset subclass chk)) when(and(realp(data) greaterp(data 0.0) lessp(data min_gap)) axlMsgPut("cset %s chk %L old=%f new=%f" cset chk min_gap data) (min_gap = data) ) ) ) ) (spc_list = axlCNSGetSpacing(nil nil nil)) (spc_csets = axlCnsList('spacing)) foreach(cset spc_csets when(equal(cset "DEFAULT") (cset="")) foreach(chk spc_list foreach(subclass axlSubclassRoute() (data = axlCNSGetSpacing(cset subclass chk)) when(and(realp(data) greaterp(data 0.0) lessp(data min_gap)) axlMsgPut("cset %s chk %L old=%f new=%f" cset chk min_gap data) (min_gap = data) ) ) ) ) (axlMsgPut "Min_Width %f Min_Gap %f" min_width min_gap) ) )

    below is the allegro journal file entries showing it's usage:

    \i (00:09:03) skill 'load "min_width_space.ils"'
    (00:09:03) t
    \i (00:09:05) skill 'load "min_width_space.ils"'
    (00:09:05) variable min_width_space redefined
    (00:09:05) t
    \i (00:09:20) skill min_width_space
    \t (00:09:20) cset POWER chk neckwidth_min old=9999.999000 new=4.000000
    \t (00:09:20) cset 4MIL_FANOUT chk neckwidth_min old=4.000000 new=3.600000
    \t (00:09:20) cset 4MIL_FANOUT chk neckwidth_min old=3.600000 new=2.800000
    \t (00:09:20) cset 4MIL_FANOUT chk dp_neck_gap old=9999.999000 new=4.000000
    \t (00:09:20) cset 85OHM_DIFF chk dp_min_gap old=4.000000 new=3.490000
    \t (00:09:20) Min_Width 2.800000 Min_Gap 3.490000
    (00:09:20) t

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Cadence Guidelines

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information