• 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 Design
  3. Running Cadence Virtuoso in command line without GUI

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 125
  • Views 28892
  • 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

Running Cadence Virtuoso in command line without GUI

Naveen16
Naveen16 over 6 years ago

 Hi, I have a question on how to perform SKILL functions in command line mode. 

What I want to do is to

(1) start cadence with no GUI.

(2) perform a series of SKILL function (defined in a do file) such as adding tech file to a library, adding layers.

(3) quit cadence

Heard that virtuoso -nograph option would work but it looks like I need to setup some unix environment variables to make that command work. Not sure what environment variable should I be adding in .kschrc files. Can anyone help?

Thanks.

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 6 years ago

    I don't see why you should need to set up any UNIX environment variables to run "virtuoso -nograph". Essentially what you are trying to do could be done with "virtuoso -nograph -restore code.il". Potentially you could use the lighter "dbAccess" (e.g. dbAccess -load code.il).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Naveen16
    Naveen16 over 6 years ago in reply to Andrew Beckett

    Thank You Andrew. It did work for me.

    I am able to run the virtuoso in no GUI mode and I am trying to load a skill file with some skill commands for loading files and attaching techfile to libraries

    I am using the techBindTechFile function in the SKILL file.

    techBindTechFile(ddCreateLib("MANUAL") "Techlib" "tech.db" t)

    techBindTechFile(ddGetObj("PCELLS") "Techlib" "tech.db" t)

    exit

    But I am getting the warnings as below,

    \w *WARNING* (TECH-2000010): techBindTechFile: nil is an invalid ID. The valid ID is dbCellViewId or ddId for a cell or library. Specify the valid ID and rerun the function.

    \w *WARNING* (TECH-2000010): techBindTechFile: nil is an invalid ID. The valid ID is dbCellViewId or ddId for a cell or library. Specify the valid ID and rerun the function.

    But if I load the same file after opening the cadence with GUI it attaches the techfile to library. So I am wandering what differently should I be doing for attaching the tech file in no GUI mode.?

    Any advice??

    Thanks,

    Naveen

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Naveen16
    Naveen16 over 6 years ago in reply to Andrew Beckett

    Thank You Andrew. It did work for me.

    I am able to run the virtuoso in no GUI mode and I am trying to load a skill file with some skill commands for loading files and attaching techfile to libraries

    I am using the techBindTechFile function in the SKILL file.

    techBindTechFile(ddCreateLib("MANUAL") "Techlib" "tech.db" t)

    techBindTechFile(ddGetObj("PCELLS") "Techlib" "tech.db" t)

    exit

    But I am getting the warnings as below,

    \w *WARNING* (TECH-2000010): techBindTechFile: nil is an invalid ID. The valid ID is dbCellViewId or ddId for a cell or library. Specify the valid ID and rerun the function.

    \w *WARNING* (TECH-2000010): techBindTechFile: nil is an invalid ID. The valid ID is dbCellViewId or ddId for a cell or library. Specify the valid ID and rerun the function.

    But if I load the same file after opening the cadence with GUI it attaches the techfile to library. So I am wandering what differently should I be doing for attaching the tech file in no GUI mode.?

    Any advice??

    Thanks,

    Naveen

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Naveen16

    Hi Naveen,

    The most likely explanation is that you're running the "virtuoso -nograph" session in the wrong working directory, and you don't have permission to create the library in that directory - for the first call. For the second one, the library presumably is not in the cds.lib in that directory.

    Perhaps you should get your code to print out:

    printf("WORKINGDIR=%s\n" getWorkingDir())
    printf("KNOWN LIBRARIES: %L\n" ddGetLibList()~>name)

    Regards,

    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