how to simulate OTA with SC CMFB by using PSS, PAC, PNOISE?

Status
Not open for further replies.

ethan

Member level 3
Joined
Jul 7, 2004
Messages
67
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
942
how to simulate ota

Hi there,

This question is repeated here, since I haven't found the specific answer in this forum yet.

Can I use common ways (DC, AC, noise) to simulate OTA with SC CMFB, then later go to SC amplifier? I found I couldn't. I couldn't get the desired results. Then in this forum, I found I need to use PSS and PNOISE. I am a student and have no body to ask around in our lab, would you mind instructing me through my following specific questions?

1. I work on folded-cascode OTA with SC CMFB.
When I setup PSS and PNOISE, I found I need "port" for the inputs of diff-pair. So I found port "psin" in my library, but how can I specify the certain amount resistance (by default is 50ohms) in psin for diff-pair inputs? I attach the psin properties in this email. Which is the correct way to setup psin? If my circuit sampling frequency is 200kHz, what's the beat frequency should I setup in PSS?

3. I notice in PNOISE, there are two ways to simulate noise, one is in frequency domain with port "psin" inserted, another is in timedomain with "vsin" inserted as source. I have done two ways (I know what I did was not 60% right). My noise waveforms' shape just looks like open-loop gain waveform shape, there is no flicker noise corner frequency. It also is in same shape with what I did by using simple "noise" simulation in spectre. Can anybody tell me why?

4. Do I have to use PAC to do AC analysis, just like common AC simulation for continuous-time CMFB OTA? Since, before, I didn't know to use PSS, PAC and PNOISE, I only first use equavilent resistor to replace SC CMFB and add a voltage source to replace whole SC CMFB to do common AC analysis. So, how can I do real SC CMFB OPAMP AC simulation?

5. I am using TSMC0.35um technology and I think we only have spectre in our designkit. We got spectre_RF in our 0.18 um technology designkit. I know there are several threads before talking about PSS and PNOISE in spectre_RF. Can I still apply them to spectre?

I appreciate your time and help.

Ethan
 

sc-cmfb waveforms

I have searched our forum and found some useful discussions and instructions. Today,I have read Ken's paper and tried again, but I still couldn't get the appropriate results, I think.

Hence I still would like to ask some body whether he or she would like to look into this problem further if doesn't mind. I appreciate your help.

I attach my netlist in this email.


The brief description about my circuit and setup is following:

1. for the two diff-pair inputs, one input with 2.5v vdc ("V4") as common mode.
another input is vsin ("V3"). four clock signals for SC CMFB (clk1 and clk1_b, clk2 and clk2_b) for transimission gate switches with all 200kHz.
I didn't use "psin" as port, I only use vsin.


2. Since I followed Ken's paper on page 4 "First make sure the input signal is disabled",
I didn't specify the frequency value and transient amplitude in vsin, am I right?

3. In PNOISE setup, for input part, I don't know how to choose, to choose "none",or "voltage source", or something.
for output part, I chose "voltage", not port, not instance. Am I right?

3. For the waveform of PNOISE, its shape is still like the shape of open-loop gain plot.
for PAC, I got 10dB gain, which just like the results when I use common AC analysis, 10dB gain. However,
when I use equvilant circuit for SC CMFB, I can achieve 70dB; without CMFB for open-loop, I can achieve above 60dB.

4. for PSS, I doubt my results.

Ethan

ps. four plots and one netlist file are attached.
 

cmfb iprobe example

simulate pss together with pnoise
and you will get right result
 

spectre vsource type=sin

layes2 said:
simulate pss together with pnoise
and you will get right result

yes. I have simulated PSS, PNOISE and PAC all together. But, ...
 

noisetype=timedomain

still have got any good suggestion. I think my questions and me are too naive.

Here, I have tried Ken's paper for sample_and_hold circuit, I didn't follow exactly parameters from that example. But I think I have done pretty much same with my current version of spectre in Cadence. But my results (waveform) still look not correct. I got the waveform shape for my PNOISE outcome just like the shape for regular textbook opamp open-loop gain plots.

the waveforms for PNOISE simulation are attached.

Then sample-and-hold netlist , especially for PNOISE setup in frequency, is posted as following:

// Generated for: spectre
// Generated on: Jun 29 16:21:54 2005
// Design library name: ****
// Design cell name: sample_hold
// Design view name: schematic
simulator lang=spectre
global 0 vdd!
include "/home/cad/designkit/TSMC35/cmosp35.4.3/models/B3V/mm0355v.scs" section=tt_5v

