Multistate simulations, part II
Updated February 23,
2012
Click here to go to the previous lesson on multistate file simulations
Click here to go to our main page on phase shifters
Click here to learn about RMS errors
New for January 2012! Suppose you wanted to do multistate analysis on a set of measured Sparameter files that someone gave you? For example, measured Sparameters of the "primary" states of a fivebit attenuator would comprise a set of six files, the reference state, the 11.5, 22.5, 45, 90 and 180 states. You want to calculate the average loss of the states, and the RMS phase error, etc.
This just in from Don who was awarded the coveted Microwaves101 pocketknife. Turns out there is an "if statement" in ADS. We tried it, it works, even if it is Agilent's best kept secret...
Here is the syntax, which you can compare to what we describe below
B0= if Xstate=0 then 1 else 0 endif
B1=if Xstate=1 then 1 else 0 endif
Etc...
Thanks a lot for obsoleting all the sweet analysis on this page, Don! But we'll leave it up for posterity...
Previously we looked at using a parameter sweep to throw a binary sequence of bits, in a phase shifter design were all of the bits are accessible as individual twoport designs. In this next case, we are interested in turning on an arbitrary set of circuit files, one at a time, from a parameter sweep.
Yes, there is something called a multidimensional file that could be used, but if you don't understand it, it is another way to get in trouble, and it is somewhat painful to convert a set of individual files into an "mdf" file. Trust us, our way out of this mess is way more fun!
Let's let the parameter we are sweeping be "Xstate", which will control the simulation and generate Sparameters of a twoport circuit that are different for each Xstate value.
The sweep function is Xstate=0,1,2,3,4,5, ..., it is controlled by in integer start, stop and step size (in this case start=0, stop=5 and step=1)
Note that Xstate could just as well start at one, but "0" can be our reference state in a phase shifter or attenuator or whatever is being switched.
The state variables we generate are B1, B2, B3, B4, B5, B6...
Xstate 
B0 
B1 
B2 
B3 
B4 
B5 
0 
1 
0 
0 
0 
0 
0 
1 
0 
1 
0 
0 
0 
0 
2 
0 
0 
1 
0 
0 
0 
3 
0 
0 
0 
1 
0 
0 
4 
0 
0 
0 
0 
1 
0 
5 
0 
0 
0 
0 
0 
1 
etc.
If we had an "IF" statement, this would be sooooo easy.
IF(N=1, B1=1, else B1=0)
IF(N=2, B2=1, else B2=0)
and so on.
But in EDA software such as Agilent's ADS, we don't have an IF statement, so you need a clever way to do this. We do have ABS (absolute value) and INT (integer) functions.
We'll show you one solution below. Perhaps you can come up with a simpler way, if you do we'll send you a free gift! Offer is now over thanks to Don....
Example: Hittite HMC543 Xband phase shifter
You can download a zip file of the sixteen phase states of this fourbit phase shifter. We did!
Here is the function that creates the the "B values" that we will use to turn on the individual S2P files in a single twoport network. This is where the magic happens! If you want to play with this math, try it in Excel, it is much easier to manipulate.
These three 2ports are needed to do some fancypants calculations for RMS errors and other parameters. S21 is the 2port that will sweep through the phase states, S43 is the reference state (see "Ref=1" and all other B values are zero), and S65 is the expected phase value. The various states of the phase shifter are parameters that are fed into the circuit, with names "Ref", "State22", "State45", etc. Can you guess why we named them this way? If not, the Post Office is always hiring letter carriers... oops, maybe they aren't this year...
If you could click into the circuit "Hittite_four_bit_data" you would see the following network. All sixteen sets of Sparameters are "called" by turning on the proper resistors (0 ohms) while turning off the other resistors (very high value ohms).
The variable block below is what calculates the resistors from the Bvalues. Yes, we could have done this all in one step, but we'd rather deal with the "binaryness" of the Bvalues at the top level, rather than the 0/infinity values of resistors.
Now let's run the analysis and look at the multistate data. The HMC543 phase shifter is advertised to work from 8 top 12 GHz but Hittite provides data down to 6 GHz. Below are the transmission coefficients of the 16 states. The amplitudes are spread to about a 1 dB window across much of the band, this is going to drive up the RMS amplitude error as we'll see below.
Below are the return losses.(reflection coefficients in dB). You can see that the "kink" in insertion loss down at 7 GHz (above) is caused by mismatch (below).
Below are the raw phase states. From 8 GHz and upward they are monotonic (don't accidentally cross), a sign of a good phase shifter design. Give that designer a raise!
Below we've unwound the phase and subtracted the shifted states from the reference state. What is wrong with this picture? It should be plotted with the Yaxis in increments of 45 or 90 degrees so you can quickly see how the states are lining up to their intended values. The phase states are very flat from 8 GHz and upward, a characteristic of highpass/lowpass phase bit structures, and satisfies a very important phase shifter characteristic for phased arrays.
We're going to skip some intermediate steps and plot the RMS errors. There are two ways to RMS the phase error. The fool's way is to subtract each state from the reference state (red) and RMS the fifteen shifted states. The better way is to calculate an "ideal reference state" (actually, the mean of all the states) and RMS all sixteen states (blue). If you had Hittite's data sheet in front of you you'd see that they do it the correct way. This phase shifter provides less than 5 degrees RMS error from 8 to 12 GHz. Sweet!
Below we have plotted the RMS amplitude error (which does not appear on the data sheet). Pretty good, but it is possible to do better. Send us a check with at least three zeros to the left of the decimal point and we'll sit in on the redesign review!
Overall we give this circuit a B+ letter grade, just marked it down a little for the amplitude spreading...
