• 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. Custom IC SKILL
  3. Finding all instances connected to net and pin names

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 143
  • Views 19556
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Finding all instances connected to net and pin names

rotanudad
rotanudad over 6 years ago

Hello, I wish to find all instances which connect to a net/pin name. What I've tried so far:

valid_nets=dbFindNetByName(cv pin_name)

valid_terms=dbFindTermByName(cv pin_name)

CurrTerm=nil

if(valid_nets&&valid_terms then

  CurrTerm = append( valid_nets~>instTerms valid_terms~>nets->instTerms )

else

if( valid_terms then

  CurrTerm = valid_terms~>nets->instTerms

) if( valid_nets then

  CurrTerm = valid_nets->instTerms

)

)

foreach(instTerm CurrTerm

  mylib=instTerm~>inst~>libName

  mycell=instTerm~>inst~>cellName

  cell=ddGetObj(mylib mycell)

...

However this does not get me all the cell instances in my current view... (missing certain instances as well as duplicate cellviews) as well, I need to get the name of the connected net from the current instance into the found instance(external net name to internal net name).

Thanks

  • Cancel
Parents
  • Marben
    Marben over 6 years ago

    Hi rotanudad,

    This was solved a long time ao.

    Try to search in google is useful.

    Anyway, code is like this.


    /*************************************************************************************************************
    Purpose       : Displays an elemements lists that are connected in a selected net or wire  in the schematic
                    and higlights all its connection. It can be use for tracing connections in schematic.
    Process       : Any process
    Environment   : VXL schematic editor , this skill file can also be run in VXL layout editor.
    How to run    : 1.Enter in CIW, load("/home/marben/SKILL_VXL/net_connections.il")
                    2.Select a portion of net or wire in the schematic window, then press 2 in the keyboard.
                    3.All elements connected to that net will be automatically displayed in a text file,
                      netConnection_layout.txt will be automatically created in user's VXl directory.
    Function Name : net_selected()
    Language      : SKILL
    Date created  : January 8, 2019
    Author        : Marben F. Orallo  
    Added         : creates a net probe

    *************************************************************************************************************/




    ;hiSetBindKey("Command Interpreter" "<Key>2" "net_selected() ")
    hiSetBindKey("Layout" "<Key>2" "net_selected()")
    hiSetBindKey("Schematics" "<Key>2" "net_selected()" )




    procedure(select_side()
     foreach(fig geGetSelSet()
      net=fig~>net              
     ) ;for
                  
    foreach(fig net~>figs geSelectFig(fig))  )              





    procedure(net_selected()
     csh("touch ./netConnection_layout.txt")
     outPort = outfile("./netConnection_layout.txt")
     foreach(fig geGetSelSet()
      net=fig~>net
      when(net
       printf("net %s is connected to\n" net~>name)
       foreach(instTerm net~>instTerms
        printf("%s.%s " instTerm~>inst~>name instTerm~>name)   
       ) ;for
      printf("\n")
      ) ;when
         
      fprintf(outPort "\n     Net \"%s\" schematic connection are :\n" net~>name )
      ;fprintf(outPort "net %s is connected to\n" net~>name)  
           
      foreach(fig geGetSelSet()
       net=fig~>net
       when(net      
        foreach(instTerm net~>instTerms
         fprintf(outPort "     Pin %s of instance name %s , cellname = %s \n"  instTerm~>name instTerm~>inst~>name instTerm~>inst~>cellName)
         ;geEnterAddNetProbe( hiGetCurrentWindow() nil net~>name)
         geAddNetProbe( hiGetCurrentWindow() nil net~>name)

        );for
       ) ;when
      ) ;for
     ) ;for

          
     ; start of outport   
     fprintf(outPort "    \n\n\n        <<<------------------------------------------>>>" )   
     fprintf(outPort "    \n\n               End of schematic net connection list . " )   
     fprintf(outPort "    \n\n        <<<------------------------------------------>>>" )
     close( outPort)
     ;view("./netConnection_layout.txt" list(0:0 500:500) "SCHEMATIC NET CONNECTION")
     ; edit("./netConnection_layout.txt")
     ;hiRegTimer("system("open_net_selected")" 100)
     sleep(3)
     system("gedit netConnection_layout.txt &")
     ; End of outport
     select_side()

    ) ;proc


    Hope it helps,

    Best regards,

    Marben

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Marben

    One other thought - if this is a schematic, there's a new function schTraceNet in IC618/ICADVM181 which could solve this problem...

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Marben

    One other thought - if this is a schematic, there's a new function schTraceNet in IC618/ICADVM181 which could solve this problem...

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • sarahfino
    sarahfino over 6 years ago in reply to Andrew Beckett

    A video on how to use schTraceNet "Probing and Calculating the Area of a Net using schTraceNet" is available on COS. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

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