• 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. How to find the cell where ADE is started?

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 143
  • Views 12984
  • 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

How to find the cell where ADE is started?

tyanata
tyanata over 13 years ago

 Hello

 

I created a function which should be started with ADE-L or ADE-XL launching.

For triggering I placed envSetVal("asimenv.startup" "sessInitTrigFunc" 'string "func_name") in .cdsinit file.

 

One of the features of procedure func_name posted bellow is to find the cell name and library where the ADE-L or ADE-XL is started, no matter if it is started form Schematics or Library Manager:

 

procedure(func_name(ADE_id)

    ADE_id=hiGetCurrentWindow()
       
    if(dbGetDatabaseType() == "CDBA" then
       
        win_name_list_reversed = reverse(parseString(hiGetWindowName(ADE_id)))           
                       
        curDes = cadr(win_name_list_reversed)
        curLib = caddr(win_name_list_reversed)
        curStateID = ddGetObj(curLib curDes)
        curStatePath = ddGetObjReadPath(curStateID)
   
        command_string = strcat("./some_exe.csh " curStatePath)
           
        cid_exe = ipcBeginProcess(command_string)
        ipcWait(cid_exe 5 60)
       
        hiRaiseWindow(ADE_id)

    else
        when(!axlIsICRPProcess()
            win_name_list_reversed = reverse(parseString(hiGetWindowName(ADE_id)))
           
            curDes = cadr(win_name_list_reversed)
            curLib = caddr(win_name_list_reversed)
            curStateID = ddGetObj(curLib curDes)
            curStatePath = ddGetObjReadPath(curStateID)
       
            command_string = strcat("./some_exe.csh " curStatePath)
               
            cid_exe = ipcBeginProcess(command_string)
            ipcWait(cid_exe 5 60)
           
            hiRaiseWindow(ADE_id)
        );when
    );if
);procedure

 

 I am finding the cell name and library name manipulating the result string from hiGetWindowName command of ADE or ADE-XL window.

This approach works for IC6 because there the last three words form that command are library name, cell name and view type, but in IC5 these words are missing in the hiGetWindowName command result.

Could some body give me advice how to overcome the problem for IC5?

 

Thanks in advance!

 

tyanata

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    You can do something like this:

    procedure(YourFunc(thing)
      printf("DESIGN: %L %L %L\n" asiGetDesignLibName(thing) asiGetDesignCellName(thing) asiGetDesignViewName(thing))
    )

    In other words, use asiGetDesign*Name functions to get the design in ADE. Parsing the window name is really not a good idea, because somebody might customize it and change it - and also there's no guarantee we'll keep writing it the same way.

    Andrew.

    • 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