Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
×

# Agilent ADS 模擬手冊 [實習3] 壓控振盪器模擬

• Full Name
Comment goes here.

Are you sure you want to Yes No
Your message goes here

### Agilent ADS 模擬手冊 [實習3] 壓控振盪器模擬

1. 1. IV 1.8 GHz (rfsys.ntut@gmail.com) April 2014
2. 2. 1 (Advanced Design System, ADS) I ADS II DCS 1900 III IV ADS
3. 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. 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
5. 5. 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 ( )
6. 6. 5 bi ci C E B 1C 2C 3L bi ci C E B 1L 2L 3C bi ci C E B 1C 2C 3L bi ci 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: ..examplesTutorialLearnOSC_prjnetworks To your project: oscillator_prjnetworks 4.6 ADS
7. 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. 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. 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. 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. 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. 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. 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