3. 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 +=
sf
f
)(sH
)()(1
)(
)(
sHsG
sG
V
V
sG
i
o
f
⋅−
==
1)()( =⋅ sHsG (Phase is 0 deg. or multiple of 360 deg.)
Barkhausen’s Criteria:
Resonator
Amplifier
4.1
4. 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 )
Resonator
Output
Network0Z 0Z
1a 2a
1b 2b
][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Γ
Output
Network0 0Z
1a 2a
1b 2b
][S
inZ outZ
)( 1Γ )( 2Γ
LZ
)( LΓ
'
11S
'
22S
Term
Term1
Z=50 Ohm
Num=1
Term
Term2
Z=50 Ohm
Num=2
4.3
7. 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
L
L2
R=
L=2 nH
L
R1
R=422
L=100 nH
V_DC
SRC2
Vdc=-5 V
V_DC
SRC3
Vdc=12 V
L
R2
R=681-Rbias
L=100 nH
R
R3
R=50 Ohm
C
C2
C=1000 pF
I_Probe
ICC
C
C1
C=10 pF
ap_dio_MV1404_19930601
D1
L
L1
R=
L=1000 nH
V_DC
SRC1
Vdc=4.0 V
OscTest
OscTickler
Z=1.1 Ohm
Start=0.5 GHz
Stop=4.0 GHz
Points=201
VAR
VAR1
Rbias=50
Eqn
Var
R
R4
R=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 )
8. 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
m1
freq=
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
phase(S(1,1))
m4
m5
m4
f req=
phase(S(1,1))=0.005
1.445GHz
m5
f 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
m2
f req=
mag(S(1,1))=1.013
885.0MHz
m3
f 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
9. 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
HarmonicBalance
HB1
OscPortName="Osc1"
OscMode=yes
StatusLevel=2
Order[1]=7
Freq[1]=1.0 GHz
HARMONIC BALANCE
OscPort
Osc1
MaxLoopGainStep=
FundIndex=1
Steps=10
NumOctaves=2
Z=1.1 Ohm
V=
V_DC
SRC1
Vdc=4.0 V
L
L1
R=
L=1000 nH
ap_dio_MV1404_19930601
D1
C
C1
C=10 pF
L
L2
R=
L=2 nH
L
R1
R=422
L=100 nH
V_DC
SRC2
Vdc=-5 V
pb_hp_AT41411_19921101
Q2
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
10. 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
m6
harmindex=
dBm(Vout)=7.318
1
1 2 3 4 5 60 7
-30
-20
-10
0
-40
10
harmindex
dBm(Vout)
m6
m6
harmindex=
dBm(Vout)=7.318
1
harmindex
0
1
2
3
4
5
6
7
freq
0.0000 Hz
1.806 GHz
3.611 GHz
5.417 GHz
7.222 GHz
9.028 GHz
10.83 GHz
12.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(Vout)
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(Vres),mV
-400
-200
0
200
-600
400
ts(VB),mV
-600
-500
-400
-300
-700
-200
ts(VE),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(Vout),V
4.12 ts( )
11. 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
HarmonicBalance
HB2
Step=Tune_Step
Stop=Tune_Stop
Start=Tune_Start
SweepVar="Vtune"
OscPortName="Yes"
OscMode=yes
StatusLevel=3
Order[1]=7
Freq[1]=1.8 GHz
HARMONIC BALANCE
VAR
VAR2
Tune_Step=0.25
Tune_Stop=10
Tune_Start=0
Vtune=4 V
Rbias=50
Eqn
Var
HarmonicBalance
HB1
OscPortName="Osc1"
OscMode=yes
StatusLevel=3
Order[1]=7
Freq[1]=1.8 GHz
HARMONIC BALANCE
V_DC
SRC1
Vdc=Vtune
OscPort
Osc1
MaxLoopGainStep=
FundIndex=1
Steps=10
NumOctaves=2
Z=1.1 Ohm
V=
L
L1
R=
L=1000 nH
ap_dio_MV1404_19930601
D1
C
C1
C=10 pF
Pass the variable “Tune_Step” to dataset Plot oscillating frequency v.s. Tuning voltage
“Osc1”
4.13
12. 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]
m7
indep(m7)=
plot_vs(freq[1], Vtune)=1.806E9
4.000
m8
indep(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],GHz
m7
m8
m7
indep(m7)=
plot_vs(freq[1], Vtune)=1.806E9
4.000
m8
indep(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
Tuning_Sensitivity
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)]
Tuning_Sensitivity
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
VAR
VAR2
Tune_Step=0.25
Tune_Stop=18
Tune_Start=0
Vtune=4 V
Rbias=50
Eqn
Var
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],GHz
m7
m8
m7
indep(m7)=
plot_vs(freq[1], Vtune)=1.806E9
4.000
m8
indep(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
13. 12
5. (Source Pushing)
(Frequency pushing figure) (voltage source)
(Source pushing)
4.16 5 V 20 V
0.25 V Dataset osc_push
Vres
VAR
VAR2
Tune_Step=0.25 V
Tune_Stop=20 V
Tune_Start=5 V
Vtune=4 V
Vbias=12 V
Rbias=50
Eqn
Var
HarmonicBalance
HB2
Step=Tune_Step
Stop=Tune_Stop
Start=Tune_Start
SweepVar="Vbias"
OscPortName="Yes"
OscMode=yes
StatusLevel=3
Order[1]=7
Freq[1]=1.8 GHz
HARMONIC BALANCE
HarmonicBalance
HB1
OscPortName="Osc1"
OscMode=yes
StatusLevel=3
Order[1]=7
Freq[1]=1.8 GHz
HARMONIC BALANCE
V_DC
SRC1
Vdc=Vtune
L
L1
R=
L=1000 nH
ap_dio_MV1404_19930601
D1
C
C1
C=10 pF
Vout
V_DC
SRC3
Vdc=Vbias
L
R2
R=681-Rbias
L=100 nH
R
R3
R=50 Ohm
C
C2
C=1000 pF
I_Probe
ICC
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
m9
indep(m9)=
plot_vs(freq[1], Vbias)=1.825E9
13.000
m10
indep(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],GHz
m9m10
m9
indep(m9)=
plot_vs(freq[1], Vbias)=1.825E9
13.000
m10
indep(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
14. 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
VAR
VAR1
VSWRval=1
phi=0
nvw=11
vw2=2
vw1=1
Eqn
Var
HarmonicBalance
HB3
Step=0.1
Stop=2
Start=0
SweepVar="phi"
OscPortName="Yes"
OscMode=y es
StatusLev el=3
Order[1]=7
Freq[1]=1.8 GHz
HARMONIC BALANCE
VAR
VAR7
rho=(VSWRv al-1)/(VSWRv al+1)
iload=rho*sin(pi*phi)
load=rho*exp(j*pi*phi)
rload=rho*cos(pi*phi)
Eqn
Var
ParamSweep
Sweep1
Lin=nvw
Stop=vw2
Start=vw1
SweepVar="VSWRval"
PARAMETER SWEEP
S1P_Eqn
Buf f erLoad
S[1,1]=load
C
C2
C=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
15. 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
m12
indep(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
m12
indep(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[vswr_k,::]
m12
indep(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
m12
indep(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(Vout[vswr_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[vswr_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 variations
use @VSWR in the text to show the number
4.20