• 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 make a default for Plugins Simulation as other

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 143
  • Views 8646
  • 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 make a default for Plugins Simulation as other

TonyTang
TonyTang over 3 years ago

Hello,

I want to let schematic menu "Launch-->Plugins-->Simulation-->Other" as a default active for "Simulation". 

While I open a new schematic, the number of "\&Simulation10" will be changed if I check "schematicTools->PluginSlider->??" in CIW. 

Is there any way to trigger it while open any schematic view?

Thank you!

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago

    This would do it:

    procedure(CCFaddOtherPluginTrigger(args)
      deInstallPlugin(args->window "Other")
    )
    
    deRegUserTriggers("schematic" nil nil 'CCFaddOtherPluginTrigger)
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • TonyTang
    TonyTang over 3 years ago in reply to Andrew Beckett

    Hi Andrew,

    Work well, Thank you so much!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • TonyTang
    TonyTang over 3 years ago in reply to Andrew Beckett

    Hi Andrew,

    One more question continue this, I want to let "Netlist and Simulate" form auto update field like "lib name, cell name" for current schematic cell. 

    I try below code, but not work as my understand. I hope to trigger a skill after "Netlist and Simulate"  form pupup. 

    I know if set a bindkey can achive it. But I hope to work it by menu way not from bindkey. Thanks for your kindly support. 

    procedure(Update_simRunNetAndSim()

         let((lib_name cell_name)

         lib_name=hiGetCurrentWindow()->cellView->libName

         cell_name=hiGetCurrentWindow()->cellView->cellName

         simRunSimAndNetForm->simFormSimLibName->value= lib_name

         simRunSimAndNetForm->simFormSimCellName->value= cell_name

         )

    )

    procedure(simTrigger())

      when(hiIsFormDisplayed(simRunSimAndNetForm)

       Update_simRunNetAndSim()

    )

    )

    deRegUserTriggers("schematic" nil nil 'simTrigger)

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to TonyTang

    I've not really done much customisation of this interface (we don't have too many customers using this old simulation interface), but at the very least your trigger is not defined with the required args argument which is a disembodied property list. So it will fail (silently) with an error and nothing will happen.

    I did do this - which seems to work. It does the initialisation at schematic open time (not at the time of launching the netlist/simulate menu), and I think it works. Note that it also sets a few variables because if the run directory is already initialised it picks up settings from there. I haven't really tested this to check what the full consequences are, so if this doesn't work you should contact customer support.

    procedure(CCFaddOtherPluginTrigger(args)
      deInstallPlugin(args->window "Other")
      when(boundp('simRunSimAndNetForm)
        simRunSimAndNetForm->simFormSimLibName->value=args->libName
        simRunSimAndNetForm->simFormSimCellName->value=args->cellName
        simRunSimAndNetForm->simFormSimViewName->value=args->viewName
        simLibName=args->libName
        simCellName=args->cellName
        simViewName=args->viewName
      )
    )
    
    deRegUserTriggers("schematic" nil nil 'CCFaddOtherPluginTrigger)

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • TonyTang
    TonyTang over 3 years ago in reply to Andrew Beckett

    Hi Andrew

    It works perfectly as what I want. Thank you so much!

    • 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