+ Post New Thread
Results 1 to 15 of 15
  1. #1
    Full Member level 4
    Points: 1,399, Level: 8

    Join Date
    Apr 2017
    Posts
    223
    Helped
    4 / 4
    Points
    1,399
    Level
    8

    Switched Capacitor Circuits - PSS/PAC

    Hello,

    I already have the paper by Ken Kundert, but I am looking for a tutorial on how to do PSS/PAC simulation for Switched Capacitor Amplifiers in Cadence Spectre/Virtuoso.

    I am not looking for the theory, rather a step by step tutorial on how this is simulated and set up in Cadence Virtuoso/Spectre.

    Thank you.

  2. #2
    Advanced Member level 5
    Points: 40,247, Level: 49
    Achievements:
    7 years registered
    LvW's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    5,770
    Helped
    1723 / 1723
    Points
    40,247
    Level
    49

    Re: Switched Capacitor Circuits - PSS/PAC

    Do you know that Ken Kunert ist active in another electronic Forum (www.designers-guide.org)?
    perhaps it is best to contact him directly.



    •   AltAdvertisment

        
       

  3. #3
    Full Member level 4
    Points: 1,399, Level: 8

    Join Date
    Apr 2017
    Posts
    223
    Helped
    4 / 4
    Points
    1,399
    Level
    8

    Re: Switched Capacitor Circuits - PSS/PAC

    Hello,

    Thank you for your response.

    As I said he wrote a tutorial - that is theoretical - about this topic.

    But I am looking for a practical tutorial on this subject.

    Thank you.



  4. #4
    Full Member level 6
    Points: 4,273, Level: 15
    Achievements:
    Created Blog entry Created Album pictures 7 years registered
    MahmoudHassan's Avatar
    Join Date
    Oct 2010
    Posts
    335
    Helped
    40 / 40
    Points
    4,273
    Level
    15
    Blog Entries
    8

    Re: Switched Capacitor Circuits - PSS/PAC

    "I can't change the direction of the wind, but I can adjust my sails to always reach my destination."
    ~ by Jimmy Dean



  5. #5
    Full Member level 4
    Points: 1,399, Level: 8

    Join Date
    Apr 2017
    Posts
    223
    Helped
    4 / 4
    Points
    1,399
    Level
    8

    Re: Switched Capacitor Circuits - PSS/PAC

    Hello,

    Thanks, but this document does not talk about Switched Capacitor simulations.

    Thank you.



  6. #6
    Advanced Member level 5
    Points: 14,791, Level: 29
    pancho_hideboo's Avatar
    Join Date
    Oct 2006
    Location
    Real Homeless
    Posts
    2,236
    Helped
    609 / 609
    Points
    14,791
    Level
    29

    Re: Switched Capacitor Circuits - PSS/PAC




    •   AltAdvertisment

        
       

  7. #7
    Full Member level 4
    Points: 1,399, Level: 8

    Join Date
    Apr 2017
    Posts
    223
    Helped
    4 / 4
    Points
    1,399
    Level
    8

    Re: Switched Capacitor Circuits - PSS/PAC

    Hello,

    Thanks for your response.

    I read the course notes and understand the simulation procedure except for one thing.

    How do I:

    – Divide results by sinc(f/fs) to correct for ZOH distortion?

    Thank you.



    •   AltAdvertisment

        
       

  8. #8
    Advanced Member level 5
    Points: 14,791, Level: 29
    pancho_hideboo's Avatar
    Join Date
    Oct 2006
    Location
    Real Homeless
    Posts
    2,236
    Helped
    609 / 609
    Points
    14,791
    Level
    29

    Re: Switched Capacitor Circuits - PSS/PAC

    Quote Originally Posted by Puppet123 View Post
    – Divide results by sinc(f/fs) to correct for ZOH distortion?
    This is true for Transient Analysis.
    Howerver, this is not required for PSS/PAC.

    See https://www.edaboard.com/showthread.php?364294

    Post Processing of Roll-Off-Compensation for Transient Analysis Result
    Code:
    selectResult('tran)
    
    time_vec = drGetWaveformXVec( v("/Vout") )
    tstop = drGetElem( time_vec, drVectorLength(time_vec)-1 )
    printf("tstop = %g[usec]\n", tstop/1u)
    
    fmax = 25M
    
    tw_in = 1.0/(5*fmax)
    froll_off = 1.0 / tw_in
    fnyquist = 2*froll_off
    
    delta_f = 1.0 / tstop
    maxstep = 1.0 / fnyquist
    N = round(2*fnyquist * tstop)
    ip = round(log(N)/log(2))
    NN = 2**ip
    if( NN < N then NN=2**(ip+1) )
    fnyquist = NN / (2.0*tstop)
    printf("N = %d --> N = %d\n", N NN)
    
    k = tstop / (2.0 * tw_in)  ;  Amplitude Compensation
    
    Vout_freq = dft(v("/Vout") 0 tstop N "Rectangular" 1 1)
    
    Vref_freq = dft(v("/Vref") 0 tstop N "Rectangular" 1 1)
    
    xvec = drGetWaveformXVec(Vout_freq)
    len  = drVectorLength(xvec)
    printf("len = %d\n", len)
    
    bid = currentSubwindow(1)
    plot( db20(k*Vout_freq) ?expr '("tran-S21 without roll-off compensation") )
    plot( db20(Vout_freq/Vref_freq) ?expr '("tran-S21 with roll-off compensation") )
    Last edited by pancho_hideboo; 3rd September 2018 at 12:21.



  9. #9
    Advanced Member level 5
    Points: 40,247, Level: 49
    Achievements:
    7 years registered
    LvW's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    5,770
    Helped
    1723 / 1723
    Points
    40,247
    Level
    49

    Re: Switched Capacitor Circuits - PSS/PAC

    Puppet23 - are you required to use PSS/PAC or are you free to use any other simulation environment?



  10. #10
    Full Member level 4
    Points: 1,399, Level: 8

    Join Date
    Apr 2017
    Posts
    223
    Helped
    4 / 4
    Points
    1,399
    Level
    8

    Re: Switched Capacitor Circuits - PSS/PAC

    Hello,

    Must use Cadence and must use PSS/PAC.

    That is why I asked the question originally.

    Thank you.



  11. #11
    Advanced Member level 5
    Points: 14,791, Level: 29
    pancho_hideboo's Avatar
    Join Date
    Oct 2006
    Location
    Real Homeless
    Posts
    2,236
    Helped
    609 / 609
    Points
    14,791
    Level
    29

    Re: Switched Capacitor Circuits - PSS/PAC

    Quote Originally Posted by Puppet123 View Post
    Must use Cadence and must use PSS/PAC.
    What do you mean ?
    Use correct terminology.

    Anyway your question is no more than very easy thing.



    •   AltAdvertisment

        
       

  12. #12
    Full Member level 4
    Points: 1,399, Level: 8

    Join Date
    Apr 2017
    Posts
    223
    Helped
    4 / 4
    Points
    1,399
    Level
    8

    Re: Switched Capacitor Circuits - PSS/PAC

    I must use Cadence Spectre as my simulator from Cadence ADE on Cadence Virtuso Design Framework and use the PSS/PAC type simulations.
    Last edited by Puppet123; 4th September 2018 at 11:54.



  13. #13
    Advanced Member level 5
    Points: 14,791, Level: 29
    pancho_hideboo's Avatar
    Join Date
    Oct 2006
    Location
    Real Homeless
    Posts
    2,236
    Helped
    609 / 609
    Points
    14,791
    Level
    29

    Re: Switched Capacitor Circuits - PSS/PAC

    Quote Originally Posted by Puppet123 View Post
    Must use Cadence Virtuoso/Spectre and must use PSS/PAC simulation with Virtuoso/Spectre.
    No.
    You can not understand EDA tools you use at all.

    See https://www.edaboard.com/showthread.php?354854#10



  14. #14
    Full Member level 4
    Points: 1,399, Level: 8

    Join Date
    Apr 2017
    Posts
    223
    Helped
    4 / 4
    Points
    1,399
    Level
    8

    Re: Switched Capacitor Circuits - PSS/PAC

    Yes, I am required to use:

    Cadence Design Framework as my design environment, Cadence Spectre as my simulator and Cadence ViVA from Cadence ADE for Post Processing.

    Also, @pancho_hideboo, what is the code you posted earlier - is that MATLAB ?

    Thank you.

    --

    Post Processing of Roll-Off-Compensation for Transient Analysis Result

    Code:

    Code dot - [expand]
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    
    selectResult('tran)
     
    time_vec = drGetWaveformXVec( v("/Vout") )
    tstop = drGetElem( time_vec, drVectorLength(time_vec)-1 )
    printf("tstop = %g[usec]\n", tstop/1u)
     
    fmax = 25M
     
    tw_in = 1.0/(5*fmax)
    froll_off = 1.0 / tw_in
    fnyquist = 2*froll_off
     
    delta_f = 1.0 / tstop
    maxstep = 1.0 / fnyquist
    N = round(2*fnyquist * tstop)
    ip = round(log(N)/log(2))
    NN = 2**ip
    if( NN < N then NN=2**(ip+1) )
    fnyquist = NN / (2.0*tstop)
    printf("N = %d --> N = %d\n", N NN)
     
    k = tstop / (2.0 * tw_in)  ;  Amplitude Compensation
     
    Vout_freq = dft(v("/Vout") 0 tstop N "Rectangular" 1 1)
     
    Vref_freq = dft(v("/Vref") 0 tstop N "Rectangular" 1 1)
     
    xvec = drGetWaveformXVec(Vout_freq)
    len  = drVectorLength(xvec)
    printf("len = %d\n", len)
     
    bid = currentSubwindow(1)
    plot( db20(k*Vout_freq) ?expr '("tran-S21 without roll-off compensation") )
    plot( db20(Vout_freq/Vref_freq) ?expr '("tran-S21 with roll-off compensation") )
    Last edited by BradtheRad; 21st December 2018 at 07:07. Reason: Added code formatted window



  15. #15
    Advanced Member level 5
    Points: 14,791, Level: 29
    pancho_hideboo's Avatar
    Join Date
    Oct 2006
    Location
    Real Homeless
    Posts
    2,236
    Helped
    609 / 609
    Points
    14,791
    Level
    29

    Re: Switched Capacitor Circuits - PSS/PAC

    Cadence Skill Language.



--[[ ]]--