Sunteți pe pagina 1din 59

Microwave Office Training

Tuning, Optimization, and Yield Analysis

Summary
Each task asks the computer to find the value of a parameter:
Tuning user selects values manually Optimization Best value selected based on goal criteria Yield Pass/Fail of randomly selected values within a range

Tuning
To be known: parameters to be tuned and their limits

Optimization
To be known: parameters to be optimized and their limits, goals, type of optimizer

Yield:
To be known: parameters, limits of variation, distribution Can also perform yield optimization
Tuning, Optimization, and Yield 2

Tuning, Optimization, Yield


All three tasks ask the computer to pick a value of a parameter

Optimization
Values picked to approach a desired goal Finding the Optimal Model Yield Optimization Values for maximum Yield

Yield
Values picked randomly within a range Manufacturing tolerances

Final parameter value Tuning


Values selected manually Gain intuition of the behavior Model development
Tuning, Optimization, and Yield 3

Tuning
Purpose: manually vary a parameter What the computer needs to know:
parameter(s) to be varied what values
Method 1 Screwdriver and Slider Method 2 Select Tuning in the Elements Properties > Parameters

Equations Toolbar

Tuning, Optimization, and Yield

Tuning Example - Method 1


In a new project create the schematic Filter Save the project as My_Filter

Filter
Tuning, Optimization, and Yield 5

Tuning Example - Method 1 - 2


Create a graph Filter Response - |S11| and |S21| in dB Simulate from 1 to 9 GHz in steps of 0.1 GHz

Tuning, Optimization, and Yield

Tuning Example - Method 1 - 3


Use the screwdriver to select the leftmost C and L in Filter

Equations Toolbar

C and L turn blue indicating they are being tuned Note: Selecting the element again turns off the tuning Tip: You can get rid of the screwdriver after using it by clicking anywhere on the schematic
Tuning, Optimization, and Yield 7

Tuning Example - Method 1 - 4


Open up the tuning element, and change C and L. Observe the changes in the S parameters. Note: Simulate > Tune works too
Graph Toolbar

Tuning, Optimization, and Yield

Tuning - Controlling the Tuner


Putting the cursor on the value tells which schematic it is from Max and Min can values be changed by writing them into the fields. Default values are 2X and 0.5X the nominal value Turn off the tuning of individual variables by checking the small box

Tip: Holding down the Ctrl key updates all schematics and layouts at the same time!

Tuning, Optimization, and Yield

Tuning - Controlling the Tuner - 2

Save a state of the tuner Name it Recall it with Revert Many saved states are allowed
Note: Saved states wont be remembered once the tuner is closed! Note: Reset will return the tuner to its initial state Tip: Saving your project before tuning allows you to return to the initial saved state before tuning even if the tuner is closed Tip: If you copy a schematic, tuning is turned off for the copy
Tuning, Optimization, and Yield 10

Tuning - Controlling the Tuner - 3


Freeze and Clear show the beginning and end traces of tune Note: Freeze can be applied many times Ctrl-U will get rid of the frozen traces

Tuning, Optimization, and Yield

11

Tuning Example - Method 2


Open up the center Ls properties menus Select Tune and Limit Set the lower and upper limits The tuner works the same way as before

Lower and Upper Limits

Note: The advantage is you can set lower and upper limits explicitly
Tuning, Optimization, and Yield 12

The Variables Browser


Shows all the variables in the project select tuning, optimization, yield analysis, and set limits
Alternatively: View > Variables

Tip: RC on the bar to view available fields.


Standard Toolbar Standard Toolbar

Filter view in various ways

Tuning, Optimization, and Yield

13

Optimization
Purpose: to obtain a best value of a parameter to meet a goal What the computer needs to know:
the parameter(s) to be optimized and their limits the goal(s) the type of optimizer

Running the optimizer:


Simulate > Optimize F7

Turn off all tuning using the variables browser

Tuning, Optimization, and Yield

14

