The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> RF Simulators >> QPSS simulation for Mixer with LO dividers
https://designers-guide.org/forum/YaBB.pl?num=1215068547

Message started by Tuc on Jul 3rd, 2008, 12:02am

Title: QPSS simulation for Mixer with LO dividers
Post by Tuc on Jul 3rd, 2008, 12:02am

Hi, guys,

I'm running QPSS (Flexible Balance) for mixers with LO dividers, however, the speed is untolerable. It takes about 5 hours for one QPSS iteration!!

Is there any methods to speed up the simulation? Thanks very much.

-- Tuc

Title: Re: QPSS simulation for Mixer with LO dividers
Post by Stefan on Jul 3rd, 2008, 12:54am

With so few information, the only possible hint is to simplify your circuit ... check your frequencies, maybe you can skip the RF divider using PWLs ...

Title: Re: QPSS simulation for Mixer with LO dividers
Post by sheldon on Jul 3rd, 2008, 6:13am

Tuc,

  Some information would be useful in assisting you,

What are the clock and input frequencies?
What are the divide ratios?
Are you using the freqdivide option?
How many tones/fundamental are you using?
Do all the tones at the same frequency have the same fundname
or do you have different fundnames for I,Q,I_, and Q_?

                                                                    Best Regards,

                                                                       Sheldon

Title: Re: QPSS simulation for Mixer with LO dividers
Post by Tuc on Jul 3rd, 2008, 6:27am

Thank you very much for your reply, Sheldon and Stefan.

What are the clock and input frequencies?
-- The clock is around 100MHz, input frequencies is at the same level.

What are the divide ratios?
-- Four.

Are you using the freqdivide option?
-- Yes, I did.
How many tones/fundamental are you using?
-- Two tone at the RF input (100.5MHz and 100.6MHz), and one tone at LO (400MHz, after dividing should be 100MHz).

Do all the tones at the same frequency have the same fundname
-- No same freq.

or do you have different fundnames for I,Q,I_, and Q_?
-- ? I do not catch this question, sorry.

Thanks,
Tuc

Title: Re: QPSS simulation for Mixer with LO dividers
Post by pancho_hideboo on Jul 3rd, 2008, 6:45am


Tuc wrote on Jul 3rd, 2008, 12:02am:
I'm running QPSS (Flexible Balance) for mixers with LO dividers, however, the speed is untolerable. It takes about 5 hours for one QPSS iteration!!
Is there any methods to speed up the simulation?

Show me portions of your netlist regarding signal statement,  analysis statement and option statement.
Also show me version of your Cadence Spectre.

http://www.designers-guide.org/Forum/YaBB.pl?num=1205223090
http://www.designers-guide.org/Forum/YaBB.pl?num=1208334972
http://www.designers-guide.org/Forum/YaBB.pl?num=1208883935


Title: Re: QPSS simulation for Mixer with LO dividers
Post by Tuc on Jul 3rd, 2008, 9:08am

Thank you, Pancho. Here's the related netlist:

PORT_lo (net063 0) port r=50 num=1 type=sine freq=flo_div dbm=plo_div \
       fundname="flo_div"
PORT_rf (vin 0) port r=50 type=sine freq=frf dbm=prf freq2=fund2 dbm2=prf \
       pacdbm=prf mag=1 fundname="frf" fundname2="fund2"

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
sweepqpss  sweep  param=prf  start=-60  stop=-20  lin=1
+          values=[-40]  {
 qpss  qpss  flexbalance=yes  oversample=[4  1  1]
+       funds=["flo_div"  "frf"  "fund2"]  maxharms=[4  3  3]
+       errpreset=moderate  tstab=100n  annotate=status  freqdivide=4

}

The Spectre version is 6.1.0.151 -- 26 May 2006.

-- Tuc

Title: Re: QPSS simulation for Mixer with LO dividers
Post by pancho_hideboo on Jul 3rd, 2008, 5:35pm

Unless you need both upper and lower IM3, you can invoke 2 tone HB-QPSS/QPAC instead of 3 tone HB-QPSS.


Tuc wrote on Jul 3rd, 2008, 9:08am:
PORT_lo (net063 0) port r=50 num=1 type=sine freq=flo_div dbm=plo_div \
      fundname="flo_div"

In the above, flo_div is 400MHz ?


Tuc wrote on Jul 3rd, 2008, 9:08am:
PORT_rf (vin 0) port r=50 type=sine freq=frf dbm=prf freq2=fund2 dbm2=prf \
      pacdbm=prf mag=1 fundname="frf" fundname2="fund2"

In the above, frf=100.5MHz and fund2=100.6MHz ?


Tuc wrote on Jul 3rd, 2008, 9:08am:
sweepqpss  sweep  param=prf  start=-60  stop=-20  lin=1
+          values=[-40]  {

Why do you set lin=1 ?


Tuc wrote on Jul 3rd, 2008, 9:08am:
 qpss  qpss  flexbalance=yes  oversample=[4  1  1]
+       funds=["flo_div"  "frf"  "fund2"]  maxharms=[4  3  3]
+       errpreset=moderate  tstab=100n  annotate=status  freqdivide=4
}

Add restart=no  maxperiods=200.
And you had better increase maxharms of "flo_div".
It might be rather fast if you set tstab=0n.


Tuc wrote on Jul 3rd, 2008, 9:08am:
The Spectre version is 6.1.0.151 -- 26 May 2006.

Although HB-QPSS of SpectreRF is still very slow compared to Agilent ADS or GoldenGate even if I use current SpectreRF, I think its simulation speed is practical level.

But HB-QPSS of old SpectreRF such as 6.0USR1, 6.0USR2, 6.1 is very very very slow and doesn't converge at all in many cases.
So they are not practical usel level.
Since you are using fairly old SpectreRF, simulation speed will be still slow even if you do tuning of netlist.

I recommend you to update Spectre.


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