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.

Problem on ADS Oscillator Simulation Results Using Transient and HB

Status
Not open for further replies.

OrangeHalo

Junior Member level 2
Joined
Jan 16, 2019
Messages
23
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Location
Ann Arbor
Activity points
312
Hi all,

I am doing a simple negative resistasnce oscillator design using ADS. The transistor NE32484A is given in the Microwave Transistors Library of ADS. I built the oscillator based on the theory of Gonzales'z book. And when I did transient simulation for the first time, the oscillation frequency is 2.x GHz. It is weird. I changed the minimum time step from 1ns to 1ps, and the oscillation frequency became 10GHz. Then I did HB simulation, and the result is exactly the 2.xGHz I simulated in transient sim no matter how I change the transient assisted HB analysis. I haven't met this problem before, so could someone help me out? Thanks!

OrangeHalo
Here is the figures:
Schematic:
osc.jpg

transient waveform and spectrum with max. tran. step of 1ps:
tran.png

transient waveform and spectrum with max. tran. step of 10ps:
tran2.png

HB simulation result:
hb.png
Here is the netlist:
Code:
Options ResourceUsage=yes UseNutmegFormat=no EnableOptim=no TopDesignName="Project2_lib:1_MaxOutPwr2:schematic" DcopOutputNodeVoltages=yes DcopOutputPinCurrents=yes DcopOutputAllSweepPoints=no DcopOutputDcopType=0
model MSub1 MSUB H=30 mil Er=3 Mur=1 Cond=5.8e7 Hu=3.9e+034 mil T=0.7 mil TanD=0.001 Rough=0 mil DielectricLossModel=1 FreqForEpsrTanD=1.0 GHz LowFreqForTanD=1.0 kHz HighFreqForTanD=1.0 THz RoughnessModel=2 
MLIN2:TL15  N__15 N__11 Subst="MSub1" W=11.61 mil L=199.90 mil Wall1=1.0E+30 mil Wall2=1.0E+30 mil Mod=1 
L:L2  N__3 0 L=100 nH Noise=yes  
MLOC2:TL17  N__11 Subst="MSub1" W=11.61 mil L=199.90 mil Wall1=1.0E+30 mil Wall2=1.0E+30 mil Mod=1 
C:C1  0 N__3 C=3 pF 
V_Source:SRC2  N__24 0 Type="V_DC" Vdc=2 V SaveCurrent=1 
#uselib "MicrowaveTransistorLibrary" , "ph_nec_NE32484A_19921222"
ph_nec_NE32484A_19921222:X1  N__4 N__15 N__3 N__22 
V_Source:SRC1  N__11 0 Type="V_DC" Vdc=-0.365 V SaveCurrent=1 
HB:HB1 MaxOrder=4 Freq[1]=10 GHz Order[1]=5 StatusLevel=2 Restart=no TAHB_Enable=1 OscPortName="Yes" \
OutputPlan="HB1_Output" HBAHB_Enable=0 

OutputPlan:HB1_Output \
      Type="Output" \
      UseNodeNestLevel=yes \
      NodeNestLevel=2 \
      UseEquationNestLevel=yes \
      EquationNestLevel=2 \
      UseSavedEquationNestLevel=yes \
      SavedEquationNestLevel=2 \
      UseDeviceCurrentNestLevel=no \
      DeviceCurrentNestLevel=0 \
      DeviceCurrentDeviceType="All" \
      DeviceCurrentSymSyntax=yes \
      UseCurrentNestLevel=yes \
      CurrentNestLevel=999 \
      UseDeviceVoltageNestLevel=no \
      DeviceVoltageNestLevel=0 \
      DeviceVoltageDeviceType="All"

Tran:HB1_tran HB_Sol=1 SteadyState=1 StatusLevel=3 \
Freq[1]=10 GHz Order[1]=5  SteadyStateMinTime=50 nsec StopTime=150 nsec MaxTimeStep=1 psec 

Component:tahb_HB1 Module="ATAHB" Type="ModelExtractor" \ 
 Tran_Analysis="HB1_tran" HB_Analysis="HB1" 
Tran:Tran1 StartTime=0.0 nsec StopTime=150 nsec MaxTimeStep=1 psec MinTimeStep=1 fsec LimitStepForTL=yes \
TimeStepControl=2 TruncTol=7.0 ChargeTol=1.0e-14 IntegMethod=0 MaxGearOrder=2 \
Mu=0.5 MaxOrder=4 Freq[1]=1.0 GHz Order[1]=3 HB_Window=no \
HB_Sol=no ImpApprox=no ImpMode=1 UseInitCond=no \
LoadGminDC=no CheckKCL=yes CheckOnlyDeltaV=yes OverloadAlert=no DeviceBypass=no \
MaxIters=10 MaxItersDC=200 DevOpPtLevel=0 StatusLevel=2 OutputAllPoints=yes \
NoiseBandwidth=20G NoiseScale=1 ImpRelTrunc=1e-2 ImpAbsTrunc=1e-5 ImpEnforcePassivity=yes \
OutputPlan="Tran1_Output" 

