• 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. Mixed-Signal Design
  3. Custom DC Operating Point Definitions or Overwriting the...

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 65
  • Views 15793
  • 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

Custom DC Operating Point Definitions or Overwriting the .dcOpInfo.info file?

CadenceUser3
CadenceUser3 over 11 years ago

Our foundry provides a subcircuit model which produces correct ID-VD and ID-VG curves. However, the .OP vdssat (based on BSIM definition) is wildy different than what is expected, ~200mV higher.

What I want:

(1) Custom definition of Vdssat, for example vdssatxxx based on Rout degradation

(2) Must be able to back-annotate on the schematic

One way I was thinking is to run a DC sweep, calculate the value vdssatxxx based on my arbitrary definition, and then overwrite the original .dcOpInfo.info file's vdssat with the the calculated value vdssatxxx from the DC sweep. Now, when I back-annotate it should read the .dcOpInfo.info file that was overwritten.

(1) Is this a reasonable way to do it?

(2) How do I overwrite the existing dcOPInfo.info file (replace vdssat with an arbitrary value that I have calculated)? Does OCEAN have this feature?

(3) Is there a better way to have a custom-defined operating point parameter that can be back-annotated?

  • Cancel
Parents
  • CadenceUser3
    CadenceUser3 over 11 years ago

    Thanks. I tried #2 listed in your email. It may be the best option. However, it's not easy to come up with an empirical equation for Vdssat based on other operating point parameters (e.g. Vdssat=f(vgs,vds,vth,id,rout,...)). Please let me know if you know of one.

    Ideally, I would like to base Vdssat on a DC sweep of Vds holding Vgs for each transistor at the operating point value. Below are the steps:

    (1) Create original schematic (e.g. an op amp containing 10 transistors) and run .OP sim

    (2) fprint value of Vgs and Vbs using ocean

    (3) Create a new schematic copying only the transistors from original schematic

    (4) Add dc voltage sources to each pin of the transistor in the new schematic using values from step 2 

    (5) Run a DC sweep on Vds (Vgs, Vbs is fixed to operating point value) for the new schematic

    (6) Calculate Rout=deriv(Id) 

    (7) Create arbitrary definition: vdssatxxx is the Vds when Rout is degraded 50% from the value from Vds=Vdd/2

    (8) Take this value of vdssatxxx and annotate on the schematic using schCreateNoteLabel (since I can't overwrite .dcOpInfo.info)

    It's obviously a complicated solution... Please let me know if something like this already exists. I've just started to implement this with Skill and Ocean code (I'm a beginner), so please let me know of any difficulties I may run into.

    Thanks,

    AK 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • CadenceUser3
    CadenceUser3 over 11 years ago

    Thanks. I tried #2 listed in your email. It may be the best option. However, it's not easy to come up with an empirical equation for Vdssat based on other operating point parameters (e.g. Vdssat=f(vgs,vds,vth,id,rout,...)). Please let me know if you know of one.

    Ideally, I would like to base Vdssat on a DC sweep of Vds holding Vgs for each transistor at the operating point value. Below are the steps:

    (1) Create original schematic (e.g. an op amp containing 10 transistors) and run .OP sim

    (2) fprint value of Vgs and Vbs using ocean

    (3) Create a new schematic copying only the transistors from original schematic

    (4) Add dc voltage sources to each pin of the transistor in the new schematic using values from step 2 

    (5) Run a DC sweep on Vds (Vgs, Vbs is fixed to operating point value) for the new schematic

    (6) Calculate Rout=deriv(Id) 

    (7) Create arbitrary definition: vdssatxxx is the Vds when Rout is degraded 50% from the value from Vds=Vdd/2

    (8) Take this value of vdssatxxx and annotate on the schematic using schCreateNoteLabel (since I can't overwrite .dcOpInfo.info)

    It's obviously a complicated solution... Please let me know if something like this already exists. I've just started to implement this with Skill and Ocean code (I'm a beginner), so please let me know of any difficulties I may run into.

    Thanks,

    AK 

    • 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