• 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. How to access the auto calculation command or function of...

Stats

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

How to access the auto calculation command or function of some devices' second-order parameters (e.g., SCA), better in command line form?

Alex Liao
Alex Liao over 8 years ago

Hey smart guys,

As you know, if you change the w, l and nf, and enable the WPE effects for lower-than-CMOS90nm technology MOSFET device, you can see the SCA/SCB/SCC are auto-calculated and reflected through the device property window. And if you change w and nf, the SCA dynamically updates. That means, when you change the w and nf, a black box function is called to do the calculation of such second-order parameters. If you only calculate couples of SCA based on few different w and nf, you can let the property window do it for you manually (i.e., GUI-based approach). If you have 1000 test cases, how can you do this? Is there a command line based approach that when you specify a change of w and nf in a netlist maybe, and you proceed to call a certain command or a function to do the calculation of SCA and then get the SCA value back annotated to the netlist to have the netlist consider the WPE effect?

Because the device property window have such dynamics, so behind the GUI, there must be a function called. Or I guess it kind of finds the corresponding SCA value through the foundry provided model. In this case, the Cadence must have a search or map function operated on the foundry model to be dynamic in terms of SCA calculation.

Any knowledge is appreciated.

Thanks,

Alex

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

    Hi Alex,

    CCSinvokeCdfCallbacks doesn't require any UI (unless the callback itself brings up some kind of form or dialog box). I'm not sure why you think that.

    It's far from clear what your changes are trying to do, but the code won't work for various reasons - for a start, the way you're calling CCSinvokeCdfCallbacksMy is different from the way it's defined, and the lines such as (dbGetq cellname~>viewname instances) make no sense whatsoever.

    My guess is that you probably just want to do:

    procedure(CCFcallCallbacksForLCV(libName cellName viewName paramOrder)
      let((cv)
        cv=dbOpenCellViewByType(libName cellName viewName "" "a")
        when(cv
          CCSinvokeCdfCallbacks(cv ?order paramOrder)
          schCheck(cv)
          dbSave(cv)
        )
      )
    )

    If you want to restrict the components it calls the callbacks for within the lib/cell/view specified, you probably would need to iterate over the instances, finding those with matching cell names and then call CCSinvokeInstCdfCallbacks. Something like:

    procedure(CCFcallCallbacksForLCVcomp(libName cellName viewName componentNames paramOrder)
      let((cv)
        cv=dbOpenCellViewByType(libName cellName viewName "" "a")
        when(cv
          foreach(inst cv~>instances
            when(member(inst~>cellName componentNames
              CCSinvokeInstCdfCallbacks(inst ?order paramOrder)
            )
          )
          schCheck(cv)
          dbSave(cv)
        )
      )
    )

    Then you'd call (for example):

    CCFcallCallbacksForLCVcomp("mylib" "mycell" "schematic" list("nch" "pch") list("w" "l" "nf"))

    Note that I haven't tested or checked any of the code written above - I just typed this into a web browser without access to the Cadence tools to try it out. I'm just trying to give you a rough idea.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Hi Alex,

    CCSinvokeCdfCallbacks doesn't require any UI (unless the callback itself brings up some kind of form or dialog box). I'm not sure why you think that.

    It's far from clear what your changes are trying to do, but the code won't work for various reasons - for a start, the way you're calling CCSinvokeCdfCallbacksMy is different from the way it's defined, and the lines such as (dbGetq cellname~>viewname instances) make no sense whatsoever.

    My guess is that you probably just want to do:

    procedure(CCFcallCallbacksForLCV(libName cellName viewName paramOrder)
      let((cv)
        cv=dbOpenCellViewByType(libName cellName viewName "" "a")
        when(cv
          CCSinvokeCdfCallbacks(cv ?order paramOrder)
          schCheck(cv)
          dbSave(cv)
        )
      )
    )

    If you want to restrict the components it calls the callbacks for within the lib/cell/view specified, you probably would need to iterate over the instances, finding those with matching cell names and then call CCSinvokeInstCdfCallbacks. Something like:

    procedure(CCFcallCallbacksForLCVcomp(libName cellName viewName componentNames paramOrder)
      let((cv)
        cv=dbOpenCellViewByType(libName cellName viewName "" "a")
        when(cv
          foreach(inst cv~>instances
            when(member(inst~>cellName componentNames
              CCSinvokeInstCdfCallbacks(inst ?order paramOrder)
            )
          )
          schCheck(cv)
          dbSave(cv)
        )
      )
    )

    Then you'd call (for example):

    CCFcallCallbacksForLCVcomp("mylib" "mycell" "schematic" list("nch" "pch") list("w" "l" "nf"))

    Note that I haven't tested or checked any of the code written above - I just typed this into a web browser without access to the Cadence tools to try it out. I'm just trying to give you a rough idea.

    Regards,

    Andrew.

    • 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