• 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. Verilog-A switch model with thermal noise modeling

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 125
  • Views 13327
  • 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

Verilog-A switch model with thermal noise modeling

CatLover
CatLover over 4 years ago

Hello,

I am trying to write a verilog-A model for an ideal switch that would be compatible with PSS/PNOISE simulations. 

The goal is to simulate kT/C noise in switched-capacitor circuits, so I have the switch's ON-resistance as a parameter, and I would need to also model the Ron's equivalent thermal noise when the switch is on.

The simple code below should theoretically meet that need, according to what I have read. Unfortunately, simulation results from a PSS/PNOISE analysis performed on a simple track-and-hold circuit using this code look like garbage...

If I remove the white noise term at the end of the listing, and insert resistors from analogLib in series with every switch at the schematic level, the results look OK.

I could of course do that, but I am looking for a more elegant solution, one that has thermal noise embedded within the switch model itself.

Can you please help ?

Best regards,

Marc

`include "discipline.h"
`include "constants.h"

module vA_sw1(A,B,G);

inout A, B;
input G;
electrical A, B, G;

parameter real supply=3.0, Ron=10k;

analog begin

@(cross(V(G)-supply/2, 1));
@(cross(V(G)-supply/2, -1));

I(A,B) <+ (V(G) > supply/2) * (V(A,B)/Ron + white_noise(4 * `P_K * $temperature / Ron, "thermal"));

end

endmodule

  • 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