• 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. Post Layout simulation for multi-finger transistors

Stats

  • Locked Locked
  • Replies 11
  • Subscribers 125
  • Views 15151
  • 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

Post Layout simulation for multi-finger transistors

Senan
Senan over 4 years ago

Hello,

In the post layout simulation for a transistors built of number of segments/fingers, the simulated current in cadence shows only the current per one segment, then I have to multiply it myself to get the complete value,

Is there any way to tell cadence that those individuals should be combined.

Thank you

Best Regards

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

    Not enough detail to know what you've actually done here...

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to Andrew Beckett

    Dear Senan,

    Senan said:

    In the post layout simulation for a transistors built of number of segments/fingers, the simulated current in cadence shows only the current per one segment, then I have to multiply it myself to get the complete value,

    Is there any way to tell cadence that those individuals should be combined.

    As Andrew commented, it is not clear to me if you are trying to sum device finger currents from a schematic based netlist or an extracted view based netlist. However, a couple of suggestions that may be of use...

    1. If you are using an extracted view based netlist and trying to back annotate to the schematic the sum of the finger currents, the following may be of use:

    https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O3w000009xzQpEAI&pageName=ArticleContent

    2. If you are trying to save the summed current, are you aware of the following environmental command to enable the summation of currents in the fingers of a device? This is from the ICADVM20.1, 29 Jan 2021 manual:

    sumDeviceFingerCurrents

    Enables or disables dumping of the sum total of terminal currents for all fingers of a multi-fingered device in the save statement in netlist.

    In .cdsenv:

    maestro.results sumDeviceFingerCurrents boolean t

    In .cdsinit or the CIW:

    envSetVal( "maestro.results" "sumDeviceFingerCurrents" 'boolean t)

    Valid Values:

    t

    The save statement in netlist contains the sum total of terminal current of all fingers of a multi-fingered device.

    nil

    The save statement in netlist contains a separate terminal current value for one of the fingers of a multi-fingered device.

    Default Value:

    t

    I hope one of these provides some insight into your issue!

    Shawn

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Senan
    Senan over 4 years ago in reply to ShawnLogan

    Hello

    Thank you for your reply

    This is what I meant to say "When there is a mosfet with more than one finger, the annotation on the schematic displays only for a single finger (not for all fingers).", this is happening only with layout exctraction simualtion

    Regards

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to Senan

    Dear Senan,

    Senan said:

    This is what I meant to say "When there is a mosfet with more than one finger, the annotation on the schematic displays only for a single finger (not for all fingers).", this is happening only with layout exctraction simualtion

    Great! I think the link I sent as item [1] in my prior comment is relevant to your specific issue....let us know...

    Shawn

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Senan
    Senan over 4 years ago in reply to ShawnLogan

    Dear Shawn

    Thank you very much for your answer,

    The proposed link discuss exactly my problem, but he is pointing to the solution explained in  "IC6.1.8/ICADVM18.1 ISR12, which is available on https://downloads.cadence.com.", this document I am not able to reach

    Thank you

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to Senan

    Dear Senan,

    Senan said:
    The proposed link discuss exactly my problem, but he is pointing to the solution explained in  "IC6.1.8/ICADVM18.1 ISR12, which is available on https://downloads.cadence.com.", this document I am not able to reach

    I don't think the link you are trying to reach is a speciifc "solution" - but rather the Cadence version that first addresses the inability to sum the currents. The article notes "Existing Cadence Change Request (CCR) #2239235 identifies this issue. A fix for this CCR is available in..."

    Hence, what version of Cadence are you currently using? If you are not sure, it is contained in any spectre.out file from a simulation your run or, from your working directory:

    $ virtuoso -W
    sub-version  ICADVM20.1-64b.500.16
    $

    If your version is later than ICADVM18.1 ISR12, the use of the specific commands, for example,

    opParamExprList: ("id" "aelSumOPParam(inst() \"id\")")

    optParamExprList: ("ids" "aelSumOPParam(inst() \"ids\")"

    should sum the finger currents as you desire. If your version is prior to ICADVM18.1 ISR12, you might want to speak with the group that installs your Cadence tools to request access to a more recent version - or just directions to access it.

    Does this make sense Senan?

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Senan
    Senan over 4 years ago in reply to ShawnLogan

    Dear Shawn,

    Thank you once again for your kind help

    I am using Cadence Virtuoso version IC6.1.8-64b.500.6 and Spectra simulator.

    I have tried your commands in the CIW but giving me this error "*Error* eval: unbound variable - optParamExprList"

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to Senan

    Dear Senan,

    Senan said:
    I am using Cadence Virtuoso version IC6.1.8-64b.500.6 and Spectra simulator.

    I do not know the sequences of coding that Cadence is using for version control . Hence, I would recommend you speak with the group that installs your Cadence tools to verify if this version is more recent than the recommended version of ICADVM18.1 ISR12.

    Sorry,

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to ShawnLogan

    The last portion of the version number is the ISR number, and IC6.1.8 tracks ICADVM18.1/ICADVM20.1 (in the advanced methodology stream, it switches from 18.1 to 20.1 at ISR14 - but it still remains aligned). So the version Senan is using is IC6.1.8 ISR6 which corresponds to ICADVM18.1 ISR6 which is too old.

    As for:

    Senan said:
    I have tried your commands in the CIW but giving me this error "*Error* eval: unbound variable - optParamExprList"

    These are not commands that are entered in the CIW. They are settings to enter in the spectre simulation information in the CDF for the component you're trying to get to handle the summing for m-factor. The original article that Shawn mentioned doesn't spell this out, but I'm sure there are others on opParamExprList and optParamExprList which explain this more. It would require you to change the CDF of the transistors though, which means you'll need to modify the foundry PDK - something to be aware of.

    If you are at all unsure, please contact customer support - an application engineer can walk you through what is needed.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to Andrew Beckett

    Dear Andrew,

    Andrew Beckett said:
    The last portion of the version number is the ISR number, and IC6.1.8 tracks ICADVM18.1/ICADVM20.1 (in the advanced methodology stream, it switches from 18.1 to 20.1 at ISR14 - but it still remains aligned).

    Thank you very much!! The version coding is something I have never totally understood! As usual, I appreciate your education (again)...

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to Andrew Beckett

    Dear Andrew,

    Andrew Beckett said:
    The last portion of the version number is the ISR number, and IC6.1.8 tracks ICADVM18.1/ICADVM20.1 (in the advanced methodology stream, it switches from 18.1 to 20.1 at ISR14 - but it still remains aligned).

    Thank you very much!! The version coding is something I have never totally understood! As usual, I appreciate your education (again)...

    Shawn

    • 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