agilent ads 模擬手冊 [實習3] 壓控振盪器模擬
TRANSCRIPT
1
(Advanced Design System, ADS)
I ADS II DCS
1900 III
IV
ADS
2
4.1
4.2
1.
( )
4.1 (Barkhausen’s Criteria)
( ) ( )G s H s 1(
( ) ( ) 1G s H s = − ) 4.1 ( )G s ( ( )G s )
( ( )H s )
(
)
( ) ( )G s H s
++
)(sG
)(sH
oViV
fV
fod VVV +=
sff
)(sH
)()(1
)()(
sHsG
sG
V
VsG
i
of ⋅−
==
1)()( =⋅ sHsG (Phase is 0 deg. or multiple of 360 deg.)
Barkhausen’s Criteria:
Resonator
Amplifier
4.1
3
4.2 ( ) ( )
( )
11 1S ′ >
( ) GΓ 11S′
11G S ′Γ ⋅ 1( ( ) ( )G s H s 1)
22 1S′ > ( )
22 1L S′Γ ⋅ =
11 1G S ′Γ ⋅ = 22 1L S′Γ ⋅ =
ADS term GΓ 11S′
4.3 11 1G S ′Γ ⋅ = (
ADS )
ResonatorOutput
Network0Z 0Z
1a2a
1b2b
][S
inZ outZ
)( 1Γ )( 2ΓLZ
)( LΓGZ
)( GΓ
'11S '
22S
1'11 =⋅Γ SG
1'22 =⋅Γ SL
If it is oscillating at one port, it must be
simultaneously oscillating at the other port.
Two-port Reflection:
4.2
Resonator
GZ
)( GΓ
OutputNetwork0 0Z
1a2a
1b2b
][ S
inZ outZ
)( 1Γ )( 2ΓLZ
)( LΓ
'11S '
22S
TermTerm1
Z=50 OhmNum=1
TermTerm2
Z=50 OhmNum=2
4.3
4
4.4
( )
( )
( )R ω ( )DR ω
( ) ( ) 0DX Xω ω+ = ( 0
)
LRResonator
I)()()( ωωω jXRZ +=
0)( and, )()()( >+−=− IRIjXIRIZ DDDD
)(tv)(tvD
One-port Negative Resistance:
0)()( =− ωω DRR
0)()( =+ ωω DXX
( ) ( ) ( )Z j R jXω ω ω= +
( ) ( ) ( )D D DZ j R jXω ω ω− = − + ( ) 0DR ω >
4.4
2.
4.5 Colpitts Hartley
(Topology) Hartley
Clapp Siler Copitts
LC LC
LC
( )
( )1 2f LCπ= (
) 4.5
(
)
5
bici
C
E
B
1C
2C
3L
bici
C
E
B
1L
2L
3C
bici
C
E
B
1C
2C
3L
bici
C
E
B
1C
2C
3L
Colpitts Hartley
Clapp Siler
4.5
4.3
1. oscillator ADS
Copy a reference design “Osctest_VCO.dsn” from ADS examples:
..\examples\Tutorial\LearnOSC_prj\networks\
To your project:
\oscillator_prj\networks\
4.6 ADS
6
2. ( )
4.7 Osctest_VCO.dsn
OscTest
OscTest
( S_Param
) Z OscTest Start Stop Points
Z ( 1 0
) OscTest
VB
Vout
VE
VE VEVres
1.8 GHz Voltage-Controlled Oscillator
S-PARAMETER OSCTEST for Loop Gain
LL2
R=L=2 nH
L
R1
R=422
L=100 nH
V_DCSRC2
Vdc=-5 V
V_DCSRC3
Vdc=12 V
L
R2
R=681-Rbias
L=100 nH
R
R3R=50 Ohm
CC2
C=1000 pF
I_Probe
ICC
C
C1C=10 pF
ap_dio_MV1404_19930601D1
L
L1
R=
L=1000 nHV_DCSRC1
Vdc=4.0 V
OscTest
OscTicklerZ=1.1 Ohm
Start=0.5 GHz
Stop=4.0 GHzPoints=201
VAR
VAR1Rbias=50
EqnVar
R
R4R=Rbias
pb_hp_AT41411_19921101
Q2
Resonator Active Part
(include load network)
Varactor: Voltage-controlled capacitor
OscTest
OscTest is a controller base on S-parameter
simulation to determine if the circuit oscillates.
4.7 1.8 GHz
4.8 osc_test.ds dataset
S(1,1) OscTest (Polar plot)
1 4.8
(1+j0) S(1,1) 1
S11>1 S(1,1)
(1+j0) Maker m1 1.172
0 1.41 GHz 1 GHz
2 GHz ( 1.41 GHz 200 MHz, 5 GHz )
7
-1.2 -1.0 -0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2-1.4 1.4
freq (500.0MHz to 4.000GHz)
S(1
,1) m1
m1freq=S(1,1)=1.172 / 0.975
1.410GHz
Setup the dataset named: osc_test, and data
display named: osc_basics.
Show S(1,1) on
a Polar-plot
When the x-axis value of
1.0 is circled by the
trace(because S11 > 1), it
means that the circuit
oscillates. This is the
purpose of the OscTest
component.
S11 > 1
4.8 S(1,1) ( )
4.9 S(1,1) 1 885
MHz 25
0 1.445 GHz 1.1
1.8 GHz 1.8 GHz −6.6 1.08
1.0 1.5 2.0 2.5 3.0 3.50.5 4.0
-20
-10
0
10
20
30
-30
40
freq, GHz
phas
e(S
(1,1
))
m4m5
m4f req=phase(S(1,1))=0.005
1.445GHzm5f req=phase(S(1,1))=-6.604
1.795GHz
1.0 1.5 2.0 2.5 3.0 3.50.5 4.0
0.6
0.7
0.8
0.9
1.0
1.1
1.2
0.5
1.3
freq, GHz
mag
(S(1
,1))
m2 m3
m2f req=mag(S(1,1))=1.013
885.0MHzm3f req=mag(S(1,1))=1.009
3.982GHz
Around 1.8 GHz (Marker m5), the phase is not 0o, but this is OK at
this time. The harmonic-balance simulation will be performed later.
S11 > 1 above 880 MHz
The device is unstable and
has a chance to oscillate.
4.9 S(1,1)
3. ( )
4.10 Osctest_VCO.dsn OscTest HB
OscPort OscPort HB V
8
(HB AC ) NumOctaves
Freq[1] Freq[1] 4.10 Freq[1]
1 GHz OscPort NumOctaves 2
0.5 GHz (1 GHz Octave) 2 GHz (1 GHz
Octave) Freq[1] 2 Octave OscPort Steps
0.5 GHz 2 GHz
10 Q Steps
FundIndex = 1 HB Freq[1] 1 GHz
1 GHz Freq[1] OscPort
OscPort
OscPort index = 1 Freq[1]
HB Order[1] 7 3 7 15
31 ( DC
4 8 16 32 2 )
7 Order[1]
StatusLevel 3 OscMode OscPortName
OscPort
VE
VE VEVres
VB
HarmonicBalanceHB1
OscPortName="Osc1"OscMode=yesStatusLevel=2Order[1]=7Freq[1]=1.0 GHz
HARMONIC BALANCE
OscPortOsc1
MaxLoopGainStep=FundIndex=1Steps=10NumOctaves=2Z=1.1 OhmV=
V_DCSRC1Vdc=4.0 V
LL1
R=L=1000 nH
ap_dio_MV1404_19930601D1
CC1C=10 pF
LL2
R=L=2 nH
LR1
R=422L=100 nH
V_DCSRC2Vdc=-5 V
pb_hp_AT41411_19921101Q2
OscPort
Enable the oscillation analysis
with “Use Oscport” method.
Oscport HB simulation
attempts to find the correct
oscillating frequency using
loop gain and current
(Barkhausen’s Criteria).
3
4.10 OscPort
9
Dataset osc_port.ds Data Display
( Freq[1]) 1.806 GHz 4.11
Vout ( dBm() ) plot_vs(dBm(Vout), freq)
x (fundamental)
( 50 dBm() )
ts() 4.12
Eqn loop_current=real(ICC.i[0])
Eqn osc_freq=freq[1]
loop_current
-0.011
osc_freq
1.806E9
m6harmindex=dBm(Vout)=7.318
1
1 2 3 4 5 60 7
-30
-20
-10
0
-40
10
harmindex
dBm
(Vou
t)
m6
m6harmindex=dBm(Vout)=7.318
1
harmindex
01234567
freq
0.0000 Hz1.806 GHz3.611 GHz5.417 GHz7.222 GHz9.028 GHz10.83 GHz12.64 GHz
harm_power
<invalid>7.318
-2.208-17.501-17.061-27.317-27.815-35.340
Eqn harm_power=dBm(Vout[0::1::7])
2 4 6 8 10 120 14
-30
-20
-10
0
-40
10
freq, GHz
dBm
(Vou
t)
Fundamental Frequency (oscillation frequency)
Use dBm( ) to show the signal power
(Note: x-axis is “harmonic index”)
Use plot_vs( )to show the signal
power versus frequency.
(Note: x-axis is now “frequency”)
4.11
-600
-500
-400
-300
-700
-200
ts(V
res)
, mV
-400
-200
0
200
-600
400
ts(V
B),
mV
-600
-500
-400
-300
-700
-200
ts(V
E),
mV
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.10.0 1.2
-0.5
0.0
0.5
-1.0
1.0
time, nsec
ts(V
out)
, V
4.12 ts( )
10
4. (Frequency Tuning Sensitivity)
(Voltage-controlled oscillator, VCO)
(Varactor)
( Tuning sensitivity KV
) MHz/V 1 V KV
1 KV
KV KV
( )
HB1 HB HB2
1.8 GHz Freq[1] 1.8 GHz Vtune
Vtune 0 V 10 V Step 0.25 V
Dataset osc_tune Tune_Step Dataset
Freq[1] Vtune
Vres
HarmonicBalanceHB2
Step=Tune_StepStop=Tune_StopStart=Tune_StartSweepVar="Vtune"OscPortName="Yes"OscMode=yesStatusLevel=3Order[1]=7Freq[1]=1.8 GHz
HARMONIC BALANCE
VARVAR2
Tune_Step=0.25Tune_Stop=10Tune_Start=0Vtune=4 VRbias=50
EqnVar
HarmonicBalanceHB1
OscPortName="Osc1"OscMode=yesStatusLevel=3Order[1]=7Freq[1]=1.8 GHz
HARMONIC BALANCE
V_DCSRC1Vdc=Vtune
OscPortOsc1
MaxLoopGainStep=FundIndex=1Steps=10NumOctaves=2Z=1.1 OhmV=
LL1
R=L=1000 nH
ap_dio_MV1404_19930601D1
CC1C=10 pF
Pass the variable “Tune_Step” to dataset Plot oscillating frequency v.s. Tuning voltage
“Osc1”
4.13
11
Freq[1] Vtune 4.14 KV
Freq[1] Vtune 4.14 Maker
(diff() ) Vtune
Vtune( ) KV
KV (
)
Vtune 18 V 4.15
12 V ( )
Eqn osc_freq=freq[1]
m7indep(m7)=plot_vs(freq[1], Vtune)=1.806E9
4.000m8indep(m8)=plot_vs(freq[1], Vtune)=1.903E9
6.500
1 2 3 4 5 6 7 8 90 10
1.75
1.80
1.85
1.90
1.95
2.00
2.05
1.70
2.10
Vtune
freq
[1],
GH
z
m7
m8
m7indep(m7)=plot_vs(freq[1], Vtune)=1.806E9
4.000m8indep(m8)=plot_vs(freq[1], Vtune)=1.903E9
6.500
Eqn Tuning_Sensitivity=diff(freq[1])/Tune_Step[0]
1 2 3 4 5 6 7 8 90 10
6.0E7
8.0E7
1.0E8
1.2E8
1.4E8
1.6E8
4.0E7
1.8E8
Vtune
Tun
ing_
Sen
sitiv
ity
1.75E9 1.80E9 1.85E9 1.90E9 1.95E9 2.00E91.70E9 2.05E9
6.0E7
8.0E7
1.0E8
1.2E8
1.4E8
1.6E8
4.0E7
1.8E8
osc_freq[0::1::(tune_pts-1)]
Tun
ing_
Sen
sitiv
ity
Eqn f_pts=sweep_size(osc_freq)
f_pts
41
tune_pts
40
Eqn tune_pts=sweep_size(Tuning_Sensitivity)
Eqn Tuning_Sensitivity_band=(m8-m7)/(indep(m8)-indep(m7))
Tuning_Sensitivity_band
3.904E7
m7
1.806E9
m8
1.903E9
Oscillating frequency v.s. Tuning voltage Calculate tuning sensitivity from
makers m7 and m8
Calculate sensitivity by using
diff() function.Note: Since no “padding” with diff(),
there will be 1 point less than freq[1]
points.
Sensitivity v.s. Vtune Sensitivity v.s. Frequency
4.14
VARVAR2
Tune_Step=0.25Tune_Stop=18Tune_Start=0Vtune=4 VRbias=50
EqnVar
2 4 6 8 10 12 14 160 18
1.7
1.8
1.9
2.0
2.1
1.6
2.2
Vtune
freq
[1],
GH
z
m7
m8
m7indep(m7)=plot_vs(freq[1], Vtune)=1.806E9
4.000m8indep(m8)=plot_vs(freq[1], Vtune)=2.134E9
12.000Sweep Vtune up to 18 V
The diode is breakdown
above 12 V (acts like a
resistor), it no longer acts
like a variable capacitor.
Diode = Varactor
Maximum oscillating
frequency is 2.13 GHz
4.15
12
5. (Source Pushing)
(Frequency pushing figure) (voltage source)
(Source pushing)
4.16 5 V 20 V
0.25 V Dataset osc_push
Vres
VARVAR2
Tune_Step=0.25 VTune_Stop=20 VTune_Start=5 VVtune=4 VVbias=12 VRbias=50
EqnVar
HarmonicBalanceHB2
Step=Tune_StepStop=Tune_StopStart=Tune_StartSweepVar="Vbias"OscPortName="Yes"OscMode=yesStatusLevel=3Order[1]=7Freq[1]=1.8 GHz
HARMONIC BALANCE
HarmonicBalanceHB1
OscPortName="Osc1"OscMode=yesStatusLevel=3Order[1]=7Freq[1]=1.8 GHz
HARMONIC BALANCE
V_DCSRC1Vdc=Vtune
LL1
R=L=1000 nH
ap_dio_MV1404_19930601D1
CC1C=10 pF
Vout
V_DCSRC3Vdc=Vbias
LR2
R=681-RbiasL=100 nH
RR3R=50 Ohm
CC2C=1000 pF
I_ProbeICC
Change the supply voltage
to a variable “Vbias”Sweep the supply voltage “Vbias” from 5 V to
20 V while Vtune is now held constantly at 4 V.(In practice, Vtune is set to a voltage that oscillator oscillates
at “target” center frequency.)
4.16
4.17 source pushing
12 V source pushing
source pushing figure 21.77 MHz/V
m9indep(m9)=plot_vs(freq[1], Vbias)=1.825E9
13.000m10indep(m10)=plot_vs(freq[1], Vbias)=1.781E9
11.000
6 8 10 12 14 16 184 20
0.5
1.0
1.5
0.0
2.0
Vbias
freq
[1],
GH
z
m9m10
m9indep(m9)=plot_vs(freq[1], Vbias)=1.825E9
13.000m10indep(m10)=plot_vs(freq[1], Vbias)=1.781E9
11.000
Eqn Source_pushing=(m9-m10)/(indep(m9)-indep(m10))
Source_pushing
2.177E7
Plot freq[1] v.s. Vbias to
show the source pushing
results. Here, use makers
and equations to calculate
the pushing figure around
Vbias = 12 V. As we can see,
this oscillator has the source
pushing figure equals to
21.77 MHz/V.
4.17
13
6. (Load Pulling)
(Frequency pulling figure) (load)
(Load pulling) 50
( )
50
Osctest_VCO.dsn Osctest_VCO_pull.dsn HB HB1
HB2 HB HB3
50 S1P_Eqn S1P_Eqn
VSWR ( ) Load pulling VSWR
25 MHz@VSWR=1.2 VSWR 1.2
25 MHz 4.18
VSWR VSWR (0 2π VSWR
) VSWRval phi VSWRval
ParamSweep HB3 HB3 Dataset
Vout VARVAR1
VSWRval=1phi=0nvw=11vw2=2vw1=1
EqnVar
HarmonicBalanceHB3
Step=0.1Stop=2Start=0SweepVar="phi"OscPortName="Yes"OscMode=y esStatusLev el=3Order[1]=7Freq[1]=1.8 GHz
HARMONIC BALANCE
VARVAR7
rho=(VSWRv al-1)/(VSWRv al+1)iload=rho*sin(pi*phi)load=rho*exp(j*pi*phi)rload=rho*cos(pi*phi)
EqnVar
ParamSweepSweep1
Lin=nvwStop=vw2Start=vw1SweepVar="VSWRval"
PARAMETER SWEEP
S1P_EqnBuf f erLoadS[1,1]=load
CC2C=1000 pF
vw1: VSWR sweep start
vw2: VSWR sweep stop
nvw: num. of VSWR sweep
real part of load
sweep load
Image part of load
Sweep load for different constant VSWR circles in Smith chart.
Save these variables in dataset
4.18
14
VSWR 4.19 (
) Rectangular plot Trace Expression
marker ( m12) m12
VSWR 4.20 VSWR
VSWR ( phi 0 2π)
Rectangular plot VSWR
( VSWR=1.2) phi ( )
( 1.806 GHz) df_peak
VSWR = 1.2
m12indep(m12)=vs([0::sweep_size(VSWRval)-1],VSWRval)=2.000
1.200
Eqn refl=rload+j*iload
Eqn vswr_k=(nvw[0,0]-1)*(indep(m12)-vw1[0,0])/(vw2[0,0]-vw1[0,0])
Eqn VSWR=vswr_k*(vw2[0,0]-vw1[0,0])/(nvw[0,0]-1)+(vw1[0,0])
Eqn LoadRefl=mag(refl[::,1])
Eqn df_peak=max(abs(freq[vswr_k,::,1]-1.806e9))
df_peak
3.202E7
Load Pulling Figure @ VSRW=1.200
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.91.0 2.0
VSWR
m12
m12indep(m12)=vs([0::sweep_size(VSWRval)-1],VSWRval)=2.000
1.200
Write down these equations for load pulling figure measurement
@certain VSWR value. (You can change VSWR by scrolling marker m12)
Find peak frequency that deviates
from center frequency 1.086 GHz.
4.19
phi (0.000 to 2.000)
refl[
vsw
r_k,
::]
m12indep(m12)=vs([0::sweep_size(VSWRval)-1],VSWRval)=2.000
1.200
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.91.0 2.0
VSWR
m12
m12indep(m12)=vs([0::sweep_size(VSWRval)-1],VSWRval)=2.000
1.200
0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.80.0 2.0
0.65
0.70
0.75
0.80
0.85
0.60
0.90
phi ( *pi radians)
mag
(Vou
t[vsw
r_k,
::,1]
)
0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.80.0 2.0
1.7800G
1.7900G
1.8000G
1.8100G
1.8200G
1.8300G
1.7700G
1.8400G
phi ( *pi radians)
freq
[vsw
r_k,
::,1]
, Hz
Eqn refl=rload+j*iload
Eqn vswr_k=(nvw[0,0]-1)*(indep(m12)-vw1[0,0])/(vw2[0,0]-vw1[0,0])
Eqn VSWR=vswr_k*(vw2[0,0]-vw1[0,0])/(nvw[0,0]-1)+(vw1[0,0])
Eqn LoadRefl=mag(refl[::,1])
Frequency variation for VSWR = 1.20
Eqn df_peak=max(abs(freq[vswr_k,::,1]-1.806e9))
df_peak
3.202E7
Load Pulling Figure @ VSRW=1.200
Constant VSWR circleVout amplitude variations
Frequency variationsuse @VSWR in the text to show the number
4.20
15
7.
ADS
Osctest_VCO.dsn HB 4.21
Order 15( 7 )
ADS Oversample[1] 4 PhaseNoise yes
HB Noise Nonlinear noise
Noise(1) Noise(2) ADS
pnmx ( ) dBc
dBc/Hz( ADS Hz y
/Hz ) 10 kHz
−78.39 dBc/Hz( −78.39 dBc/Hz@10 kHz)
−98.34 dBc/Hz@100 kHz −118.08 dBc/Hz@1 MHz
HarmonicBalanceHB1
OscPortName="Osc1"OscMode=yesSortNoise=Sort by valueNoiseNode[1]="Vout"PhaseNoise=yesNLNoiseDec=5NLNoiseStop=10.0 MHzNLNoiseStart=1.0 HzOversample[1]=4StatusLevel=3Order[1]=15Freq[1]=1.8 GHz
HARMONIC BALANCE
Phase Noise Simulation Setup
4.21
m11noisefreq=pnmx=-78.390
10.00kHz
m13noisefreq=pnmx=-98.340
100.0kHz
m14noisefreq=pnmx=-118.079
1.000MHz
1E1 1E2 1E3 1E4 1E5 1E61 1E7
-120
-100
-80
-60
-40
-20
0
-140
20
noisefreq, Hz
pnm
x, d
Bc
m11
m13
m14
m11noisefreq=pnmx=-78.390
10.00kHz
m13noisefreq=pnmx=-98.340
100.0kHz
m14noisefreq=pnmx=-118.079
1.000MHz
4.22 (pnmx)
16
4.4
HB