• 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. Run a shell command through ipc in a specified director...

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 143
  • Views 7454
  • 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

Run a shell command through ipc in a specified directory

Martinsh
Martinsh over 2 years ago

I'd like to run CDLout with a skill script. An si.env setup file is created in directory ~/simulation. So I'd like to run the command "si -cdslib cds.lib -batch -command netlist > si.log" in ~/simulation directory.

My understand, ipcBeginProcess("si -cdslib cds.lib -batch -command netlist > si.log" ) will run the si command in current directory, not ~/simulation, and can't access the si.env file in ~/simulation directory.

Then how to run the "si -cdslib cds.lib -batch -command netlist > si.log" command through ipc to access the si.env file in ~/simulation directory?

Regards,

Martin

  • Cancel
Parents
  • AurelBuche
    AurelBuche over 2 years ago

    Hi Martin,

    As long as you are running shell commands, why don't you just do a cd command before the si one ?

    ipcBeginProcess("cd ~/simulation ; si -cdslib cds.lib -batch -command netlist > si.log" )

    Cheers,

    Aurel

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to AurelBuche

    Or simpler still, just give the run directory to the si command (since it supports that; see "si -help"):

    ipcBeginProcess("si ~/simulation -batch -command netlist > si.log")

    You don't need to pass the -cdslib necessarily (since the the default would be to pick up cds.lib), but if you did it the way that Aurélien suggested, you'd need to pass -cdslib and give the full path to the cds.lib in the working directory that Virtuoso is running in.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to AurelBuche

    Or simpler still, just give the run directory to the si command (since it supports that; see "si -help"):

    ipcBeginProcess("si ~/simulation -batch -command netlist > si.log")

    You don't need to pass the -cdslib necessarily (since the the default would be to pick up cds.lib), but if you did it the way that Aurélien suggested, you'd need to pass -cdslib and give the full path to the cds.lib in the working directory that Virtuoso is running in.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Martinsh
    Martinsh over 2 years ago in reply to Andrew Beckett

    Hi Andrew, Aurel,

    Thanks. Both of the ways work well. But there is another problem. If I run 

    si ~/simulation -batch -command netlist > si.log

    in a terminal, the netlist process is fast and need time of ~1s to complete. But if I run it through skill ipc command, as

    cid1 = ipcBeginProcess("si ~/simulation -batch -command netlist > si.log")

    ipcWait(cid1)

    it will take much more time, ~10s. Before the netlist process complete, it reports two times of

    Waiting for ipc:518 to terminate

    Waiting for ipc:518 to terminate

    What's the problem? How to solve it?

    Regards,

    Martin

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to Martinsh

    Martin,

    No idea - I can't think of any particularly good reason why this should take any different amount of time. Is there any clue in the si.log file?

    Perhaps you could contact customer support?

    Andrew 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Martinsh
    Martinsh over 2 years ago in reply to Andrew Beckett

    Hi Andrew,

    Restart virtuoso solves the problem.

    Regards,

    Martin

    • 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