• 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. command "sevRun" or "sevRunEngine"

Stats

  • Locked Locked
  • Replies 15
  • Subscribers 144
  • Views 5885
  • 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

command "sevRun" or "sevRunEngine"

imagesensor123
imagesensor123 over 14 years ago

 Hi,

    i know that if you start analogArtist from schematic composer, the current schematic will be loaded as the current design in analogArtist, and I noticed that the analog-Artist use the command "sevRun" or "serRunEngine" to start a simulation,  and i am trying my own simulation method, like the "paramAnalysis", but  i found that when i put the sevRunEngine in my own procedure, it always prompts that "Need to select design before issuing this command" in CIW, and then i used the command "sevChooseDesign()", but this can't work well either. so here i want to make sure two points:

 1,  how to apply sevRun or sevRunEngine correctly, what's the necessary condition, such as a design?

 2,  for one thousand(this is a random value which depend on the input matrix) times parameter simulation, especially for only one parameter, what is the best way? i intend to use a loop in skill function "myOwnSim()", and in this function, i can calculate some equations. i think this way is more convenient than paramAnalysis

 welcome to any discussions,

Regards,

zfeng

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    Zfeng,

    That suggests you are trying to run with ADE simulation invocation functions without ADE actually being set up? If so, why not use the OCEAN functions instead (like calling run() repeatedly under different conditions). Your second question is very unclear - I don't actually know what you're trying to do - but presumably a loop around run() would do it.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tyanata
    tyanata over 14 years ago

     Hello,

    I have similar problem as zfeng.

    I want to create custom button on ADE which runs simulation with option +query=tokenlic. Using this option simulation stops after netlisting and in the log file is outputed the number of the token licenses.

    As we disussed in the topic for ADE buttons creation, I already scceeded to create custom button on the ADE main menu. But when try to realize simulation run, face same problem as zfen. If I copy the callback function from original file spectre.menus for the "Simulatiin"->"Run"and paste in my custom spectre.menus file as callback function in my custom buttons the response is as zfeng noted that first design has to be selsected. But if I copy the entire "Run" submenu button from "Simulation" menu, to be submenu in my custom menu, now when I type the newly created button "Run" simulation runs normally. But now I want to rename this button and to change callback function so that the simulation to be run with mentioned above option +query=tokenlic ( in GUI ADE the path of this option is "Setup"->"Environment"->"userCmdLineOption"), and after that some text file search function has to be implemented in the callback function, in the end the final output there must be the number of token licenses.

    Best regards,

    tyanata

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • imagesensor123
    imagesensor123 over 14 years ago

     Hi,

      in fact, i want simulate my session with different design value parameter, such as the "light" , i have a value matrix for this "light" parameter ,and then i want to apply each value in the matrix to the "light", so for each value in the matrix, i need to simulate my design one time, so i intend to do this in the following procedure

    procedure(zfParamAnalysis()
    for(rowNumbers 0 rows ; rows is determined by input signal

       for(columNumbers 0 colums ; colums is determined by input signal

          light=lightmatrix[rowNumbers][columNnumbers] ; we change design variable value here, don't mind this wrong syntax

          isession=asiGetCurrentSession() ;  in the following lines, i want to start the simulation, like pushing the run button 

    sevNetlistAndRun('isession)
      )
     )
    );end procedure

    the zfParamAnalysis() function will be called when pushing the user menu (zfSim) in analogArtist window. because i want to start the simulation directly by pushing zfSim, so i prefer this way. about the script, we are all sure that it can work, but a little complicate. 

    i am not clear about this sentence "That suggests you are trying to run with ADE simulation invocation functions without ADE actually being set up", i can run the simulation by push the button "run" in the current session. i think i have set up my ADE, could you please explain it again.

    Regards,

    zfeng

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • imagesensor123
    imagesensor123 over 14 years ago

     Hi,

       you have met this problem too, i think we use the function sevRun or sevRunEngine in a wrong way. For me, i just want to start the simulation by push my own menu bar, i do have done this, but it start the default run function like user push the run button in analogArtist winidow, what i really want to do can be discribed in three steps

    1, design circuit (normal work)

    2, start the analogArtist, choose the design , assign value to variable, choose analysis and output, finally run the simulation

    3,change a specified design variable value (assign a new value)  and re-simulate, the new values are all stored in a file,we need to simulate all the new values with this same design(other design varibale has no change). i want to build this method in a user menu, so i don't apply the parametric analysis tools here,

    about your problem,  i can't understand what's this meaning (option +query=tokenlic). as you mentioned, you defined your menu or button in ADE window, and copy the callback function in the spectre.menus, i want to make sure that if you add the copied function(from the original spectre.menus) to your button callback function directly or not,

    the run menu item callback functin like this (in spectre.menus)

    ("Run" ?callback (sevRun ',session) ?disable (or (sevNoEnvironment ',session) (asiGetStatus (sevEnvironment ',session))))

     i add the following line in my own menu item, it can work well

    ("myRun" ?callback (sevRun ',session) ?disable (or (sevNoEnvironment ',session) (asiGetStatus (sevEnvironment ',session))))

    so i think you can refer to my method. i also have a question about the following lines

    "But if I copy the entire "Run" submenu button from "Simulation" menu, to be submenu in my custom menu, now when I type the newly created button "Run" simulation runs normally." what's this mean?

    Regards,

    zfeng

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    Zfeng,

    OK, the problem is twofold:

    1. You are calling sevNetlistAndRun with a symbol - so this means it is always referring to a session called 'isession, not the value of the isession variable. You want sevNetlistAndRun(isession)
    2. The isession variable is the wrong type of session. You need a "sev" session, not an "asi" session. So isession=sevSession(hiGetCurrentWindow()) would do it.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • imagesensor123
    imagesensor123 over 14 years ago

     Hi,

       yes, i have misunderstood the sevSession() and asiGetCurrentSession(), i noticed that the sevSession() need a "session object" argument, such as window or form, etc... and asi session is a simulatioin session? i'm not very sure about this. what's the really difference between two "session"? i got confused very much

    Regards,

    zfeng 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tyanata
    tyanata over 14 years ago

    Hello,

    I succeeded to Run Simulations form my custom buttons using the know-how which both of you shared preparing following functions, which i callback with my buttons.

    procedure(RunNetlisSim_Custom()

        isession=sevSession(hiGetCurrentWindow())
        sevNetlistAndRun(isession)
       
     )

    procedure(RunSim_Custom()

        isession=sevSession(hiGetCurrentWindow())
        sevRun(isession)
       
     )
     

     Can you say how to implement now setting the "Setup"->"Environment"->"userCmdLineOption" to be =  "+query=tokenlic" before running the simulation?

    best regards,

    tyanata

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • imagesensor123
    imagesensor123 over 14 years ago

     Hi,

       the way which Andrew suggested is very good. i have done it. and about your question, maybe you can use envSetVal() command in your .cdsenv file, just like change viewlist see here   in this post we have discussed about it. i hope it can help you!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tyanata
    tyanata over 14 years ago

     Hello,

    The problem is that i do not want to set this option in .cdsenv file because, in that way it will be applicable for all started simulations. But I do not want to disturb the normal work of the original simulation buttons. 

    Little bit more info about this option: setting this option simulation will stop after netlisting ( if Netlist and Run is called) and in the output file the number of token licenses is outputed. So if I enter this option in .cdsenv file, no simulation can be run.

     

     In the topic which you mention there is some proposal for your question:

    asiSetEnvOptionVal( asiGetCurrentSession( ) 'switchViewList '("spectre" "schematic" "veriloga") ) 

     

    May be some thing similar must be entered in my SKILL procedure.

     

    Best regards,

     

    tyanata

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • imagesensor123
    imagesensor123 over 14 years ago
    Hi,
      another way for your problem, you can write a procedure which can load some command, just like the post i mentioned before.

    myButton(?callback "change")

    procedure(change()
    envSetVal(""); here is the form field you want to change
    )

    or load this procedure before run by adding the envSetVal() ahead of your button callback function

    Regards,
    zfeng
    • 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