• 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. CDL netlist format

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 126
  • Views 17411
  • 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

CDL netlist format

1heinz
1heinz over 3 years ago

I have CDL net lists using different ways to connect the substrate pin of a transistor:


Q1 net1 net2 net3 [net4] npn M=1

Q2 net1 net2 net3 npn M=1 $SUB=net4

Q3 net1 net2 net3 net4 npn M=1

Q4 net1 net2 net3 npn area M=1

Which one of the above format is the correct syntax ?

Or do the different tools/versions accept only some of the formats ?

Especially 'Q4' seems to be ambiguous, because "npn" can be an optional substrate node or the model name ?

Thanks

Heinz

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 3 years ago

    Hi Heinz,

    The first looks suspicious (the PVS and Pegasus documentation is the best place to look for info on syntax for Cadence tools - the hyperlink is to the Pegasus doc on BJT). I wouldn't expect it to work with the node surrounded by [] - the documentation uses that to indicate that it's optional. Also, the area is expected to be a number, so maybe your last line area is a parameter defined somewhere.

    I can't answer what other non-Cadence tools support. Essentially the 2nd to 4th look OK though (assuming area is a parameter)

    Andrew 

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

    Hello Andrew,


    thanks,  I will look into the Pegasus documentation.
    It was my first thought that this is an indication for optional, but at least the assuraCDL command reference contains the following description.

    Transistor (BJT) Syntax

    Qxxx coll base emitter [[nsub]] mname [M=multiplier] [$EA=value] [$L=length] [$W=width] [$SUB=substrate]

    Fields

    ....

    [nsub]

    Specifies the SUBSTRATE terminal connection. You must enclose the SUBSTRATE terminal connection name in square brackets.

    ...

    Examples

    Q1 c b e [GND] QM M=5 $EA=3.4 $L=2.3 $W=1.2
    Regards Heinz
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to 1heinz

    Good point. It's always the challenge with SPICE-like textual formats that they evolve independently in different tools. I've not checked to see whether the square bracket syntax does indeed work with PVS/Pegasus.

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to 1heinz

    Good point. It's always the challenge with SPICE-like textual formats that they evolve independently in different tools. I've not checked to see whether the square bracket syntax does indeed work with PVS/Pegasus.

    Regards,

    Andrew

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

    I confirm that '$' is used for optional SPICE-like parts because this is a comment indicator in some dialects.
    But square brackets are not a good idea ;-) but may be necessary to unwind some ambiguity.
    That is why I do not understand how this is handled by different tools.

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

    Hi Andrew,

    only for keeping You updated:
    according to the cadence support (case# 46633599) the brackets mentioned in the assura manual are wrong and the manual will be fixed in the future.
    Only strange thing is that I saw netlists with the brackets in the past.
    I will fix my scripts to accept substrate nodes with and without brackets.
    Regards Heinz

    • 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