Optimization - Example
The parameters to be optimized and their limits
can be selected via the elements properties or in the Variables Browser Vary the left inductor and capacitor Constrain L2 to be between 2 nH and 8 nH, set nominal value to 4 nH Constrain C1 to be between .1 pF and .8 pF, set nominal value to 0.35 pF

Inductor Settings
Tuning, Optimization, and Yield

Make sure the Optimization and Limit box is checked


15

Optimization Example - 2
Goals
set in the Optimizer Goals tab of the Project Browser.

Set a goal of S11 being less than 17dB from 4.2 to 5.5 GHz

Note: A new goal can be set by RC on Optimizer Goals > Add Opt Goal

Tuning, Optimization, and Yield

16

Optimization Example - 3
The measured |S11| should be < 17 dB from 4.2 to 5.5 GHz 1. Pick a measurement 2. Should the goal be >=< the measurement? 3. Pick the frequency range

Advanced Features You can have sloped goals Multiple goals can be weighted differently with a cost function the bigger number has more weight Cost function = w1*goal1 + w2*goal2 + ... L is the type of cost function (usually L=2) Cost function = | goal measure |L
Tuning, Optimization, and Yield 17

Optimization Example - 4
The optimizer goal is seen in the graphs with the measurement.

Current optimizer goal

Tip: Click on a goal in the graph to move or reshape it


Tuning, Optimization, and Yield 18

Optimization Example - 5

Create multiple goals

This goal is > measured

This goal is < measured

Note: The S11 goal has been sloped by using the drag handles
Tuning, Optimization, and Yield 19

Optimization Example - 6
Setting the type of optimizer To run the optimizer Simulate > Optimize F7

Pick an optimizer Maximum number of Iterations

The goal cost and history smaller is better! You can equalize the goals weights for multiple goals

Next slide
Tuning, Optimization, and Yield 20

Optimization Example - 7
Updates the graph for each iteration

If unchecked you can move optimizer goals while still going and you can tune over other variables

Reset Sets the variables back to their initial values Note: Closing the optimizer changes the parameter values!

Save and Revert allow saving states and retrieving them, just as with the tuner

Goals All the goals listed in a spreadsheet are visible

Note: States are lost when the optimizer is closed

Tuning, Optimization, and Yield

21

More on Goals
Open the project Understanding_Goals.emp

S11 = 0.5 for this simple circuit as shown in the graph S11

Two optimizer goals have been added


Tuning, Optimization, and Yield 22

More on Goals - 2
What is the cost of this optimization?
The first goal is |S11| < 0.4 with L=1 |S11goal S11measured|1 = |0.5 0.4| = 0.1 Note the frequency range is normalized to 1, i.e. no matter how large the frequency range the cost is 0.1 The second goal is |S11| < 0.6 with L=1 This gives a cost of 0, because the goal has been met everywhere Note: If a goal is met in a certain part of the frequency range, its contribution to the cost is 0 The total cost is 0.1 + 0 = 0.1
Tuning, Optimization, and Yield 23

More on Goals - 3
Try these goals and make sure you understand them

Cost = 0

Cost = 0.05 with L=1 Cost = 0.033 with L=2

Because 0.5 = xdx = x2, for L=1


24

1/3 = x2dx = 1/3 x3, for L=2


Tuning, Optimization, and Yield

More on Goals - 4

This part has 0 contribution since the goal is met

The lower part (with L=1) costs of 0.05 = 0.025 The is because half of the interval does not meet the goal Total cost for this example is 0.0 + 0.025 + 0.0 = 0.025

Tuning, Optimization, and Yield

25

Weighting
Weighting helps make one goal more important than another, or it can equalize goals where divergent
Example 1: Band-reject filter The S21 in the stop band could give a huge difference in cost and completely dominate the goals even though the S21 in the pass band might be as important Example 2: Different frequency ranges of goals. The cost of each goal are calculated with a normalized frequency range If one goal must be true over a much larger frequency range than another, this wont be reflected in the goals Example 3: Different units. Goals are dimensionless If one of the S parameters is in dB and the other is not, the dB costs will probably be much larger
Tuning, Optimization, and Yield 26