// Library name: ****
// Cell name: sample_hold
// View name: schematic
V1 (Vin 0) vsource dc=0 mag=0 type=sine pacmag=1 ampl=1 fundname="input" \
fundname2="input2"
V47 (ph1 0) vsource type=pulse val0=0 val1=5 period=5u delay=200n \
rise=500p fall=500p width=2.2u fundname="clock"
V48 (0 ph1_b) vsource type=pulse val0=0 val1=5 period=5u delay=200n \
rise=500p fall=500p width=2.2u fundname="clock_b"

M1 (Vin ph1 Vout 0) nch5 w=2u l=500n as=1u*(2u) ad=1u*(2u) ps=2u+2*(2u) \
pd=2u+2*(2u) nrd=1u/(2u) nrs=1u/(2u) m=1 region=triode
M10 (Vout ph1_b Vin vdd!) pch5 w=2u l=500n as=1u*(2u) ad=1u*(2u) \
ps=2u+2*(2u) pd=2u+2*(2u) nrd=1u/(2u) nrs=1u/(2u) m=1 \
region=triode
C0 (Vout 0) capacitor c=10p

simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
digits=5 cols=80 pivrel=1e-3 ckptclock=1800 \
sensfile="../psf/sens.output"
dcOp dc write="spectre.dc" maxiters=150 maxsteps=10000 annotate=status
dcOpInfo info what=oppoint where=rawfile
pss pss fund=200K harms=10 errpreset=moderate tstab=10n
+ swapfile="swap" method=gear2only tstabmethod=gear2only
+ maxacfreq=50M annotate=status
pac pac start=1 stop=50M maxsideband=10 annotate=status
pnoise ( Vout 0 ) pnoise start=1 stop=50M maxsideband=10
+ iprobe=V1 refsideband=1 annotate=status saveallsidebands=yes
modelParameter info what=models where=rawfile
element info what=inst where=rawfile
outputParameter info what=output where=rawfile
designParamVals info what=parameters where=rawfile
saveOptions options save=allpub


The sample and hold netlist for PNOISE with timedomain setup is posted as following:

// Generated for: spectre
// Generated on: Jun 29 16:21:54 2005
// Design library name: ****
// Design cell name: sample_hold
// Design view name: schematic
simulator lang=spectre
global 0 vdd!
include "/home/cad/designkit/TSMC35/cmosp35.4.3/models/B3V/mm0355v.scs" section=tt_5v

// Library name: ****
// Cell name: sample_hold
// View name: schematic
V1 (Vin 0) vsource dc=0 mag=0 type=sine pacmag=1 ampl=1 fundname="input" \
fundname2="input2"
V47 (ph1 0) vsource type=pulse val0=0 val1=5 period=5u delay=200n \
rise=500p fall=500p width=2.2u fundname="clock"
V48 (0 ph1_b) vsource type=pulse val0=0 val1=5 period=5u delay=200n \
rise=500p fall=500p width=2.2u fundname="clock_b"

M1 (Vin ph1 Vout 0) nch5 w=2u l=500n as=1u*(2u) ad=1u*(2u) ps=2u+2*(2u) \
pd=2u+2*(2u) nrd=1u/(2u) nrs=1u/(2u) m=1 region=triode
M10 (Vout ph1_b Vin vdd!) pch5 w=2u l=500n as=1u*(2u) ad=1u*(2u) \
ps=2u+2*(2u) pd=2u+2*(2u) nrd=1u/(2u) nrs=1u/(2u) m=1 \
region=triode
C0 (Vout 0) capacitor c=10p


simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
digits=5 cols=80 pivrel=1e-3 ckptclock=1800 \
sensfile="../psf/sens.output"
dcOp dc write="spectre.dc" maxiters=150 maxsteps=10000 annotate=status
dcOpInfo info what=oppoint where=rawfile
pss pss fund=200K harms=10 errpreset=moderate tstab=10n
+ swapfile="swap" method=gear2only tstabmethod=gear2only
+ maxacfreq=50M annotate=status
pac pac start=1 stop=50M maxsideband=10 annotate=status
pnoise ( Vout 0 ) pnoise start=1 stop=50M maxsideband=10
+ iprobe=V1 refsideband=1 noisetype=timedomain numberofpoints=1
+ annotate=status saveallsidebands=yes
modelParameter info what=models where=rawfile
element info what=inst where=rawfile
outputParameter info what=output where=rawfile
designParamVals info what=parameters where=rawfile
saveOptions options save=allpub
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…