====== Corners analysis in Cadence ====== ===== Command line mode ===== * Create a process corner definition file following the example {{umc180nm.pcf.txt|here}}. This is for a case where all corners are defined in a single model file. Choose the model directory and file using ''corAddProcess'' and ''corSetModelFile''. Then set desired corners using ''corAddCorner'' statements. Each corner specified using ''corAddCorner'' has to be one of the sections in the model file(specified with ''corSetModelFile'') * In the method above, each corner you want has to be defined as a section in the single model file. In many cases, UMC for example, mos, resistor, and capacitor corners are different individual sections. A corner of interest may have a particular combination of mos, resistor and capacitor corners. For this an additional modelfile with each section containing the desired corners from the UMC model file has to be created. In TI and VLSI lab machines this is already created as {{:cadence:allcornerdefs.scs.txt|allcornerdefs.scs}} under ''/cad/library/UMC/UMC_18_CMOS_Model/Spectre/ver9.1/mm''. This contains all possible combinations of mos(tt, ss, ff, snfp, fnsp), res(res_typ, res_max, res_min) and cap(mimcaps_typ, mimcaps_max, mimcaps_min) corners. A sample pcf file, {{umc180nm.pcf.txt|umc180nm.pcf}} is also available in the same directory. ===== Graphical mode ===== The following method describes how to do a single model library corner simulation in cadence. * Choose //Corners// from //Tools// menu in ADE. * A window like the one shown below appears. Choose //Add Process// from the //Setup// menu. {{:corners-window0.png|:corners-window0.png}} * Enter the data for the UMC library as shown in the image. The field "Process Variables" provides us the option of varying any design variable loaded in ADE across the corners. {{:corners-window1.png|:corners-window1.png}} * On the tab //Groups/Variants//, the field //Group name// allows us to give a name to a field which will let us choose from one of the //variants// provided. As an example, we can choose //Group name// as "Process" and //variants// as "tt,ss,snfp,fnsp,ff". The possible variants are separated by a comma. This is shown below. {{:corners-window2.png|:corners-window2.png}} * Click OK and a window as shown below appears. One can now click //Add Corner//, give it a name. {{:corners-window3.png|:corners-window3.png}} * Different corners can be added as shown in the figure below and the process corner can be chosen from the drop down menu appearing in the field corresponding to //Process//. Click Run to start the corner simulation. Outputs to be plotted can be added in the Performance measurements area. {{:corners-window4.png|:corners-window4.png}} ===== To Do ===== * Including process variations across multiple files - Transistors are described in one file, resistors in another and so on. These can be simulated using Multiple Model library method. * Cadence documentation describes this using script files to do the same see ''/cad/tools/cadence/doc/aatoolsuser/chap1.html''