Optimization Issues
Finding the global minimum or maximum
In 1D it can be found (although maybe expensive) Note: Figures from Numerical Recipes in C http://www.nrbook.com/a/bookcpdf

Step 1: Divide the region into sub-regions Step 2: Find the minimum by bracketing Step 3: Compare the minima to find the global minimum Convergence is linear (i.e. adds a digit with each iteration)
Tuning, Optimization, and Yield 27

Bracketing the minimum

Optimization Issues - 2
In multiple dimensions you can never be absolutely sure you have the Global minimum or maximum!
For example, in 2D you bound areas, but that is a closed curve with an infinite number of points All optimizers try to find the global minimum, quickly and accurately Note: The optimizers for MWO use the following methods: Basic Gradient Optimizers, Random, and Annealing Numerical Recipes in C: http://www.nrbook.com/a/bookcpdf.php. Pointer Optimizers: Come from Synaps http://www-fp.mcs.anl.gov/OTC/Guide/SoftwareGuide/Blurbs/synaps.html

Tuning, Optimization, and Yield

28

Derivatives or not?
Why not use an algorithm that always goes downhill the fastest? Conjugate Gradient Method
Convergence can be quadratic However Derivatives have to be calculated in all directions before the next step. For many variables this can be slow Near the minimum the function might be almost constant having a gradient of 0 There is no way of getting out of a local minimum Could get stuck here! (If in more than one dimensions) Strategy: If not too many variables, start with conjugate gradient When close to the minimum/maximum, conjugate gradient might stall Switch to a non-derivative method
Tuning, Optimization, and Yield 29

How About Downhill without a Derivative?


Downhill Simplex Method
Note: Dont confuse this with the Simplex method of linear programming. Not that efficient but useful for getting something working quickly Selects N+1 points in N space forming a volume. It then reflects, expands, contracts to get ever smaller values of the goal. Details are in Numerical Recipes in C. Strategy: Good when unsure whats going on. A good way to finish when gradient methods fail.

Tuning, Optimization, and Yield

30

Yet Another Downhill Method


Direction Set Method
Doesnt use derivatives Finds the minimum in a given direction like a 1D problem, then goes to the next direction To work properly it will redefine directions every so often Note: The optimizers that look at directions: Direction Set Gradient Conjugate Gradient all have an extra field: Converge Tolerance Classic hard problem is a long, narrow valley.

This is the error tolerance in a given direction. Set it as small or smaller than the total error you can tolerate. Too small, and it will never get there.
Tuning, Optimization, and Yield 31

How do I know if I found the Global Minimum?


You dont!
The optimizer (and you!) can be fooled if you are at a local minimum Many optimizers try a random jump every so many steps to avoid this error, for example simplex

Random Optimizers
They jump around randomly trying to find the minimum Local Random jumps around the initial guess Global Random jumps all over the place trying to find the minimum Note: This is the optimizer of last resort! Genetic algorithms: Random and Gaussian

Tuning, Optimization, and Yield

32

Simulated Annealing
Introduce some randomness in conventional optimization
Inspired by physics thermodynamics A material at high temperature is cooled slowly and finds the state of lowest energy This optimization method introduces temperature T: T >> 1, take big random step between iterations of the optimizer T << 1, take small random step between iterations of the optimizer Slowly reduce the temperature k step number K total number of steps You set T0 and a Pick either Simplex or Random Local
Tuning, Optimization, and Yield 33

Which Optimizer to Use?


There is no one best optimizer Dont be afraid to try multiple optimizers When you find one minimum, try restarting with another optimizer Gradient optimizers can stall when close to the minimum (small gradient). They can be expensive with many dimensions. Try simulated annealing and genetic algorithms as a way to make sure you didnt stray into a local minimum Typically, engineers optimize a certain class of problems many times. There is no substitute for experience. For filters, try Simplex and/or gradient methods as a start. When close to the minimum use random local or simulated annealing.

