Response Suface Methodology Tutorial
This tutorial will introduce you to the Synopsys Taurus TCAD environment and the flow to perform Design of Experiments (DoE)/Response Surface Methodology (RSM) along with hspice simulations to understand the effects of process variations on circuit perfomance.
Due to deep sub-micron IC technology and scaling to finer feature sizes, it becomes increasingly difficult to control the process variations. This as resulted in device characteristics to be more sensitive to these process variations and thus increased the uncertainty in circuit performance. Hence, effective modeling and predicting the statistical variations of the circuit performances and redesigning to meet the performance specifications is a very important task.
Worst case and best case SPICE models are used by the designers to verify the design at the extremes of process variations. In this case, increasingly significant intrinsic correlations among physical parameters are not sufficiently considered and produce circuit performances that are overly pessimistic (or optimistic). One of the methods to overcome this problem is to perform Monte-Carlo Simulation for a given circuit. This method becomes computationally expensive and impractical for large circuits.
To overcome the limitations of Monte-Carlo Simulation, RSM along with DoE will be used.
To perform the DOE and RSM, we will use the Taurus Workbench from Synopsys where as the hspice simulations will be carried out using a script.
Start the Synopsys TCAD
% add synopsys_tcad % twb -use_dfm &
Note: We need to start taurus workbench with -use_dfm option to use the RSM feature.
The first window that appears is called the Workspace window.
Create a new project by selecting Project->New. Projects are shown as columns. Each project has a library (a cell with the book icon) and a list of experiments. Each library also contains simulation components(Modules/Tools/Drivers) for reuse in other projects. An experiment consists of a Process Recipe, a Wafer Flow, and all the associated simulation data.Access to a given project is indicated by the book icon; if a pencil is on the book,you have write-access, otherwise, theproject is read-only. In the initial Workspace window you see three read-only projects: templates,standard and dfm_work.
(The project can be renamed by right-clicking on the library and Edit name)
Once you create a new project, you can copy experiments from the read-only libraries. To do this:
1. Select a cell with an experiment’s name by clicking on it. 2. Drag and drop it into your project.
A warning notice offers a choice of Deep or Shallow copy as shown below
Do a Shallow copy of the library hspice_baseline from dfm_work project and rename it. We will be using this experiment as our starting point and editing it to our requirements.
To edit the newly created experiment "Expt1", double-click the cell containing the experiment name. An experiment window opens, as shown below
To view the contents of a module "hspice_test", double-click the module object. A Module editor opens
We can delete the inbuilt Command "circuit" by selecting the particular cell and Command->Cut. Lets create a new command called "RSM" by Command->New->Append. You will get the following warning, choose "Destroy"
Lets consider an example of a two stage two input Standard Cell Inverter (INVX1). The setup allows us to analyze the effects of process variations considering each of the transistors in the circuit suffer different variations. The parameters that are currently supported whose variation effects can studied are Leff, Tox and Vth.
In this example, Leff is assumed to vary by +/-10% of the nominal value. So we need to DOE for 4 parameters of Leff (one for each of the transistors) This is done by Parameter->New->Append and enter the corresponding values in each window as shown below.
1) The name (Leff1, Leff2.. Tox1, Tox2,.. and Vth1, Vth2,.. so on) and nominal value of the parameter (separated by an = sign). 2) The Parameter label, which is used to reference a parameter value ( % followed by parameter name). 3) The Min/Max fields - values depending on the percentage of variations. 4) A Control checkbox to designate a control parameter (Check this so that this parameter can be accessed in DOE).
We can similarly add other parameters.
Also, we need to add a parameter for response (for ex - delay, power). Multiple responses can also be entered. The min/max value can be 0/1 as it does not matter and do check the Control checkbox for this parameter also. Lets add two responses - tdelayLH and tdelayHL.
In the Experiment window, click on the "Run Table..." under the Edit tab. The following window opens and rest of the procedure is done from this window
To perform DOE click on the "DOE..." tab and make sure you have ticked all the parameters required for DOE under the "Design" column as show above (NOTE - Do not check the responses, tdelayLH and tdelayHL in this case). A new DOE window opens as shown below.
You can select the required DOE, change the levels and say "Build Design". You might get the below warning, proceed to say yes.
Once the design is built, you will get a message "New Design has been built" and the sampling points generated from this DOE can be accessed by clicking on the "Spread Sheet..." in the Experiment window. Now check the responses also so that it gets reflected in the spread sheet as shown below.
Save this file as .txt by File->Save
The responses from the simulations using these values as inputs, will be appended to this spreadsheet and used to perform RSM.
- HSPICE Simulations
A automation script: RSMFlow.pl is used to do the following -
*To use each set of values in the DoE file as inputs to create different PTM models. *Use these PTM models to simulate a netlist of a circuit using hspice. *To capture the response of the circuit in every simulation run and to update the response of DoE spreadsheet so that it can be used to perform RSM.
To use the RSMFlow.pl script, the following must be present in the current working directory
Automation script - RSMFlow.pl Netlist of the circuit - .sp file DOE file generated by Taurus Workbench - .txt file PTM directory – Create a directory by name "PTM" (shoould have the two files called NMOS_last PMOS_last) and a sub-directory called "doc" . With in this doc directory, the created PTM models are stored.
NOTE: Makesure you do "add hspice" in the terminal window before you run RSMFlow.pl.
Usage of RSMFlow.pl
perl RSMFlow.pl -help
Will show the help for this flow as :
[NOTE]: Makesure you do " add hspice " in the terminal window before you run RSMFlow.pl To run this flow,the inputs needed are: The Hspice Netlist file (-netlist) The DoE File (-doe) The Design Factors can be Vth, Leff, Tox. If any of the factors is not used, its value must be zero, else should indicate the order it is present in the DOE spreadsheet The number of responses in the Experiment (-res) If the factors is assumed to vary by the same amount for all tranistors in the netlist then set (-multi) to 0, otherwise 1 The Name of the output DoE file with the responses appended (-output) Ex: " perl RSMFlow.pl -netlist INVX1.sp -doe DOEINVX1.txt -vth 0 -leff 1 -tox 0 -res 2 -multi 1 -output ResDOEINVX1.txt
A brief explanation of the inputs to the RSMFlow.pl and its working.
The hspice netlist file which needs to be simulated is given as input using the -netlist option and the DOE file with -doe option. In this ex, since only Leff is being used,value of option -leff is 1 and -vth,-tox are 0. If Leff and Tox were varied in this experiment and if Leff was entered first in the module window, then the options would be -vth 0 -leff 1 -tox 2. The use of option -multi is as follows - If there is a need to experiment such that all the tranistors in the circuit suffer the same process variations, then we can set -multi to 0 else its value must be 1.
A copy of the original netlist is modified by replacing NMOS_VTL by NMOS_VTL_0, next occurence of NMOS_VTL as NMOS_VTL_0 and so on. Similarly replacing PMOS_VTL by PMOS_VTL_0, next occurence of PMOS_VTL as PMOS_VTL_0 and so on. Also, if the instance parameter K2 from the Systematic Variations effect (by using the netlist obtained from layout extraction using Well Proximity effects) is present in the netlist, then its value is stored to be used while generating the PTM models and K2 and its value is removed from the netlist. It creates a hspice.include file which is included in the hspice netlist and points to transistor models (depending on the number of transistors in the netlist) going to be used in simulations.
The parameter values from the DOE file is used to generate transistor models. In this case, 4 transistors models are generated and a hspice simulation is done. The another set of 4 transistors models are generated and a hspice simulation is done. This is repeated N number of times depending on the DOE. For each of the simulation, the response is got from the .mt0 files and updated in the output DOE file
The ResDOEINVX1.txt is the resultant file with responses appended. This file needs to be opened from spreadsheet window by File->Load.
Once this file is loaded, click on the "RSM..." from the spreadsheet and the below window opens. Delay, which is the response can selected and moved from Factors to Responses as shown.
Also delete the control factor "SubWafer". This factor is present by default and if not removed, the models cannot be fitted properly
The overall strategy for RSM is shown below. (Ref: Taurus Modeling Environment Taurus Workbench User Guide Version X-2005.10, October 2005, Fig 8.4, Page 8-11
The statistics of the factors and responses can be seen under the statistics tab.
Orders for the models can bet set in the orders tab. You can choose the model type and assing all the factors the same order or assign the order individually. X-order refers to interaction order between factors.
Then click on the "Fit Models"
The model will be fitted and added under the "Polynomial Models". Select a model and click on the "Open" tab.
The following window opens and the measure of fit for the model can be studied.
Taurus Workbench uses four statistics to measure the quality of an RSM model:
• Residual RMS (Residual Root Mean Square Error) • R2 (multiple coefficient of determination or R-Square) • R2*(adjusted multiple coefficient of determination or adjusted ) • R2 press (predictive residual sum of squares) The better the model fits the data, the smaller the RRMS value becomes and R2,R2* and R2 press become closer to 1. Ideally, RRMS=0, R2 ,R2*, and R2 press =1.
If the measures are not good, then we can increase the order, interaction order and build new models. Then the best model can be selected by clicking on "Find Best Model". The Best Model will be added under the "Polynomial Models".
Once the best model is found out, choose that model and again click on the "Open" tab. In the "Polynomial Model" window, under the "Polynom" tab, the model equation for the response in terms of the factors is present. This equation can be exported to a .txt file for use in Monte Carlo Flow by selecting Export->Formula and saving it as a .txt file.
Delete all the models which are not required.Choose the best model and open the Perfomance Analysis Tool.
Increase the number of samples to say 1000 and click on "Sample Models". We will be able to see a set of plots including the distributions/histograms of the response and the factors.