Home > Community > Blogs > RF Design > tips for simulating a transmit mixer in spectrerf
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more conveniennt.

Register | Membership benefits
Get email delivery of the RF Design blog (individual posts).


* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

Tips for Simulating a Transmit Mixer in SpectreRF

Comments(5)Filed under: RF design, Spectre, Spectre RF, Harmonic Balance, spectreRF, MMSIM, ADE-L, RF Simulation, Analog Simulation, RF, mixer

Some typical questions that I receive from newer SpectreRF users are:

  • How do I simulate a transmit mixer?
  • How do I look at both upper and lower sidebands?  
  • How do I set up my simulation for PAC and Pnoise?
  • When I plot my data, how do the indexes correspond with the sidebands?

Hopefully the following will help you understand how to do this! 

Okay, say you have a transmit mixer.  Your IF is 40MHz and your LO is 5.4GHz.




1. First, let's look at the mixing product above the carrier:  5.4G+40M


If you are running PAC or Pnoise, you set the IF sourcetype to dc so that the LO is the only sinusoid in the system (Edit Properties on your IF port in the schematic). Since the input for this example is sinusoidal, we will choose Harmonic Balance. 


Set up a pss analysis:


For more information about when to choose Shooting Newton vs. Harmonic Balance, see Solution 11310266.


Set up the Choosing Analysis Form as follows:


Beat frequency= 5.4G
number of harmonics=5
errpreset=moderate or conservative.


For more information on how to set number of harmonics and oversample, please see Solution 11670194.




Next, set up your pnoise analysis.


Here you are specifying an output frequency sweep. Note that by default, the sweeptype is absolute. We want to do a relative sweep, so change the sweeptype to relative and make it relative to the first harmonic. So, we are sweeping output frequency relative to first harmonic from 10K to 100M.


In the example, a log sweep was chosen, with 100 steps. (Note: In practice, 20 steps is probably enough...100 steps may be overkill and will just extend the simulation run time). Set maxsidebands to 5 (same as you had in the pss analysis), choose output voltage (select positive and negative output nets), input source -- port, and select your IF source.


The reference sideband is calculated from:|f(in)| = |f(out) + refsideband*PSSfund|


When you do your sweep, your output frequency will range from 5.4G+10K to 5.4G+100M.


Let's look at one point: 40M refsideband=(fin-fout)/PSSfund= [40M - (5.4G+40M)]/5.4G = -1.

And if you choose "Select from list" in your pnoise Choosing Analyses form, you will see the lower sideband frequencies will be 10K-100M which is the -1 ref sideband. The point is..."Select from List" is your friend. It's easier to use than calculating the reference sideband.




For PAC analysis:


In PAC analysis, we are specifying the input frequency sweep.


Set sweeptype to default (absolute)

Start/stop 10K to 100M, sweeptype log, 100 steps .

f(out) = f(in) + refsideband*PSSfund = 40M + refsideband*5.4G

40M - 5.4G = 5360M (-1)

40M + 5.4G = 5440M (+1)


If we want out output to be 5440M, then we choose the +1 PAC refsideband.  In the select from range, that is 5.40001G to 5.5G sweep. Remember:  you are specifying an INPUT frequency range in the PAC Choosing Analyses form.


When sweeping output frequency relative to first harmonic from 10K to 100M, you are sweeping from 5.4G +10K to 5.4G+100M.




2. Next, let's look at the mixing product below the carrier: 5.4G-40M.


Remember you are specifying an OUTPUT frequency range in the Pnoise Choosing Analyses form. So, If your output frequency is 5360M (i.e. you are taking the output product on the low side of the LO), then the reference sideband will also be -1. The reference sideband will be:  refsideband=[40M -(5.36G+40M)]/5.4G = -1.  Again, the "Select from List" is your friend.


Here you would set up the Choosing Analyses form slightly differently (because of limitations in our form).


It would be nice if you could do a log sweep from -10K to -100M with sweeptype=relative, but you cannot at this time. So, you need to do an absolute sweep from 5.3G to 5399.99M.



