• 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
  • tyanata
    tyanata over 14 years ago

    I solved my problem using following approach:

    procedure(RunNetlisSim_Custom()

        isession=sevSession(hiGetCurrentWindow())

        asiSetEnvOptionVal(asiGetCurrentSession() 'userCmdLineOption "+query=tokenlic")
        sevNetlistAndRun(isession)
        asiSetEnvOptionVal(asiGetCurrentSession() 'userCmdLineOption "")  

     )

    procedure(RunSim_Custom()

        isession=sevSession(hiGetCurrentWindow())

        asiSetEnvOptionVal(asiGetCurrentSession() 'userCmdLineOption "+query=tokenlic")
        sevRun(isession)

        asiSetEnvOptionVal(asiGetCurrentSession() 'userCmdLineOption "")      
     )

     

    Now I only have to extract data from the spectre.out file

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

    Congratulations! yes, it's a good approach! but unfortunatly, when i use this method to start my own simulation, i use it in  a loop, but it seems that it run only once, it's very strange! give me some adivce if you have ever met this problem.

    Regards,
    zfeng
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago
    Zfeng,

    Well, you wouldn't need the asiSetEnvOptionVal stuff, but I suspect your issue is down to the fact that sevRun() does not block - and hence returns as soon as the sim has been started. Subsequent sevRun calls in your loop will then probably fail because the simulation is already running.

    This is way beyond what is reasonable to support on the community forum (to be honest, ADE is not really designed to be customized this way). The OCEAN API is better suited for this kind of thing, and can handle blocking run() calls.

    As I have said on numerous occasions previously, customer support is.a better channel for this kind of in-depth question.

    Regards,

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • imagesensor123
    imagesensor123 over 14 years ago
    Hi,
       i agree with you, it looks like the sevRun() here i used is a wrong way. the following procedure is the callback function of my own simulation
    ;;zfParamAnalysis
    procedure(zfParamAnalysis()
    imageSession=asiGetCurrentSession()
    imageDataOutPath=asiGetNetlistDir(imageSession)
    times=0
    for(row 0 5
        for(col 0 5
       zfAssignNewVal(row col) ;; user process or defined function
       isession=sevSession(hiGetCurrentWindow())
       sevNetlistAndRun(isession)
        )
    times=times+1 ;; you will find "times" remains to be "0" after the simulation
    printf("%d" times) ;; the result suggestd that the loop run incrrectly, stop at the first time
     )
    );end procedure


    if  i don't use this function directly,  and use the ocean script inste! ad. a trouble will be that we need to save script manually, and need to add this function in script although it is very easy to do it. in that case we will have to generate the script instead of using the default function (sevSaveOceanScript()) or add some command in the .ocn file manually. another way is that the postSaveOceanScript and preSaveOceanScript maybe an approach to add some user command(like ours), it is also a little complicate.

    Regards,
    zfeng
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tyanata
    tyanata over 14 years ago

     As I said I solved my problem for spectre with following function:

    procedure(RunNetlisSim_Custom()

        isession=sevSession(hiGetCurrentWindow())
        asiSetEnvOptionVal(asiGetCurrentSession() 'userCmdLineOption "+query=tokenlic")
        sevNetlistAndRun(isession)
        asiSetEnvOptionVal(asiGetCurrentSession() 'userCmdLineOption "")  
     )

     

    Do you know how to modify ti to be suitable for AMS.

    I found that I have to switch on following option:

    -spectre_args "+query"

     

    Best regards,

    tyanata

     

    • 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