Tuning, Optimization, and Yield

34

Some Practical Tips


Start small: Dont try to optimize many variables at once. Start with the simplest problem that captures the essence of the situation. Dont design by optimizing! Make sure each variable counts Example: the resistance in your microstrip gap model may not matter much Once you have a reasonable physical value, keep its value fixed Example: the capacitance found at low frequency agrees well with a parallel plate and fringing, keep it fixed! Example: In the manual, Section 10.3.2, see Tips on FET models and Noise/Intermodulation Goals, and Conflicting Goals An optimizer cannot be any better than the model framework its given: If there is no convergence, maybe the model doesnt capture the essential physics of the problem Always be skeptical of any optimization result The closer you start to the right answer, the better the final result will be As a skeptic said, The trouble with optimizers is they work very well, when you already know the answer!
Tuning, Optimization, and Yield 35

Cant You Just Pick the Right One?


Pointer Optimizer
Attempts to pick the best optimization method from Simplex, Gradient, and Random optimizers. Capable of being Trained

Note: Saves the .opt file in the local project directory

Train It Run It

Set the maximum number of iterations much larger than the target iterations Train with a simpler problem, or a typical problem

Start small
Tuning, Optimization, and Yield 36

Discrete Optimization
Reasons to use discrete optimization
discrete datasets like S parameter files discrete manufacturable values discrete / logical values, e.g. switches

Two available optimizers


Pointer Random

Typically requires 2 steps to set up


define a discrete variable with values tune or optimize over the discrete values

Tuning, Optimization, and Yield

37

Discrete Optimization - 2
Open up the project Help > Circuit_Features > Optimization > Discrete_Filter_Optimization.emp Len, Wid, and Gap take on discrete values

Variables a in discrete filter

L0 Properties Set to Optimize

Tuning, Optimization, and Yield

38

Discrete Optimization - 3
Run the optimizer Use Pointer

Turn on Show all Iterations and observe the graph

Tuning, Optimization, and Yield

39

Discrete Data Sets


Open the project: Tune_Sparameter_File.emp This is from KnowledgeBase - Article 208001
Note: {} and for correct syntax.

Variable data_files contains S parameter file names

You can set subcircuit to be the value of data_files Then you can tune or optimize over different S parameter files

Tuning, Optimization, and Yield

40

Yield Analysis
Purpose: Pass/Fail analysis with manufacturing variations What the computer needs to know
variables to be varied limits of variation and statistical distribution: flat or normal pass/fail criteria

To run yield analysis


Simulate > Yield Analysis

Tuning, Optimization, and Yield

41

Yield Analysis - 2
Reopen the Filter project Set the yield parameters of the left inductor (L2) with value 4 nH by going into Properties > Statistics. Use 10 % variation and normal distribution

Use must be checked for use in yield analysis. (Most common error!) Distribution Normal 1 standard deviation at limits

In %: Tolerance from nominal in percentage

Uniform equal probability between lower and upper limits


Tuning, Optimization, and Yield 42

Yield Analysis - 3
Set up yield analysis in the first capacitor (C1), nominal value 0.35 pF 0.1 pF variation, Uniform

Step 15: Set up the yield goal: |S11| < 16 , 4.4 to 5.2 GHz

Tuning, Optimization, and Yield

43

Yield Analysis - 4
Run Yield Analysis: Simulate > Yield Analysis
Will run up to 5000 iterations

Percentage of cases accepted

Shows cases run in grayed-out traces

The yield pass/fail criterion

Tuning, Optimization, and Yield

44

Yield Analysis - 5
Modifying the Graph
Go to the graph properties: RC > Properties > Yield Data You can change the graph to show a variety of things: Only passed/fail/mean. Range Sigma 2*Sigma

Mean and sigma deviation (Range Bar Option)


Tuning, Optimization, and Yield 45

Yield Sensitivity and Design Centering


