• 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. PSS simulation

Stats

  • Locked Locked
  • Replies 13
  • Subscribers 126
  • Views 27813
  • 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

PSS simulation

svilen
svilen over 14 years ago

 Hi,

 

I'm trying to run pss and pnoise simulations on a switched capacitor circuit. The only periodic voltage source in the circuit is a clock but the problem is that switching and sampling doesn't happen on the clock. It clocks a logic that produces waveforms which control sampling and switching in the circuit. When I run the pss, although I specify the beat frequency to be the frequency of the actual sampling signal it seems that the simulator still detects the clock stimuli (which is pwlf source) and I have the feeling it periodizes the analysis with repect to the clock, not to the actual sampling waveform.

Is there anyway to trick the simulator not to take the clock but the logic signal that acrually does the sampling? I can not remove the logic block that's being clocked or substitute the sampling signal with a voltage source.

Thanks

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

    OK, I've set something simple up to show the problem you're seeing - in order to illustrate it. I have this as a netlist:

    //
    parameters fsamp=27.918M
    
    vpwl (pwl 0) vsource type=pwl file="clock.pwl"
    vsample (sample 0) vsource type=pulse period=1/fsamp width=0.5/fsamp 
    + rise=1n fall=1n val0=0 val1=1
    
    rsamp (sample sampout) resistor r=100
    csamp (sampout 0) capacitor c=0.1p
    
    pss pss fund=fsamp tstab=72.2914n
    
    pnoise (sampout 0) pnoise start=10 stop=100 dec=5 maxsideband=10 
    + noisetype=timedomain numberofpoints=0 noisetimepoints=[35n] annotate=status
    

    And then this as my clock.pwl file:

    0 0
    10n 2
    20n 2
    30n 0
    106n 0
    107n 2
    108n 2
    109n 0
    111.55n 0
    

    In order to get the numbers you're seeing, the last point in the pwl file must be at 111.55n not 198n.

    Don't worry at this stage that the clock.pwl file is not representing your 1.2GHz clock (I was just being lazy when creating this file; it's suffiicient to explain what is going on). The first part of the PSS simulation will start at time 0, and then go to the point at which all the sources become periodic (111.55n, because the pwl source is not seen as periodic), and then simulate any tstab time you've set (72.2914n) and also 1 period of the PSS fundamental (1/27.918M = 35.819n). So that's a total of 219.661ns (which is what you see). Each PSS iteration will then re-simulate the last 35.819n of this over and over again (i.e. from 183.841 ns -> 219.661 ns).

    The timedomain noise sample you have asked for is at 35ns through this 35.819ns period, so therefore will be 0.819ns from the end of the 219.661n section (i.e. 218.841ns).

    So the real problem is that your pwl file is not being treated as periodic - understandably, because the simulator had no idea it was meant to be periodic and not a one-off reset pulse (say).

    In order to make it periodic, you need to specify the pwlperiod parameter (which on the analogLib vpwlf source shows up as  "Period of the PWL", or on the analogLib vsource component in pwl mode shows up as "Period" (there's also "Period Start Time" which corresponds to the pwlperiodstart parameter I mentioned earlier).

    Having made this periodic (I suggest running a long transient just with this pwl source just to make sure it's repeating OK), the problem is that your PSS fundamental will need be commensurate with both the 27.918MHz sampling signal and your 1.2GHz clock. Unfortunately the greatest common divisor of both those frequencies is 6kHz (think about it - to do a Fourier analysis, you're going to need whole numbers of both frequencies). Since that corresponds to 200000 cycles of the clock signal, your simulation would be very slow, and will need an enormous amount of memory.

    There are several choices:

    1. Adjust your frequencies a little to make them commensurate (or more commensurate). For example, a Fsample of 28MHz would mean a common frequency of 4MHz. That's still 300 cycles of the clock, but may be manageable.
    2. Check to see if the clock (or the sampling signal) really needs to be there to check out the noise performance. Dealing with a single frequency makes the simulation much simpler
    3. You could potentially use QPSS (Quasi-periodic steady state) with the two frequencies, but the trouble is that two highly non-linear signals is very expensive to simulate. QPSS (shooting) is intended primarily for when you have one strongly non-linear, and the rest weakly non-linear signals. With Harmonic Balance, all signals are typically weakly non-linear, but you could ask for lots of harmonics of one of them; asking for lots of harmonics for multiple signals is likely to lead to very slow and memory hungry simulation time though.

    Unfortunately it's hard for me to be precise because I don't quite know what the logic you're describing is doing, and would probably need to see it. It might be easier to talk to Cadence Customer Support so that we can see more of the data and give you more focused advice?

    Best Regards,

    Andrew.

     

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • JackieTheBanan
    JackieTheBanan over 6 years ago in reply to Andrew Beckett

    Excuse me Mr.Beckett, I and my friends are running a Virtuoso 6.1.5 and are wondering how to set the stop time in PSS simulation properly, could you please tell me? I will be really appreciated that! : )

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • JackieTheBanan
    JackieTheBanan over 6 years ago in reply to Andrew Beckett

    Excuse me Mr.Beckett, I and my friends are running a Virtuoso 6.1.5 and are wondering how to set the stop time in PSS simulation properly, could you please tell me? I will be really appreciated that! : )

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to JackieTheBanan

    I don't really know what you mean by stop time. There is no stop time in PSS...

    Perhaps you should post a new question (the forum guidelines ask you not to post in old threads anyway) with details of what you're trying to do and then I or somebody else can give a more focused answer?

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 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