• 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 automatically run a user defined procedure after...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 143
  • Views 14868
  • 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 automatically run a user defined procedure after creating extracted view?

fatcat1206
fatcat1206 over 8 years ago

Hi All

I have written a piece of code, to create a table which holds the design version (controlled by a third party tool) of every sub-blocks through design hierarchy.

One of the user case is to add such table from a layout view into the property of the corresponding extracted view. Then during the iteration of modifying the layout and re-create extracted view, it's always possible to trace the changes for each version of the extracted view.

Currently, I want to make this action automatically done, when creating the extracted view by using "Run PVS - QUANTUS QRC..." in the GUI.

Does anyone knows:

  • How to trigger a procedure, after creating the extracted view automatically?
  • Hot to collect the input design info from the "Run PVS - QUANTUS QRC..." setup?
  • Hot to collect the output view from the "Run PVS - QUANTUS QRC..." setup?

Best Regards

Yi

  • Cancel
Parents
  • fatcat1206
    fatcat1206 over 8 years ago

    Hi everyone.

    Thanks Cadence support and Andrew, I have completed the flow.

    Below is the summary about how I add a procedure into the normal LVS-QRC flow, it;s a two steps approch:

    1. In the PVS-LVS, "PVSPostFormTrigger()" procedure has been used to create a file containing the version info in the "rundir_pvs/<cellName>/lvs" folder
    2. In the QRC GUI, using the "Call Procedure " field to point to a .il file, which contain the "avExtractedViewCallProc()" procedure.
      Inside "avExtractedViewCallProc()", the version file has been read, and convert into a list, then save as a property of the extracted view.

    There are several things more I'd like to share with:

    1. QRC seems to be running parallel with Virtuoso, thus the procedure defined in Virtuoso cannot be seen from QRC.But PVS-LVS is running inside Virtuoso, thus I create the version file in the trigger procedure of PVS. As I need a lot of user-defined and DesignSync defined APIs.
    2. "CCLFile" in the extracted view folder, and "presetFile" in the "PVSPostFormTrigger" arguments contain a lot of useful information.
      In the link given by Andrew, and document for "Trigger Support in PVS" you may find the example about how to parse the file.
    3. The third input of "PVSPostTrigger" seems not to be "winId" as mentioned in the beginning of the document.
      In the "Example of SKILL Post Trigger", the third input is mentioned as "exitCode". It seems to be correct, and this example indeed tells you how to get the layout cellview ID. It's very useful.
    4. Somehow, I cannot view the "presetFile" of "PVSPostFormTrigger" in linux.
      So, I add a "view" command ( view( presetFile nil "Preset File" t )  ) in my "PVSPostFormTrigger" procedure to show the content of the file.
    5. In the end, both for the PVS and QRC post trigger/process, the procedure name is fixed. This may lead to potential conflict if multiple people define their own triggers.

    I hope this will help you.

    Best Regards

    Yi

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • fatcat1206
    fatcat1206 over 8 years ago

    Hi everyone.

    Thanks Cadence support and Andrew, I have completed the flow.

    Below is the summary about how I add a procedure into the normal LVS-QRC flow, it;s a two steps approch:

    1. In the PVS-LVS, "PVSPostFormTrigger()" procedure has been used to create a file containing the version info in the "rundir_pvs/<cellName>/lvs" folder
    2. In the QRC GUI, using the "Call Procedure " field to point to a .il file, which contain the "avExtractedViewCallProc()" procedure.
      Inside "avExtractedViewCallProc()", the version file has been read, and convert into a list, then save as a property of the extracted view.

    There are several things more I'd like to share with:

    1. QRC seems to be running parallel with Virtuoso, thus the procedure defined in Virtuoso cannot be seen from QRC.But PVS-LVS is running inside Virtuoso, thus I create the version file in the trigger procedure of PVS. As I need a lot of user-defined and DesignSync defined APIs.
    2. "CCLFile" in the extracted view folder, and "presetFile" in the "PVSPostFormTrigger" arguments contain a lot of useful information.
      In the link given by Andrew, and document for "Trigger Support in PVS" you may find the example about how to parse the file.
    3. The third input of "PVSPostTrigger" seems not to be "winId" as mentioned in the beginning of the document.
      In the "Example of SKILL Post Trigger", the third input is mentioned as "exitCode". It seems to be correct, and this example indeed tells you how to get the layout cellview ID. It's very useful.
    4. Somehow, I cannot view the "presetFile" of "PVSPostFormTrigger" in linux.
      So, I add a "view" command ( view( presetFile nil "Preset File" t )  ) in my "PVSPostFormTrigger" procedure to show the content of the file.
    5. In the end, both for the PVS and QRC post trigger/process, the procedure name is fixed. This may lead to potential conflict if multiple people define their own triggers.

    I hope this will help you.

    Best Regards

    Yi

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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