The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> RF Simulators >> Unreasonable Results of Cadence Spectre
https://designers-guide.org/forum/YaBB.pl?num=1227157914

Message started by pancho_hideboo on Nov 19th, 2008, 9:11pm

Title: Unreasonable Results of Cadence Spectre
Post by pancho_hideboo on Nov 19th, 2008, 9:11pm

See attached figure.
This is a simple floating resonator driven by current sources.

I expect voltage swing centered at 0volt both for p0 and n0 nodes.
But Cadence Spectre give no swing at n0 and twice swing at p0.
While Agilent ADS on RFDE give voltage swing centered at 0volt both for p0 and n0 nodes I expect.

Why Cadence Spectre give such results ?
This is true for Tran, Shooting-PSS and HB-PSS in Cadence Spectre.

The followings are netlist I used.

Quote:
// Generated for: spectre
// Generated on: Nov 20 14:05:23 2008
// Design library name: Test
// Design cell name: Aho_Cadence_Spectre
// Design view name: schematic
simulator lang=spectre
global 0

// Library name: Test
// Cell name: Aho_Cadence_Spectre
// View name: schematic
L0 (net021 net028) inductor l=7.7m
R1 (net028 n0) resistor r=150/2
R0 (p0 net021) resistor r=150/2
I1 (n0 0) isource type=sine freq=134.2K ampl=40u pacmag=1 mag=1
I0 (0 p0) isource type=sine freq=134.2K ampl=40u pacmag=1 mag=1
C0 (p0 n0) capacitor c=5.2p
C1 (p0 n0) capacitor c=178p
simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
   tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
   digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \
   checklimitdest=psf
dcOp dc write="spectre.dc" maxiters=150 maxsteps=10000 annotate=status
dcOpInfo info what=oppoint where=rawfile
pss  pss  flexbalance=yes  fund=134.2K  harms=3  errpreset=moderate
+    tstab=0  method=gear2only  relref=alllocal  maxperiods=200
+    annotate=status  outputtype=freq  maxiters=15  restart=no
designParamVals info what=parameters where=rawfile
saveOptions options save=allpub


Title: Re: Unreasonable Results of Cadence Spectre
Post by pancho_hideboo on Nov 19th, 2008, 9:21pm

Very funny enough in Cadence Spectre.
If I change node p0 and n0, p0 is zero and n0 shows swing alternatively.

Result of Agilent ADS on RFDE doesn't change.

I think results should not change even though node p0 and n0 are changed.

Any devotee of Cadence Spectre, teach me the reason why cadence spectre give such funny results.

The followings are RFDE netlist I used.

Quote:
Options ResourceUsage=yes Verbose=yes UseNutmegFormat=no \
       TopDesignName="data"

; Generated by: DFII version 5.10.41.500.5.98 (using OASIS direct)
;
simulator lang=spectre
L0 (net021 net028) inductor l=7.7m
R1 (net028 p0) resistor r=150/2
R0 (n0 net021) resistor r=150/2
I1 (n0 0) isource type=sine freq=134.2K ampl=40u pacmag=1 mag=1
I0 (0 p0) isource type=sine freq=134.2K ampl=40u pacmag=1 mag=1
C0 (n0 p0) capacitor c=5.2p
C1 (p0 n0) capacitor c=178p
simulator lang=ads
Options:Options1 Temp=27 Tnom=27 TopologyCheck=yes GiveAllWarnings=yes \
   MaxWarnings=10
DC:DC1 SaveDCVoltageSolution=yes SaveDCCurrentSolution=yes DevOpPtLevel=2 \
   StatusLevel=2 UseFiniteDiff=no OutputPlan[1]="GlobalOutputPlan" \
   OutputPlan[2]="GlobalInhibitPlan"
HB:HB1 Freq[1]=134.2k Order[1]=3 Oversample[1]=1 MaxOrder=4 StatusLevel=3 \
   OutputPlan[1]="GlobalOutputPlan" OutputPlan[2]="GlobalInhibitPlan"
Tran:HB1_tran HB_Sol=1 SteadyState=1 OutputPlan[1]="GlobalOutputPlan" \
   OutputPlan[2]="GlobalInhibitPlan" StatusLevel=3 Freq[1]=134.2k \
   Order[1]=3
Component:tahb_HB1 Module="ATAHB" Type="ModelExtractor" \
   Tran_Analysis="HB1_tran" HB_Analysis="HB1"
OutputPlan:GlobalOutputPlan Type="Output" UseBuiltinRule=no \
   OverrideInhibitRule=no UseNodeNestLevel=yes NodeNestLevel=2 \
   UseCurrentNestLevel=yes CurrentNestLevel=999 \
   UseDeviceCurrentNestLevel=no
OutputPlan:GlobalInhibitPlan Type="Inhibit" UseBuiltinRule=no \
   OverrideInhibitRule=no NodeRegExpr[1]="\.net[0-9]+$|^net[0-9]+$"

mapping {
 pinMapping {
   inductor 1:"PLUS" 2:"MINUS"
   capacitor 1:"PLUS" 2:"MINUS"
   resistor 1:"PLUS" 2:"MINUS"
   isource 1:"PLUS" 2:"MINUS"
 }
}


Title: Re: Unreasonable Results of Cadence Spectre
Post by Ken Kundert on Nov 20th, 2008, 12:10am

The problem is not with the simulator, but with the circuit. You cannot just leave a subcircuit completely floating because there is an infinite number of valid solutions. Spectre happens to pick a different one than ADS, but they are both equally valid. Older simulators would simply refuse to run such a circuit, saying that there is "no DC path to ground" from the resonator. Spectre addresses this problem by picking one node and simply connecting it to ground through a 1TΩ resistor. I am not sure how ADS is dealing with it, but I suspect it is connecting both nodes to ground through a large resistor.

-Ken

Title: Re: Unreasonable Results of Cadence Spectre
Post by jbdavid on Dec 18th, 2008, 7:52pm

And if you connect both nodes to ground with the SAME value of large resistor you should get the result you expected.

this should be a pretty well known issue for any  longer-term user of spice and/or spectre.

jbd

Title: Re: Unreasonable Results of Cadence Spectre
Post by pancho_hideboo on Dec 18th, 2008, 10:59pm


jbdavid wrote on Dec 18th, 2008, 7:52pm:
And if you connect both nodes to ground with the SAME value of large resistor you should get the result you expected.
this should be a pretty well known issue for any  longer-term user of spice and/or spectre.

If we use old spice simulator, simulator doesn't work for such floating inductor, showing error message of NO DC path.

But if we use relative new simulator, simulator can work even for floating inductor.

In RF application, we often uses floating resonator.
http://www.designers-guide.org/Forum/YaBB.pl?num=1229312772




The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.