OutputPlan:Tran1_Output \
      Type="Output" \
      UseNodeNestLevel=yes \
      NodeNestLevel=2 \
      UseEquationNestLevel=yes \
      EquationNestLevel=2 \
      UseSavedEquationNestLevel=yes \
      SavedEquationNestLevel=2 \
      UseDeviceCurrentNestLevel=no \
      DeviceCurrentNestLevel=0 \
      DeviceCurrentDeviceType="All" \
      DeviceCurrentSymSyntax=yes \
      UseCurrentNestLevel=yes \
      CurrentNestLevel=999 \
      UseDeviceVoltageNestLevel=no \
      DeviceVoltageNestLevel=0 \
      DeviceVoltageDeviceType="All"

R:R1  vo 0 R=50 Ohm Noise=yes 
MLOC2:TL19  N__24 Subst="MSub1" W=11.61 mil L=199.90 mil Wall1=1.0E+30 mil Wall2=1.0E+30 mil Mod=1 
MLIN2:TL18  N__4 N__24 Subst="MSub1" W=11.61 mil L=199.90 mil Wall1=1.0E+30 mil Wall2=1.0E+30 mil Mod=1 
C:C2  N__25 N__16 C=1.0 uF 
OscPort:Osc1  vo N__25 Z=0.2 Ohm NumOctaves=2 Steps=10 FundIndex=1 Harm=1 
MLIN2:TL14  N__4 N__16 Subst="MSub1" W=75.28 mil L=49.45 mil Wall1=1.0E+30 mil Wall2=1.0E+30 mil Mod=1 
MLOC2:TL13  N__16 Subst="MSub1" W=75.28 mil L=157.9 mil Wall1=1.0E+30 mil Wall2=1.0E+30 mil Mod=1 
MLOC2:TL16  N__15 Subst="MSub1" W=75.28 mil L=165 mil Wall1=1.0E+30 mil Wall2=1.0E+30 mil Mod=1 
aele S_StabCircle1=s_stab_circle(S,51);

Library contains the transistor:
I cannot upload it. But this library is contained in ADS_20xx_xx/oalibs/componentLib/Microwave_Transistors_vendor_kit.zip
 

Compare amplitude in transient analysis.

10GHz is numerical oscilation not physical oscilation.
Set GEAR2 only as integartion method in Transient Analysis.
 

A Fundamental Knowledge about the Oscillators..Please keep it well in your mind.

An oscillator is a free running device and oscillation frequency is NOT integer number so after a transient analysis then FFT wil NOT ( never and never ) give you exact Oscillation Frequency because You're using DISCRETE and LIMITED Time Samples in FFT. Resume :Never use FFT in Oscillator Designs.You can check the Oscillation Frequency Manually ( cursor-to-cursor ) but you cannot use FFT due to its LIMITED and DISCRETE Nature..

HB is more accurate in Oscillator Designs.I have designed maybe more than 30-35 oscillators, HB gave me all the time closer result.
 

Hi pancho,

Thanks for reply. I tried Gear2 and the result does not change. You are right the amplitude of the fs() is not match with the one showed on the transient waveform. But the waveform still changed if I choose the step from 1ps to 10ps.

OrangeHalo
 

Hi BigBoss,

Thanks for reply. It is correct that when simulating oscillator, we should use HB simulation.

I firstly simulated transient waveform, and I found that the frequency changed if I change the step size. Then I did fs() to figure out what happend. It was worng. Now I cannot understand why the waveform can change if I set different step size. As far as I know of HB, the transient assisted HB sets the fund freq using the transient waveform to decide the period of the circuit, and find the fund freq. If that is the case, it should find the fund freq as I can see on the transient waveform if the transient assised HB has the same setting as the transient simulation.

OrangeHalo
 

Last edited:

Thank you again.

Set oscillation kick as seed.
Does this mean set fund freq in transient analysis as 10Ghz?

And for the small signal analysis, can I just break the connection of the load and the transistor, and measure the impedance look into each node? If that is the case, when I look into the transistor, the impedance is -10-j*10, and for the load, the impedance is 3+j*10.

OrangeHalo
 

Does this mean set fund freq in transient analysis as 10Ghz?
No.

And for the small signal analysis, can I just break the connection of the load and the transistor, and measure the impedance look into each node? If that is the case, when I look into the transistor, the impedance is -10-j*10, and for the load, the impedance is 3+j*10.
No.
Show frequency characteristics.
 

freqd.png
S11 refers to looking into transistor, S22 refers to looking into load.

OrangeHalo
 

No.
Show more wide range, e.g. 100MHz - 50GHz.

Show polar plot of S11*S22.
Surely read and understand text book you refered in start of this thread.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top