• 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. Issue with importing csv file to the ADEXL outputs

Stats

  • Locked Locked
  • Replies 12
  • Subscribers 125
  • Views 12607
  • 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

Issue with importing csv file to the ADEXL outputs

greywanderer
greywanderer over 3 years ago

Hi,

I have transistors in the schematic named Mxx<5:0> and want to observe the "gm" of Mxx<5>. After accessing this in the results browser and storing in the outputs and then exporting it as a csv file, the transistor appears as "Mxx\\<5\\>". But when I make similar modifications to the rest of the occurrences in the csv file and import it to the output of the adexl, I get the following error,

"

value(pv("Mxx\<
                        ^^
PARSER WARNING at line 1 column 28 of file *string*
*WARNING* (Parser): character found after backslash is not meaningful - '\<'

"

What am I doing wrong? Any suggestions on managing such name formats in the csv files for the ADEXL outputs?

Thanks!

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 3 years ago

    Dear greywanderer,

    greywanderer said:
    But when I make similar modifications to the rest of the occurrences in the csv file and import it to the output of the adexl, I get the following error,

    Have you inspected the spectre netlist to determine the name of the transistor and its syntax (not the calculator expression)?

    I usually use the syntax from the spectre netlist since that is a valid syntax.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • greywanderer
    greywanderer over 3 years ago in reply to ShawnLogan

    The spectre netlist has "Mxx\<5\>". And I see the same error as mentioned above when I use this format.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 3 years ago in reply to greywanderer

    Dear greywander,

    greywanderer said:
    The spectre netlist has "Mxx\<5\>". And I see the same error as mentioned above when I use this format.

    Have you tried using the CDBA syntax checker nmp? I tried it using your syntax and your syntax appears illegal. I might suggest you try the alternative syntax I show which is legal:

    $ nmp isLegalName CDBA  "Mxx\<5\>"
    illegal
    $ nmp isLegalName CDBA  "Mxx|5|"  
    legal

    Shawn

    PS. This tool is detailed at the Cadence on-line support URL:

    support.cadence.com/.../ArticleAttachmentPortal

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • greywanderer
    greywanderer over 3 years ago in reply to ShawnLogan

    value(pv("Mxx|5|" "ids" ?result "tranOpTimed") 5e-07)

    This does not work either.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • greywanderer
    greywanderer over 3 years ago in reply to ShawnLogan

    value(pv("Mxx|5|" "ids" ?result "tranOpTimed") 5e-07)

    This does not work either.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to greywanderer

    Doing all this messing around with nmp or looking up netlist names really should not be necessary. Sorry, Shawn, but you first suggested using the names in the netlist, and then suggested checking for CDBA legal names (CDBA names are what appears on the schematic, not in the netlist). So that's conflicting advice. I would try to use schematic names wherever you can, so that you're not at the mercy of how names get mapped in the netlister (and most of the time this is a reasonable strategy unless you are trying to access something that doesn't correspond to a schematic element - e.g. within a subckt model).

    If it's a schematic name (and using outputs(?result 'tranOpTimed) in the CIW should show you the schematic names) then you just need to start the name with a / and use / as the hierarchy separator. If the name ended up in the netlist as Mxx\<5\> (which I'd expect) then because backslash is an escape character in SKILL, to truly get it you need a double-backslash.

    So using something like this in your CSV should do it:

    Name,Type,Output,EvalType,Plot,Save,Spec
    mxx5_gm,expr,value(pv("/Mxx<5>" "gm" ?result 'tranOpTimed) 2e-07),point,t,,
    mxx5_gmnet,expr,value(pv("Mxx\\<5\\>" "gm" ?result 'tranOpTimed) 2e-07),point,t,,
    mxx4_gm,expr,value(pv("/Mxx<4>" "gm" ?result 'tranOpTimed) 2e-07),point,t,,
    mxx4_gmnet,expr,value(pv("Mxx\\<4\\>" "gm" ?result 'tranOpTimed) 2e-07),point,t,,

    The _gm are schematic names, and the _gmnet are netlist names (note the double-backslash). Having a single backslash in the string would be a problem because SKILL will try to read the < or > as escaped, which doesn't make sense - hence the parser error.

    By the way, you can also see the netlist names you could use by typing: outputs(?map nil ?result 'tranOpTimed) in the CIW.

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • greywanderer
    greywanderer over 3 years ago in reply to Andrew Beckett

    As I had mentioned in the parent message, I saw the double backslashes when I exported to csv. But it did not work when I imported after changes to other outputs.

    For whatever reason, both your suggestions are working now. I dont know what I might have done wrong.

    Thanks for being so free with your knowledge. I did not know about getting netlist names with outputs() among other things.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • greywanderer
    greywanderer over 3 years ago in reply to Andrew Beckett

    Hi Andrew, Shawn,

    Sometimes when using netlist names, there is a problem with the import of the csv file and it misses the double back slashes giving the error below. I will use the schematic names for now. Just thought you might be interested.



    "value(pv("Mxx\<
                            ^^
    PARSER WARNING at line 1 column 28 of file *string*
    *WARNING* (Parser): character found after backslash is not meaningful - '\<'"

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • greywanderer
    greywanderer over 3 years ago in reply to greywanderer

    Looks like you are recommending to use the schematic names wherever possible.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to greywanderer
    greywanderer said:
    Looks like you are recommending to use the schematic names wherever possible

    I would generally go with the schematic names out of choice. However, the failure you mention with netlist names - this should work. So please post the relevant line from the CSV and the IC sub-version you're using, and I can check if it's something wrong with the CSV or there's a bug.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • greywanderer
    greywanderer over 3 years ago in reply to Andrew Beckett

    This is the line from the CSV

    library:cell:test,Ids0p5u_Mnb5,expr,"value(pv(""ux1.ux2.Mnb\\<5\\>"" ""ids"" ?result ""tranOpTimed"") 5e-07)",t,,

    The IC sub-version,



    Just want to clarify that this works sometimes and doesn't work sometimes.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to greywanderer

    The challenge appears to be if the expression is in quotes (and you have the "escaped" quotes embedded within). If it's like this:

    library:cell:test,Ids0p5u_Mnb5,expr,value(pv("ux1.ux2.Mnb\\<5\\>" "ids" ?result "tranOpTimed") 5e-07),t,,

    then it works with no problems.

    If you have the surrounding quotes in place, there's an extra layer of parsing, so that means you need to double-up the backslashes to (yes) four!

    library:cell:test,Ids0p5u_Mnb5,expr,"value(pv(""ux1.ux2.Mnb\\\\<5\\\\>"" ""ids"" ?result ""tranOpTimed"") 5e-07)",t,,

    The joys of escape characters!

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • greywanderer
    greywanderer over 3 years ago in reply to Andrew Beckett

    I see. The double quotes were placed there when I exported to a csv file and I assumed they needed to be so.

    Thanks much!

    • 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