3.  Finally, if you wanted to look at both the upper and lower sideband information...


Sweep from 5.3G to 5.5G as shown in the Choosing Analyses form below. You still choose the -1 reference sideband. Here the frequencies are 100M, 100M. It really should be -100M to 100M.


(We take out the minus sign to make the form less confusing. It makes sense for a receive mixer, but for a transmit mixer, it adds to the confusion factor.)


If you think about it, when you subtract 5.4G (The LO and PSS frequency) from 5.3G (The start frequency) you get -100M.


Note that I have changed this to a linear sweep with 101 points. The reason I didn't use 100 points is because if exactly 5.4M is taken in the pnoise analysis, a warning will be produced that the 1/f noise is being ignored.




4.  Setting up the Direct Plot form for Pnoise Separation

You run your simulation and you want to know how to set up the Direct Plot form for Pnoise analysis. When you plot pnoise separation, keep the following in mind.


These two are probably the most useful things to look at:

·        Sideband Output plots the noise contribution of selected sidebands to the output.

·        Instance Output plots the noise contribution of some instances such as MOS, BJT etc to the output at one selected sideband.


These 4 are a bit more esoteric:

·        Instance Source plots the noise sources of some instances at one selected sideband.

·        Source Output plots the noise contribution of primary noise source such as re, rb in a BJT to the output at one selected sideband.

·        Primary Source plots the primary noise sources such as re, rb in a BJT at one selected sideband.

·        Src. Noise Gain plots the noise gains of primary noise sources such as re, rb in a BJT from source to output at one selected sideband.


Note that ViVA/wavescan doesn't tell you which sideband has been plotted. Once you plot the sideband, you need to label it (or remember the order). In your pnoise form, choose select from list and go from 0 Hz to 20G. So, now you may be wondering, "Which sideband should I choose?"


  • The zero sideband (0 in the Direct Plot form) is the noise contribution with no frequency conversion. If you take the middle of the frequency range, this is the noise that makes it to the output at 5.4GHz from the noise that exists at 5.4GHz.
  • -1 in the Direct Plot form for Pnoise separation means that the noise frequency moves down by -1 times the PSS frequency of 5.4GHz.

5.4GHz (The center of the output frequency range) minus 5.4GHz =  0 (zero) Hertz. The noise frequencies from -100M to 100M mix up to the output from 5.3G to 5.5G.  This is the one you want.

  • +1 in the Direct Plot form means that you take the frequency on the form (5.4GHz in the center, and upshift it by +1 times the PSS frequency. Noise near 5.4G+5.4G=10.8G mixes down to the output frequency.



For more tips and tutorials like this, please log into Cadence Online Support (support.cadence.com) .


Have fun simulating!


Best Regards,




By shakiba on June 25, 2014
I want to design a mixer with specific circuit but I have some problem .
Can you help me?

By Tawna on June 25, 2014
Please post questions to the general RF community rather than commenting on a specific blog that is from the past.   You will get help much more quickly -and- more people will likely see your question.    For detailed information and training on the tool, I recommend contacting customer support at http://support.cadence.com.   For examples on designing mixers with accompanying databases, please see Appendix A of the SpectreRF User Guide in MMSIM12.1.1 or 13.1.    Best regards -- Tawna

By Tawna on June 25, 2014
Please see this blog post for more information on the example workshops in the SpectreRF User Guide.  www.cadence.com/.../spectrerf-tutorials-and-appnotes-shhhh-we-have-a-new-best-kept-secret.aspx

By VJP on July 7, 2014
Hello Tawna:  Could you please report all the component (analogLib) and veriloga (rfLib/mixer) parameter values for the testbench?  Perhaps the full netlist would be an easy attachment?

By Tawna on July 14, 2014
Hi VJP,   Please see the MMSIM13.1 SpectreRF User Guide, Appendix A.  There is a more up-to-date (and better) example (documentation and workshop plus database) of simulating a transmit mixer.     Best regards,  Tawna

Leave a Comment

E-mail (will not be published)
 I have read and agree to the Terms of use and Community Guidelines.
Community Guidelines
The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.