Home > Community > Forums > Custom IC SKILL > Stream Out Errors - Stack Used By PCell Evaluation Internal Overflows

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 Stream Out Errors - Stack Used By PCell Evaluation Internal Overflows 

Last post Mon, Jun 8 2009 12:53 PM by pmesa. 5 replies.
Started by pmesa 26 May 2009 08:38 PM. Topic has 5 replies and 2305 views
Page 1 of 1 (6 items)
Sort Posts:
  • Tue, May 26 2009 8:38 PM

    • pmesa
    • Not Ranked
    • Joined on Tue, May 26 2009
    • Posts 4
    • Points 35
    Stream Out Errors - Stack Used By PCell Evaluation Internal Overflows Reply

      I am running Virtuoso version IC6.1.3.500.10 and I have been having some problems streaming out a P-Cell to GDS.  I have a custom SKILL P-Cell code that loads properly in Cadence and does not have any P-Cell evaluation errors.  I have four tiles that uses this P-Cell that are placed in a holding cell and I get the following error when I stream out:

    *WARNING* ("dbCreateParamInst" 0 t nil ("*Error* dbCreateParamInst: The stack used by pcell evaluation internal overflows.\n"))
    ERROR (211): Pcell evaluation has failed. This is because of either a syntax error or the usage of an unsupported XStream function in Pcell SKILL code. For more information refer to the standard output or CDS.log. To continue, either specify the ignorePcellEvalFail option in Stream In/Out options or correct the Pcell SKILL code.
     XStream failed

      The strange thing is that each of the four tiles individually streamed out successfully to GDS.  Can somebody help give a better description of the error: "The stack used by pcell evaluation internal overflows"?  Does anybody have any idea of how this can be prevented?

     Thanks in advance, Paul

    • Post Points: 20
  • Wed, May 27 2009 9:05 AM

    • ahamlett
    • Top 500 Contributor
    • Joined on Wed, Jul 16 2008
    • Dallas, TX
    • Posts 31
    • Points 585
    Re: Stream Out Errors - Stack Used By PCell Evaluation Internal Overflows Reply

    Not sure if this will fix your problem, but look through your pcell code for any functions that are not contained in the Skill Language Reference. I was using int() in a pcell and it caused problems when translating until I changed it to floor(). Here are the functions supported in pcells:

    abs
    acos
    add1
    addDefstructClass
    alias
    alphalessp
    alphaNumCmp
    and
    append
    append1
    apply
    argc
    argv
    arrayp
    arrayref
    asin
    assoc, assq, assv
    atan
    atof
    atoi
    atom
    band
    bcdp
    begin
    bitfield1
    bitfield
    blankstrp
    bnand
    bnor
    bnot
    booleanp
    bor
    boundp
    buildString
    bxnor
    bxor
    caar, caaar, caadr, cadr, caddr, cdar, cddr, ...
    car
    case, caseq
    cdr
    cdsGetInstPath
    ceiling
    changeWorkingDir
    charToInt
    clearExitProcs
    close
    compareTime
    compress
    concat
    cond
    cons
    constar
    copy
    copy_<name>
    copyDefstructDeep
    cos
    cputime
    createDir
    csh
    declare
    declareLambda
    declareNLambda
    declareSQNLambda
    define
    defmacro
    defMathConstants
    defprop
    defstruct
    defstructp
    defun
    defUserInitProc
    defvar
    deleteDir
    deleteFile
    difference
    display
    do
    drain
    dtpr
    ed
    edi
    edit
    edl
    envobj
    eq
    equal
    eqv
    err
    error
    errset
    errsetstring
    eval
    evalstring
    evenp
    exists
    exit
    exp
    expandMacro
    expt
    fboundp
    fileLength
    fileSeek
    fileTell
    fileTimeModified
    fix
    fixp
    float
    floatp
    floor
    for
    forall
    foreach
    fprintf
    fscanf, scanf, sscanf
    funcall
    funobj
    gc
    gensym
    geqp
    get
    get_filename
    get_pname
    get_string
    getc
    getchar
    getCurrentTime
    getd
    getDirFiles
    getFnWriteProtect
    getFunType
    getInstallPath
    getLogin
    getPrompts
    getq
    getqq
    getTempDir
    gets
    getShellEnvVar
    getSkillPath
    getSkillVersion
    getVarWriteProtect
    getVersion
    getWarn
    getWorkingDir
    go
    greaterp
    help
    if
    importSkillVar
    index
    infile
    inportp
    inScheme
    inSkill
    instring
    integerp
    intToChar
    isCallable
    isDir
    isExecutable
    isFile
    isFileEncrypted
    isFileName
    isInfinity
    isLargeFile
    isLink
    isMacro
    isNaN
    isReadable
    isWritable
    lambda
    last
    lconc
    leftshift
    length
    leqp
    lessp
    let
    letrec
    letseq
    lineread
    linereadstring
    list
    listp
    listToVector
    load
    loadi
    loadstring
    log
    log10
    lowerCase
    make_<name>
    makeTable
    makeTempFileName
    makeVector
    map
    mapc
    mapcan
    mapcar
    maplist
    max
    measureTime
    member, memq, memv
    min
    minus
    minusp
    mod
    modulo
    mprocedure
    nconc
    ncons
    needNCells
    negativep
    neq
    nequal
    newline
    nindex
    nlambda
    not
    nprocedure
    nth
    nthcdr
    nthelem
    null
    numberp
    numOpenFiles
    oddp
    onep
    openportp
    or
    otherp
    outfile
    outportp
    pairp
    parseString
    plist
    plus
    plusp
    portp
    postdecrement
    postincrement
    pprint
    predecrement
    preincrement
    prependInstallPath
    print
    printf
    printlev
    println
    procedure
    procedurep
    prog
    prog1
    prog2
    progn
    putd
    putprop
    putpropq
    putpropqq
    quote
    quotient
    random
    range
    read
    readstring
    readTable
    realp
    regExitAfter
    regExitBefore
    remainder
    remd
    remdq
    remExitProc
    remove
    remprop
    remq
    renameFile
    return
    reverse
    rexCompile
    rexExecute
    rexMagic
    rexMatchAssocList
    rexMatchList
    rexMatchp
    rexReplace
    rexSubstitute
    rightshift
    rindex
    round
    rplaca
    rplacd
    schemeTopLevelEnv
    set
    setarray
    setcar
    setcdr
    setFnWriteProtect
    setof
    setplist
    setPrompts
    setq
    setqbitfield1
    setqbitfield
    setShellEnvVar
    setSkillPath
    setVarWriteProtect
    sh, shell
    simplifyFilename
    sin
    sort
    sortcar
    sprintf
    sqrt
    srandom
    sstatus
    status
    strcat
    strcmp
    stringp
    stringToFunction
    stringToSymbol
    stringToTime
    strlen
    strncat
    strncmp
    sub1
    subst
    substring
    sxtd
    symbolp
    symbolToString
    symeval
    symstrp
    system
    tablep
    tableToList
    tailp
    tan
    tconc
    theEnvironment
    times
    timeToString
    timeToTm
    tmToTime
    truncate
    type, typep
    unalias
    unless
    upperCase
    vector
    vectorp
    vectorToList
    vi, vii, vil
    warn
    when
    which
    while
    write
    writeTable
    xcons
    xCoord
    xdifference
    xplus
    xquotient
    xtimes
    yCoord
    zerop
    zxtd

    • Post Points: 20
  • Wed, May 27 2009 10:14 AM

    Re: Stream Out Errors - Stack Used By PCell Evaluation Internal Overflows Reply

    Alan,

    I assume you meant the other way around? floor is supported, but int is not (it's not core SKILL, but a function provided by the analog tools). Essentially you can use core SKILL, db, dd, cdf, rod, tech and a few pc functions. You only listed core SKILL functions...

    Anyway, I don't think this is the problem here. I can find no reports of this error occurring before.

    I did a bit of digging, and I think it might be possible if you have a recursive pcell - or a pcell that ends up instanting itself.

    I think you're going to have to report it to Cadence via customer support, including a testcase to reproduce it. I'm certainly interested, so if you want to send me a message with the SR number I can take a look.

    Best Regards,

    Andrew.

    • Post Points: 5
  • Wed, May 27 2009 10:15 AM

    Re: Stream Out Errors - Stack Used By PCell Evaluation Internal Overflows Reply

    Note, the latter part of my post was addressed to Paul, rather than Alan...

    Andrew.

    • Post Points: 20
  • Wed, May 27 2009 10:44 AM

    • ahamlett
    • Top 500 Contributor
    • Joined on Wed, Jul 16 2008
    • Dallas, TX
    • Posts 31
    • Points 585
    Re: Stream Out Errors - Stack Used By PCell Evaluation Internal Overflows Reply

    Oops, I meant that I changed int() to floor() and I forgot the functions starting with db, dd, cdf, rod, or tech.

     I'd be interested to see where this goes too so please keep us updated.

    • Post Points: 20
  • Mon, Jun 8 2009 12:53 PM

    • pmesa
    • Not Ranked
    • Joined on Tue, May 26 2009
    • Posts 4
    • Points 35
    Re: Stream Out Errors - Stack Used By PCell Evaluation Internal Overflows Reply

    Andrew and ahamlett,

       Thank you for your help and replies.  We began troubleshooting the code, and found that cellviews were opened using "dbOpenCellViewByType" and were not closed after opening it.  We cleaned up those calls as much as possible by using dbClose, but we still saw the same problems.  We could not find any calls to functions that are not allowed in P-Cells.

      Since we could successfully stream out the tiles individually, we streamed out the tiles, then streamed them back into Virtuoso.  This way, we retained the hierarchy and layout and removed the dependence of the P-Cell code.

     Regards, Paul

    • Post Points: 5
Page 1 of 1 (6 items)
Sort Posts:
Started by pmesa at 26 May 2009 08:38 PM. Topic has 5 replies.