• 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. Net list creation error

Stats

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

Net list creation error

wgtkan
wgtkan over 6 years ago

Hello,

An old solution has been posted to running into an error when simulating a schematic created in IC6.1 using specter simulator. 

When I added IC6.1 library (I'm using virtuoso 6.17 version) and other directories and ran the spectre simulation, I got Netlist Error:  

Could not find netlist procedure:ABbnNetlistProc instance "M1" in cell-view "Ch31_IC61" "Fig20_47" "schematic"

As a solution, this code was posted. Where should I place it?

defun(ABbnNetlistProc (inst)

    let((formatter netlister bulk sigs)

        ;----------------------------------------------------------------

        ; Get hold of the formatter and netlister objects

        ;----------------------------------------------------------------

        formatter=nlGetFormatter(inst)

        netlister=nlGetNetlister(formatter)

        nlPrintInstComments(formatter inst)

        nlPrintIndentString(netlister)

        nlPrintInstName(formatter inst)

        ;----------------------------------------------------------------

        ; Print the standard signals. Can't use nlPrintInstSignals

        ; because the parentheses would be around the terminals in

        ; the termOrder, and not include the bulk node

        ;----------------------------------------------------------------

        sigs=nlGetSignalList(inst)

        nlPrintString(netlister " (" car(sigs))

        foreach(sig cdr(sigs)

            nlPrintString(netlister " " sig)

        ) ; foreach

        ;----------------------------------------------------------------

        ; Get the bn parameter and output that as the connection, if

        ; it is set

        ;----------------------------------------------------------------

        bulk=nlGetParamStringValue(inst "bn")

        when(member(bulk '("D" "G" "S"))

            bulk=nlGetTerminalSignalName(inst bulk)

            )

        when(bulk

            nlPrintString(netlister " " bulk)

            )

        ;----------------------------------------------------------------

        ; Write out the close parenthesis, now that the bulk is written

        ;----------------------------------------------------------------

        nlPrintString(netlister ")")

        nlPrintModelName(formatter inst)

        nlPrintInstParameters(formatter inst)

        )

    )

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago

    I guess the post you're referring to is this one (always useful to have a cross-reference). 

    What I'd do is look at the M1 transistor in Ch31_IC61/Fig20_47/schematic and see what library it's from. Then add the function above into the libInit.il file within that library (or if one doesn't exist, create that file and put this code within it). You'll have to restart virtuoso for it to have an effect though.

    Alternatively, put it in your .cdsinit file.

    Regards,

    Andrew.

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

    Hello Andrew,

    Thanks for your prompt response. The library is from NCSU analog parts. I created libInit.il and put the above code into it and in my .cdsinit , I placed a line: 

    load(strcat("path to libInit.il"))

    Still, it is not working. 

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

    This is the error that is generated:

    Begin Incremental Netlisting Feb  3 04:26:28 2019

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    *Error* eval: undefined function - \302\240\302\240\302\240\302\240let

    End netlisting Feb  3 04:26:28 2019

    ERROR (OSSHNL-514): Netlist generation failed because of the errors reported above. The netlist might not have been generated at all, or the generated netlist could be corrupt. Fix the reported errors and regenerate the netlist.

          ...unsuccessful.

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

    You've clearly got some mangled characters in the code that you're loading (I would have thought that's rather obvious from the error message). By dumping the same sequence of characters to a file, I can see the same problem. Here's what it looks like in an editor such as "vi" when I do that:

    I see the same thing if I just cat the file too (that may depend on your terminal though).

    So, you appear to have some strange characters instead of whitespace at the beginnings of your lines (at least this line) in the code. You'll need to fix that.

    Regards,

    Andrew.

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

    Hello Andrew,

    Thank you very much indeed.

    • 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