• 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. Skill Pcell "undefined function pow" at eval during LVS

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 125
  • Views 1930
  • 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

Skill Pcell "undefined function pow" at eval during LVS

AdrienL
AdrienL over 1 year ago

Hello,

I've been working on a PCell in skill for several days and it is not a piece of cake! I was able to fix most of my problems alone, but this time I really don't understand...

For a little of context I have a PCell that generates a layout and a schematic (therefore I have 2 pcDefinePCell).

When I generate the PCell (by loading the .il script) everything works fine. I see my layout and my schematic as expected.

When I implement the symbol of my pcell in a schematic, no problem, the layout is also generated as expected. DRC work perfectly.

But when I run the LVS, it won't work and I have this error:

Pcell evaluation for architectures_tests/pcell_inv/schematic generated information. See layer/purpose "marker/error" shape with property "drcWhy" for description. You can get more details from file /tmp/_pcEvala79387.

ERROR (OSSHNL-408): Failed to generate the netlist because of a Pcell evaluation error on cellview 'my_lib/pcell_inv/schematic'. Set simStopNetlistOnPcellFailure to "ignore" to prevent this error.

In the tmp file I have 2 times : *Error* eval: undefined function - pow

The thing is I don't have any "pow" function in my scripts... So I really don't understand.

I hope someone can help me. Thank you in advance!

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 1 year ago

    You could try doing:

    _stacktrace=50
    sstatus(errsetTrace t)

    Then look in the /tmp file it mentions. This should give an idea about where the pow is being called from? pow() is an ADE function and not part of core SKILL (expt or ** should be used instead), but the trick is to find where it's called from first.

    One possibility might be if you are (say) calling CDF callbacks within your PCell code - given the name "pcell_inv" I'm assuming it contains instances of transistors in the schematics, and those might have CDF callbacks that call pow. If these aren't under your control, you could put this in your library's libInit.il :

    unless(isCallable('pow)
      procedure(pow(base expt) expt(base expt))
    )

    Regards,

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • AdrienL
    AdrienL over 1 year ago in reply to Andrew Beckett

    Thank you a lot, indeed adding the code to my libInit.il worked!

    By the way, is there a way to reload libinit.il without closing and re-oping Virtuoso?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • AdrienL
    AdrienL over 1 year ago in reply to Andrew Beckett

    Thank you a lot, indeed adding the code to my libInit.il worked!

    By the way, is there a way to reload libinit.il without closing and re-oping Virtuoso?

    • 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