agilent ads 模擬手冊 [實習3] 壓控振盪器模擬

Post on 08-Aug-2015

282 Views

Category:

Engineering

25 Downloads

Preview:

Click to see full reader

TRANSCRIPT

IV 1.8 GHz

(rfsys.ntut@gmail.com)

April 2014

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

top related