Add a rectangular graph L Sensitivity Add the measurement Yield > YSens > Filter > L Note: You might have to double click YSens to make sure its selected

Tuning, Optimization, and Yield

46

Yield Sensitivity and Design Centering - 2


Percentage Passing

Number of Trials in Bin

Note: The number of trials in the bin has nothing to do with the height of the bins. It is used to show the way the Monte Carlo was run normal or uniform distribution.

Remember that C is varying too. This is why you are getting passing between 0 and 100 %.

Tuning, Optimization, and Yield

47

Yield Sensitivity and Design Centering - 3


Make a sensitivity graph for C called C Sensitivity.

Tuning, Optimization, and Yield

48

Yield Sensitivity and Design Centering - 4


You can determine if design is centered and sensitive to the component value

Not Centered

Sensitivity graphs look at different slices through the parameter space. Here we have 2 parameters C and L.

Insensitive Component
Tuning, Optimization, and Yield 49

Yield Optimization
Purpose: Select component values that give maximum yield What the computer needs to know:
Parameters Limits of variation and statistical distribution Pass/fail criteria.

To run Yield Optimization


Simulate > Yield Analysis In Analysis Methods > Yield Optimization

Tuning, Optimization, and Yield

50

Yield Optimization - 2
Dampening Factor - How much to change the value 1.0 - Large/maximum change 0.5 - Smallest change Example: Peak at 9.8 instead of 10.0, tries 9.9 with dampening factor of 0.5

Maximum Error - Simulator will run until estimated error is smaller than maximum error (or max iterations reached) - Larger maximum error > fewer iterations

Note: Select Opt to allow the parameters value to change in Yield Optimization.
51

Tuning, Optimization, and Yield

Yield Optimization - 3
Select the left L and C for Yield Optimization.

Make sure Opt is checked for the L and C.

Analysis method set to Yield Optimization.

Tip: The values of 4 nH and 0.35 pF are close to optimal already. You might change the starting values to be where the yield could be obviously improved.

Tuning, Optimization, and Yield

52

Optional Bivariant Yield Distributions


Sometimes when getting manufactured parts there is a suck out in the middle of the distribution. (Users with tight tolerance requirements have paid for the parts in the middle of the distribution.) Using equations it is possible to create these distributions

Start with the project Filter


perform yield analysis over the left inductor and left capacitor.

Keep the inductor yield settings as before

Nominal value is 4.0 nH.

Tuning, Optimization, and Yield

53

Bivariant Yield Distribution


For the capacitor use the equations We want a distribution that looks like: The idea is to have 2 random variables: Range = sign(random1)*range Probability of Occurrence Spread = random2*spread 2*Range 2*Spread

Capacitance Nominal_C

Tuning, Optimization, and Yield

54

The Equations
Add the following equations to the schematic:

We are going to set random1 and random2 for yield analysis


Tuning, Optimization, and Yield 55

Setting the Random Variables


RC on Random1 and Random2 and open up their Properties.
Check Use Statistics Uniform. Dont use percent. +- 1 for Random1 +- 0.5 for Random2.

Random1

Random2

Tuning, Optimization, and Yield

56

Yield Analysis
Create a graph Spars as before
Frequency simulation from 1 to 9 GHz, steps of 0.1 GHz Set yield goals of |S21| for 18 dB from 4.5 to 5.5 GHz

The bivariant distribution can be clearly seen

Tuning, Optimization, and Yield

57

Viewing the Capacitor Values


Add an extra capacitor to the schematic Filter Make a graph C Value, and use the measurement C_PRC C_PRC is in measurements under Linear > C_PRC

The two capacitor ranges can be clearly seen

Tuning, Optimization, and Yield

58

Example Yield Analysis Graph with a Measurement


Performance_Histogram.emp built in example Purpose: to see how measurement results change with a varying parameter Example shown: output power of an amplifier is graphed vs. variations in matching component values.

Note: A script is used to generate the simulation results


Tuning, Optimization, and Yield 59

S-ar putea să vă placă și