Get email delivery of the Cadence blog featured here
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.
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:
2. Next, here's how to set up your Choosing Analyses form for Harmonic Balance qpss or hb analyses:
Or, if you are using Harmonic Balance QPSS, your Choosing Analyses form setup will look like this:
3. If you are using a frequency divider in your circuit, remember to set the large signal frequency division parameter in the Options form:
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=2hb hb oversample=[1 1 1] funds=["vco" "Fcenter" "Fspacing"]+ maxharms=[20 3 3] errpreset=moderate freqdivide=2 + annotate=status
Have fun with your simulations!