• 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. Simulating PSSR+/PSSR- and CMRR

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 124
  • Views 11599
  • 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

Simulating PSSR+/PSSR- and CMRR

wgtkan
wgtkan over 5 years ago

Hello,

I would like to simulate the PSSR+/PSSR- and the CMMR using xf for the attached test bench.

Normally, I do the AC analysis and using the post-processing capability of cadence spectre I do 20log(vdd/vout) for PSSR+

and 20*log(vss/vout) for PSSR-. 

looked online from an old post that I do:

PSRR-
db20(1/DATA("/Vn/PLUS" "xf-xf"))

PSRR+
db20(1/DATA("/Vp/MINUS" "xf-xf"))

How about the for the CMRR?

Thanks a lot in advance.  

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago

    Using an ac analysis is not the most efficient, because you need to move the ac source from the signal input to each supply in turn, and run a separate analysis for each power supply rejection ratio. If you run xf analysis, then you tell it where the output of the circuit is, and then just point at each source to get the transfer function from each source. The expressions you give would actually be computing the transimpedance (assuming the output was a voltage) or current gain (if the output was a current) because you're getting the "DATA" from the terminal of each source. Instead I'd expect (and it's easiest to do this starting from Results->Direct Plot->Main form and then clicking on the source, with "add to outputs" selected so you can get the resulting expression into the ADE outputs) it to just refer to the source name. So something like:

    db(getData("/V0" ?result "xf"))

    So in your test case, that would be (assuming  you wanted it as rejection, so the inverse of gain):

    -db(getData("/Vsp" ?result "xf"))
    -db(getData("/Vsn" ?result "xf"))

    For common-mode rejection ratio, you'd need a source defining the common mode, which you don't appear to have in this case. There are plenty of references on the internet explaining suitable test setups to measure common-mode rejection ratio for opamps. In the configuration you have there, the common mode is entirely defined by the DC level of the Vp source, so there is no common mode rejection to be calculated since you only have a single-ended input.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • wgtkan
    wgtkan over 5 years ago in reply to Andrew Beckett

    Dear Andrew,

    Thank you very much indeed for clarifying the xf (transfer function analysis).

    I observed some strange case though. When I use xf analysis for the PSS- I get different phase plot when comparing to the phase plot obtained through AC analysis.

    • 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