• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Blogs
  2. RF Engineering
  3. Using The Composite Triple Beat Source to Speed up QPSS…
Tawna
Tawna

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
CDNS - RequestDemo

Try Cadence Software for your next design!

Free Trials
RFIC
QPSS Analysis
CTB
Virtuoso Spectre
Spectre RF
MMSIM
RF Block Simulation
Virtuoso Spectre Simulator GXL
Virtuoso Spectre Simulator XL
spectreRF
RF design
harmonic balance
Composite Triple Beat

Using The Composite Triple Beat Source to Speed up QPSS Analysis

14 Jan 2010 • 2 minute read

Say you have a design with 4 input frequencies: 3164M (vco), 1449M (tone0), 1456M (tone1), 1442M (tone2). Currently when you do a qpss analysis, you are inserting a total of 4 separate ports in your schematic and running a simulation.   There is a divide by 2 in your circuit, so one of the frequencies of interest is 1582M.  You'd like to take advantage of the multi-tone port and run a qpss analysis using 2  sources, rather than having to set up 4 individual ports.  

What you'll want to use is the CTB source (composite triple beat source) feature. In the port/vsource components, CTB allows one to compose a set of evenly and closely spaced tones by using only two frequencies.  This is useful in qpss analysis and  greatly speeds up simulation time.

Here is an example of what the port or vsource looks like in the netlist:

PORT1 (net1 net2) port r=50 type=sine
+  freq=fcenter freq2=fspacing
+  fundname="fcenter" fundname2=fspacing"
+  freqvec=[fcenter  (fcenter+fspacing)  (fcenter+2*fspacing) 
+ (fcenter+3*fspacing)]  dbmvec=[p0  p1  p2  p3]

V1 (net1 net2) vsource type=sine
+  freq=fcenter freq2=fspacing
+  fundname="fcenter" fundname2="fspacing"
+  freqvec=[fcenter (fcenter+fspacing)  (fcenter+2*fspacing) 
+ (fcenter+3*fspacing)]  amplvec=[v0  v1  v2  v3]

Note that (  ) and [  ] are needed around vector expressions, such as freqvec/amplvec for parsing purposes.

It is easiest to show how to use the CTB source by example.  So, for your particular example....

1. Here's how you set up your CTB port:

See the screen shots below.  The center frequency is put as the first sinusoid.  The spacing frequency is put as the second sinusoid.  Note that the "display multi sinusoid" button is selected.
 

port1

In particular, note when you select "Display multi sinusoid", the form expands to allow you to select multiple frequencies.  Here, enter the frequency, magnitude, phase, and maximum number of harmonics for each tone:

 

port2

 

2. Next, here's how to set up your Choosing Analyses form for Harmonic Balance qpss or hb analyses:

 

hbChooseAnalysis

Or, if you are using Harmonic Balance QPSS, your Choosing Analyses form setup will look like this:

 

QPSSHBchooseAnalysis

 

 3. If you are using a frequency divider in your circuit, remember to set the large signal frequency division parameter in the Options form:

 

options

 

4. Comparing your original netlist snippet with the CTB netlist snippet:

This is how your ports and qpss statements look in the original netlist:

PORT5 (net058 0) port r=50 type=sine dbm=-20 freq=1456M  fundname="tone1"
PORT7 (net060 0) port r=50 type=sine dbm=-20 freq=1442M  fundname="tone2"
PORT8 (net062 0) port r=50 type=sine dbm=-20 sinephase=90 freq=1.449G fundname="tone0"
V8 (net081 0) vsource type=sine ampl=1 freq=3164M fundname="vco"

.
.
.
qpss  qpss  funds=["vco"  "tone1"  "tone0"  "tone2"]  maxharms=[20
+     3  3  3]  errpreset=conservative  tstab=0  annotate=status
+     flexbalance=yes freqdivide=2

And your new netlist (showing both qpss and hb analyses) will look like this:

PORT0 (net058 0) port r=50 num=1 type=sine freq=1.449G freq2=7M \
        fundname="Fcenter" fundname2="Fspacing" freqvec=[ 1449M+7M \
        1449M-7M 1.449M+7M ] dbmvec=[ -20 -20 -20 ] phasevec=[ 90 0 0 ] \
        maxharms=[ 3 3 3 ]
VCOsource (net081 0) vsource type=sine freq=7M*226*2 ampl=1 fundname="vco"
.
.
.
qpss  qpss  flexbalance=yes  oversample=[1  1  1]  funds=["vco"
+     "Fcenter"  "Fspacing"]  maxharms=[20  3  3]  errpreset=moderate
+     annotate=status  freqdivide=2
hb  hb  oversample=[1  1  1]  funds=["vco"  "Fcenter"  "Fspacing"]
+   maxharms=[20  3  3]  errpreset=moderate  freqdivide=2 
+ annotate=status

 

Have fun with your simulations!

Tawna Wilsey


CDNS - RequestDemo

Have a question? Need more information?

Contact Us

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information