Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

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

Status
Not open for further replies.

ethan

Member level 3
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.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top