• 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. Extract information from pins of a certain spacing class...

Stats

  • Replies 1
  • Subscribers 159
  • Views 12580
  • Members are here 0
More Content

Extract information from pins of a certain spacing class property

mesaman000
mesaman000 over 12 years ago

Hi everyone,

    From my previous post I've found out how to color pads and vias of the certain spacing class that I'm looking for.  As the title states, now I'm trying to extract and print information from those nets to a report.  Basically I want to parse through all of the nets and filter out/select all of the pads/pins with that spacing class property which I do by using this code:

  axlClearObjectCustomColor(axlDBGetDesign() ->nets)

;Select all nets/pins

axlSetFindFilter( ?enabled (list "noall" "pins"  "invisible")  ?onButtons (list "pins"))

axlAddSelectAll()

pins = axlGetSelSet()

 

  

csetNets1 = axlSelectByProperty("net", "SPACING_CONSTRAINT_SET", "TYPE1")

;;Extract which nets have the spacing class property "TYPE1"

cset1_pins = setof(pin, pins, member(pin ->net, csetNets1))

 

 ...

etc. 

From there I want to  take csetx_pins and print them out to a report.. I want the report to look like this:

**********************

Report

**********************

 

CurrentTime : Mar 25 09:31:46 2013 

 

Pin name x coord        y coord Mirrored? Rotation            SPAC_CLASS PAD_NAME Net_name

==================================================================================================================================

Q7.2 58.5 23.0 NO  270 degrees TYPE1 SR061X046 CONT_+3.3V

C1807.2 26.0 23.0 NO  270 degrees TYPE1 SR110X100 CONT+5V

Q2.1  42.0 23.0 NO  270 degrees TYPE2 SO220X064 GND

 

Q3.2 58.5 23.0 YES  270 degrees TYPE1 SR061X046 CoNT_+3.3V

C17.2 26.0 23.0 YES  270 degrees TYPE2 SR110X100 CONT+5V

Q9.1  42.0 23.0 YES  270 degrees TYPE3  SO220X064 GND

 
As you can tell I'd like the report sorted by the mirrored property first to determine which pins are on the back of the board and the front of the board.  Then I'd like to sort the report by spacing class (TYPE1, TYPE2, TYPE3)
 
 

 Here's what I have so far:

===================================================================== 

 cl_file = outfile("net_list.rpt" "w")

; ------ Print Header 

fprintf(cl_file "**********************\n")

fprintf(cl_file "Report\n")

fprintf(cl_file "**********************\n\n")

; ------  Print CurrentTime

fprintf(cl_file "CurrentTime : %s \n" getCurrentTime())

 

; ------  Print column headers

fprintf(cl_file "Pin name \t x-coord \t y coord \t Mirrored? \t Rotation \t Spacing class \t Pad type \t Net name\n")

fprintf(cl_file 

"====================================================================================================================================\n")

design_dbid=axlDBGetDesign()

l_comp_dbids=design_dbid->components

 

foreach(comp_dbid l_comp_dbids

ref_des=comp_dbid->name

symbol_dbid=comp_dbid->symbol

xy_loc=symbol_dbid->xy

;pins= symbol_dbid->component->pins

mirrorstatus=symbol_dbid->mirrorType

rotationstatus=symbol_dbid->rotation

;padid=axlDBGetPad(symbol_dbid,"ETCH/TOP","REGULAR")

 

fprintf(cl_file "%s \t\t %L\t\t %s\t\t %4.0f degrees \n" ref_des xy_loc mirrorstatus rotationstatus)

)

close(cl_file)

 
Can anyone help guide me in a more efficient direction because it seems like this is not the most efficient method..
 
 
Thank you very much! 
  • Sign in to reply
  • Cancel
  • fxffxf
    fxffxf over 12 years ago
    From an efficiency standpoint look at the following:
    1. get all nets  axlDBGetDesign()->nets
    2. for a net, get all pins on the net use the API: axlPinsOfNet(net 'pin)
    3. cset assigned to net (this assumes you have a dbid of a net assigned to a variable "net")
    net->prop->SPACING_CONSTRAINT_SET

    You would need to do more work get to the spacing cset is assigned using groups (netclass, bus, diffpair, etc.) For example, you place the nets into NetClass' and then assign the spacing cset at the net class level. You can use

           axlNetClassGet(...)

    after step 2 and then get the  SPACING_CONSTRAINT_SET off of the netclass

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • 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