AMA 2011.1.3 Users Manual

49
AMA 2011.1.3 User’s Manual

Transcript of AMA 2011.1.3 Users Manual

Page 1: AMA 2011.1.3 Users Manual

AMA 2011.1.3

User’s Manual

   

Page 2: AMA 2011.1.3 Users Manual

Copyright Notice and Proprietary Information

Copyright © Agilent Technologies, Inc. 2009, 2011. All rights reserved. This software and documentation contain confidential and proprietary information that is the property of Agilent Technologies, Inc. The software and documentation are furnished under a license agreement and may be used or copied only in accordance with the terms of the license agreement. No part of the software and documentation may be reproduced, transmitted, or translated, in any form or by any means, electronic, mechanical, manual, optical, or otherwise, without prior written permission of Agilent Technologies, Inc., or as expressly provided by the license agreement.

Right to Copy Documentation

The license agreement with Agilent Technologies permits licensee to make copies of the documentation for its internal use only. Each copy shall include all copyrights, trademarks, service marks, and proprietary rights notices, if any. Licensee must assign sequential numbers to all copies.

Disclaimer

AGILENT TECHNOLOGIES, INC. AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Registered Trademarks (®)

Agilent, Model Builder Program, MBP, Model Quality Assurance, MQA, Advanced Model Analysis, AMA, Proximity Quality Assurance, PQA are registered trademarks of Agilent Technologies, Inc.

Page 3: AMA 2011.1.3 Users Manual

Table of Contents

Getting Started Welcome to AMA Installation & License Get Ready to Run AMA Quick Touring

AMA Overview GUI Overview Menu: Project Menu: Rule Menu: Report Menu: Window Menu: Help

AMA Rule Rule Generator Rule Document ICF and VAR files

SKILL Template SKILL Template Example

Appendix AMA_HOME Directory Structur AMA Project Director Structure Built-in Functions

For any assistance, mail to: [email protected] 1

Page 4: AMA 2011.1.3 Users Manual

Welcome to AMAThank you for choosing AMA (Advanced Model Analysis). Process Design Kit(PDK) also require comprehensive QA and verification likeSPICE models, to ensure design success. AMA is a tool that provides automated yet flexible solution for DFM-aware PDK verification by:

Rule driven, all involved blocks are driven by simple rule files.Built-in layout & schematic generator based on Cadence SKILL language.Powerful graphics and analysis functions.Flexible tool interface, including interface to physical verification tools, DFM tools and SPICE simulators.Independent blocks, all involved blocks are independent in order to improve running efficiency.

AMA version

Current AMA version is 2011.1.3, with core modules' information:1. ama-core: V2011.1.3 -- Core module to deal with Virtuoso platform and other third party tools. 2. ama-ui: V2011.1.3 -- GUI module.3. ama-tools: V2011.1.2 -- Fundamental module. Note: To know the current of AMA, select "Help -> About".

AMA program flow

User input: Rule File, Deck, and Spice Model.AMA automatically generates Layout&Schematic views, extract layout, create netlist for simulation with or without LPE/RCX.AMA output: plots, tables pre-defined in Rule File, you can further execute analysis functions dynamically based on the resultdatabase to produce more plots/tables.Reporting: PDF, HTML, Word/Excel/PPT(both Microsoft Office and OpenOffice formats).

AMA Supported model formats, third-party tools, and platforms

Global model, binning model, and macro (sub-circuit) modelMOSFET (BSIM3v3, BSIM4, BSIMSOI, PSP, Hisim2, Hisim_HV), GP, Hicum, Maxtrem, and passive devices (R/L/C)(pending)Support UNIX/Linux, rely on Cadence(r) Virtuoso(r) environment.Supported simulators include HSPICE, Spectre.Supported layout Extraction tools include Calibre, Assura, Hercules, QRC, StarRCXT.

Contact Agilent

For more detailed product information, contact: [email protected] For information about Agilent and their products, refer to www.agilent.com/find/eesof-mbp-mqa

For any assistance, mail to: [email protected] 2

Page 5: AMA 2011.1.3 Users Manual

Installation and LicensePlatform SupportEDA Tools PrerequisitesInstall, Configure, and License AMARegister AMA in Cadence DFIIStart AMA

Platform

Currently AMA is working based on Cadence Virtuoso(r) environment, it is usually on Red Hat Enterprise Linux 3 or above.

JRE (Java Runtime Environment) 1.6 or above is needed to run AMA successfully.

NOTE: It is recommended to use the version of JRE which shipped along with the AMA program.

EDA Tool Prerequisites

Layout Generation: Cadence IC51 or IC61

Netlist Extraction:(1) Mentor Graphic Calibre(2) Synopsys Hercules & StarRCXT (3) Cadence Assura & QRC

SPICE Simulation: Synopsys HSPICE or Cadence Spectre

AMA has a third party tool checker to check tool's connectivity in the system. For more information, refer to Chapter 2.3.

To run AMA, you need at least one of these tools in every category and JRE.

Install configure and license AMA

To install and configure AMA, perform the following steps: 1. Unzip the program package 2. Set up a few SHELL environment variables.

1. Copy the software (e.g. amaV2011.1.tar.gz) to your target directory. Decompress the package with the following command: $> tar xvzf amaV2011.1.tar.gz

2. Set up the following variables in SHELL configuration file(~/.bashrc or ~/.cshrc, etc.), take Bash format as an example: export AMA_HOME=/home/userA/Accelicon/amaV2011.1.1 export AMA_SET=/home/userA/.ama_set export PATH=$PATH:$AMA_HOME/bin export LD_LIBRARY_PATH=$AMA_HOME/lib

3. License setup, AMA uses Flexlm floating license control, set the following variable in SHELL configuration file as well: export [email protected]

Register AMA in Cadence DFII

Load AMA SKILL functions to memory and register AMA menu to CIW, as follows:

Append a line at the end of ~/.cdsinit:load("<AMA_home>/lib/skill/amaInit.il")orType load("<path>/lib/skill/amaInit.il") in CIW command line.

An example of .cdsinit file is as follows:

For any assistance, mail to: [email protected] 3

Page 6: AMA 2011.1.3 Users Manual

Start AMA

To start AMA, select "AMA -> Start AMA" in the main menu of icfb(or virtuoso), as shown in the following figure.

There are also two sub-menus under "AMA" menu ( "Skip SKILL error" and "Get Java exception msg") for debugging purpose.When there is an error in SKILL code, it will block the AMA main window because it is still waiting for SKILL return, then you can use"Skip SKILL error" to continue the remaining project flow. ¡°Get Java exception msg¡± enables you to print the exception and background information which Java throws on CIW.

For any assistance, mail to: [email protected] 4

Page 7: AMA 2011.1.3 Users Manual

Get ready to run AMA1. Check Third Party Tools2. Check AMA Version Information

In order to run AMA projects, we must make sure that AMA is able to invoke necessary extraction tools or SPICE simulation tools. AMAprovides a checker to help this process.

Check Third Party Tools

The third party tool checker checks if the AMA can successfully call these third party tools (Calibre, Hspice, Spectre, etc.).Perform the following steps to run the third party tool checker:1. Click the corresponding icon from the toolbarorSelect "Help -> 3rd Party Tool Check"), as shown in the following figure:

2. Select the "Check Item" from the drop-down list.3. Click the "Check" button.A message window is displayed, as shown in the following figure.

For any assistance, mail to: [email protected] 5

Page 8: AMA 2011.1.3 Users Manual

If all the third party tools are successfully checked, we are then ready to run AMA.

Next part describes what if a tool cannot be checked successfully by AMA.

The necessary tools for running AMA are as follows:

1. Layout Generation:Cadence IC5.x or IC6.x2. Netlist Extraction: Mentor Graphic Calibre or Cadence Assura/QRC or Synopsys Hercules/StarRCXT3. Simulation: Synopsys HSpice or Cadence Spectre

AMA has script interface files to call these tools, each tool has one corresponding script file, such as: $AMA_HOME/bin/runspice.bat $AMA_HOME/bin/runspectre.bat $AMA_HOME/bin/amaCalibre.sh (and more ...)

If you have an internal wrapper for these tools, make sure that these tools can be correctly invoked in script files, take "runspice.bat" asan example: #!/bin/sh hspice -i $1.sp -o $1

You can modify these files to fit your IT environment, for example: To call calibre or hspice by LSF: #!/bin/sh bsub hspice -i $1.sp -o $1

Check AMA Version Information

By clicking ¡°Help -> About¡± from the main menu, you can check the current version and environment setting, as shown in the followingfigure.

For any assistance, mail to: [email protected] 6

Page 9: AMA 2011.1.3 Users Manual

The ¡°Env variables¡± button at the left-bottom displays AMA environment variable information. This information will help us in debuggingproblems if any, as shown in the following figure, make sure AMA_WORK , AMA_TEMP, and AMA_SET paths are NOT readonly to currentuser. Currently, shell configure file can only assign/edit these variables.Note: AMA_WORK and AMA_TEMP are optional, it will be by default set to $AMA_SET/work and $AMA_SET/temp respectively.

For any assistance, mail to: [email protected] 7

Page 10: AMA 2011.1.3 Users Manual

Quick Tour of AMALaunch Cadence DFIIStart AMAAMA Main WindowRule GeneratorView Plot

Let us do our first project together as a quick tour of AMA.

Launch Cadence DFII

Enter the working directory(where "cds.lib" defines PDK libraries to be in use) and launch Cadence DFII:

$>cd <mylib>$>icfb&

Start AMA

To start AMA, select "AMA -> Start AMA" in the main menu of icfb, as shown in the following figure.

There are also two sub-menus under "AMA" ( "Skip SKILL error" and "Get Java exception msg") for debugging purpose. 1. When there is an error in SKILL code, it will block the AMA main window because it is still waiting for SKILL return. Then you can use "Skip SKILL error" tocontinue the remaining project flow. 2. ¡°Get Java exception msg¡± enables you to print the exception and background information which Java throws on CIW.

AMA Main Window

The AMA main window is shown in the following figure.

For any assistance, mail to: [email protected] 8

Page 11: AMA 2011.1.3 Users Manual

New Project

Select "Project -> New -> Project" from the main window, to create a new project.The project window is displayed as shown in the following figure:

Enter the name of project in the "Project name" field.

Then select a folder path as the project working directory. AMA creates a ¡°<Project name>.prj¡± file and a ¡°<Project name>¡± directory under this path. Youcan load the project by loading ¡°<Project name>.prj¡± file from the main menu. The ¡°<Project name>¡± directory contains the intermediate files and result

For any assistance, mail to: [email protected] 9

Page 12: AMA 2011.1.3 Users Manual

files. More details about the ¡°<Project name>¡± directory structure is described in Chapter 6.2 .

The complete AMA flow includes four steps. You can check them according to the actual condition.

Generate layoutGenerate test structures layout in Cadence Virtuoso Database and stream out the GDS file.Extract netlist Extract netlist from GDS file by extraction tool and decks(command files).Check Extract W/LCheck whether the extracted W and L values are in the spec range which defined in involved Spice model.Do SimulationRun simulation by Hspice or Spectre.

You can add extract decks by clicking the "Add" button. In the Add new deck window, the deck type is set as "Calibre". Enter the Run Name and browse theCalibre deck file. You also have the option of selecting tech file. If the PDK Tech File is chosen, AMA will compile this file to generate a library amaRawLibxx.Otherwise, AMA will attach to the existing tech file which is defined in the rule file and generate the library.

"Run Name" is a user specified name, a sub-folder of this name is created within this project to store all the intermediate files from selected Extraction tool.

You can add more decks for extraction work and compare their result, as shown next. It is convenient to compare different decks, Caliber vs. Herclues, etc.

Click Rule tab to switch to the rule section as shown in the following figure. You can either load existing rule file or create a new rule by rule generator. (Fordetailed information on how to create rules, refer to Chapter 3.1) You can also view, modify, and save the rule.

For any assistance, mail to: [email protected] 10

Page 13: AMA 2011.1.3 Users Manual

NOTE: Some part of rule like [Sync] option can only be created in text edit mode.

Load and Run Project

You can load the project by choosing "Project -> Load project" from the main menu. Click the Run button to run the project.

AMA main window prints the running log in the log field under the current project tab. It will also print the message on the Cadence CIW window.

AMA supports multiple projects running in parallel. You can run a new project when another project is running. Each has its own log tabs.

AMA will create a temp lib ¡°AMARawLib¡± with <techLibName> tech in Cadence DB. You can open the layout and see what instance AMA creates. However youcan only see the instance created by the last rule, because they use same temp name ¡°instX¡±, so they will overwrite the previous layout.

You can find the GDSII file in <prjRunDir>/rules/<ruleName>/<ruleName>.gds.

Debug Project

AMA call some third party EDA tools like Hspice and Calibre, all the third party running logs are saved into files:

Cadence stream out program ¡°pipo¡±: <project Dir>/rules/<rule name>/PIPO.logExtraction log: <project Dir>/rules/<rule name>/<deck name>/extraction.logAMA simulation log: <project Dir>/simulation.logSimulator log: <project Dir>/spice/*.lis

View Plot

To load the result and view plot, perform the following steps:1. Select "Project->Load result" from the main menu.2. In the browser window, select the project directory to load.A tree structure is displayed on the left side of the AMA main window.Click the tree <prj>/<rule>/<deck> to view plots.

In the main window, when you right click the plot a menu is displayed as shown in the following figure. You can zoom in/out, view data as table, set data range,and switch plot scale between linear/Log, save a plot as a graph file, etc.

For any assistance, mail to: [email protected] 11

Page 14: AMA 2011.1.3 Users Manual

AMA also provides instance parameter tables for review. The parameter name with postfix (E) is the value after extraction, as shown in the following figure:

For any assistance, mail to: [email protected] 12

Page 15: AMA 2011.1.3 Users Manual

After rerunning a project, you can right click the prjNode and select refresh to view the updated plot view.

Press Ctrl and click multiple plot nodes to view multiple graphs overly, as shown in the following figure:

For any assistance, mail to: [email protected] 13

Page 16: AMA 2011.1.3 Users Manual

For any assistance, mail to: [email protected] 14

Page 17: AMA 2011.1.3 Users Manual

GUI OverviewThe main GUI of AMA is as follows. It includes five major parts:

A. Project result navigation fieldB. Active DB fieldC. Running log fieldD. Plot fieldE. Command field

Plot Operations

Right click on any plot graph, a menu is displayed as shown in the following figure.

For any assistance, mail to: [email protected] 15

Page 18: AMA 2011.1.3 Users Manual

Figure 4.2 Right click graph

Back to originalReturn to the original scale after zooming in/out.

View data as tableView the data in table format, as shown in the following figure.

Data range settingSet the data range for X/Y axes, as shown in the following figure.

Linear/LogSwitch X/Y axes coordinates between linear and log, as shown in the following figure.

For any assistance, mail to: [email protected] 16

Page 19: AMA 2011.1.3 Users Manual

Save asSave the graph file (gif, jpeg, jpg, bmp, png, bmp).

MarkerDisplay/hide the markers in the lines.

You can also overlap/merge multiple plots in one page. Press ¡°Ctrl¡± and click more rows in index table or click more plot view in project navigator, as shown in thefollowing figure.

Active Database

The DB panel (marked by red rectangle) lists current active database. All the commands that you enter take effect on these active DB. Press Ctrl key and click differenttable nodes on project result to select more active DBs.A compare plot view involves more than one active DB, such as "compPlot" or "compTable".

For any assistance, mail to: [email protected] 17

Page 20: AMA 2011.1.3 Users Manual

For any assistance, mail to: [email protected] 18

Page 21: AMA 2011.1.3 Users Manual

Project Menu

Like many other tools, actions in AMA are organized by Project. A Project involves related files to accomplish analysis, such as deck file,rule file, etc.

New -> Project: To create a project. New Project window is displayed to enter the project name/path as well as load deck file and rulefile.Project history: Give a list of projects in history, a shortcut for you to re-open an existing project.Load project: Projects are saved as "<project name>.prj" file, this option is used to load a ".prj" file.

Load result: Load project result into AMA GUI to view result in terms of tables and plots. When a project is finished successfully, itsresult are loaded automatically.

Exit: To exit AMA program.

A New Project window is as follows:

For any assistance, mail to: [email protected] 19

Page 22: AMA 2011.1.3 Users Manual

Rule Menu

Rule Menu provides a Rule Generator window that helps you to create AMA rule files.

The Rule Generator window is as follows:

There are three modes:

PCell: PCell based, it can load PCell library, parse PCell CDF parameters.SKILL: SKILL Template based, it can load AMA-specific layout template files in SKILL script.Layout: Load existing GDSII file, it can stream-in gds file, such as a RO.

For more details, refer to Rule Generator.

For any assistance, mail to: [email protected] 20

Page 23: AMA 2011.1.3 Users Manual

Report Menu

AMA result can be exported into documents in various formats, including:

PDFHTMLWordPPTExcelAs for Word, PPT and Excel, both Microsoft Office and OpenOffice formats are supported.

Generator Report from XML:

AMA result can be exported directly to any of the formats described earlier. However, it can be exported as XML files asintermediate format before converting to real document. The advantage of using XML files includes: 1. XML file size is small to transfer and share. 2. XML file can be later exported to document by this function. 3. XML file will be helpful to debug if the reporting met issues.

Properties...: Properties window is the place to switch between MS Office and OpenOffice, and to set graph option.

For any assistance, mail to: [email protected] 21

Page 24: AMA 2011.1.3 Users Manual

Window Menu

Window menu provides options and user preference settings.

Layout: row x column controls the plot "Tile" layout, such as 1x1, 2x2, etc.

Screen:

If a project result has multiple plots, it would create multiple screens. You can use "Previous" and "Next" to switch among screens. For example, if "Layout" isset to 2x2, then one screen would have four plots, then a fifth plot will go to the next screen. By default, when you click one node on a project tree, a corresponding table or plot will be appended to current screen's blank area, and will start a new screenif one screen is full. "Remove screen" can remove current screen and show previous screen. "Remove all screen " can remove all screens, in case you want to start a fresh screen.

Preferences: It opens AMA's global preferences window, as shown in the following figure:

AMA has built-in a context-sensitive help window. Click the "Help" button, a question mark will appear aside the cursor, then click onto any of the options, theHelp Contents will be displayed, locating to the clicked option's page, as shown in the following figure, for example:

For any assistance, mail to: [email protected] 22

Page 25: AMA 2011.1.3 Users Manual

For any assistance, mail to: [email protected] 23

Page 26: AMA 2011.1.3 Users Manual

Help Menu

User Manual: AMA user manual is in HTML format, you need program such as "firefox" to open it. The program name can be set in Preferences window.

Help Content: AMA built-in context-sensitive help contents are shown in the following figure:

For any assistance, mail to: [email protected] 24

Page 27: AMA 2011.1.3 Users Manual

3rd party tool check AMA built-in 3rd party tool checker is shown in the following figure:

About: AMA version information is shown in the following figure:

Click the "Env variables" button to see the run-time environment variable setting, as shown in the following figure:

For any assistance, mail to: [email protected] 25

Page 28: AMA 2011.1.3 Users Manual

For any assistance, mail to: [email protected] 26

Page 29: AMA 2011.1.3 Users Manual

Rule DocumentRule ExampleRule Syntax and Format

Rule Files are the key driving factor of AMA projects. The Rule file defines what's input, how to sweep layout parameters, what target tooutput, and what type of plot or check functions to perform. AMA rule is in text format. Use text editor to edit it easily. This chapter describes the format and syntax of AMA Rule, in order to help you understand and customize AMA Rules.

Note: AMA rule is NOT case-sensitive.

Rule Example

One rule example is listed below, this is an application based on one of our built-in SKILL templates for WPE structure, as shown below:

Rule file is like:

[Rule:1000:title=tpTemplateWPE_il_WPE_structure][GroupID:1000][Source:SKILL:/home/layout/Accelicon/quickstart/skill/tpTemplateWPE.il:techLib45/WPE_structure/amaCreateWPE][Spice:Hspice:/home/layout/Accelicon/quickstart/model/model.l:nch::nmos:_::Neas][LayoutParams:L(0.1):W(0.6):W1(0.15):W2(0.45):W3(0.3):W4(0.3):L5(0.03):L6(0.07):SA(0.3):SC1(0.9):SC2(1.2,2.2,3,3.2):SC3(0.8,1,1.2,1.4):SC4(3):SC5(0.5):SC6(1.2):SC7(0.7):type("N")][SpiceParams:Vds(Vdd)

For any assistance, mail to: [email protected] 27

Page 30: AMA 2011.1.3 Users Manual

:Vgs(Vgg):Vbs(0):T(Tnow)][Constant:Vdd(1.3):Vgg(1.3):Tnow(25)][Sync:layout(SC2,SC3)][Target:Idsat:Vth_gm][View:V001:Idsat vs sc2:Plot(sc3,sc2,Idsat):] [View:V002:Vth vs sc2:Plot(sc3,sc2,Vth_gm):]

Rule Syntax and Format

An AMA rule file is made up of the following sections(keywords), colon(:) is used as separator.

1. [Rule] The syntax is: [Rule:id:title = user-specified title for display]

2. [GroupID]The syntax is: [GroupID:id]

3. [Source] The syntax is:(1) SKILL mode: [Source:SKILL:skill template file path: techLib name/template name/template function name](2) PCell mode: [Source:pcell:lib name/cell name/view name](3) Layout mode: [Source:layout:gds file path:top cell name]

4. [Spice]The syntax is: [Spice:Simulator type:library file path:model name:corner name:model type:is a Subckt or not:icf file path:is extractedas subckt or not] Note:1. the possible value for "is a Subckt of not" must be "X" if yes, or "_" if not. 2. the possible value for "is extracted as subckt or not" must be "Yeas" if yes, or "Neas" if not. 3. the possible value for "Simulator type" must be "Hspice" or "Spectre".

5. [LayoutParams]The syntax is: [ LayoutParams : param1(value list) : param2(value list) : more params if any ] Note:1. for PCell mode, parameter unit is meter(m) by default, for SKILL mode, parameter unit is macro(um) by default, valuesassigned here should with correct unit. 2. [LayoutParams] is ignored if in Layout mode, all layout parameters are extracted directly from gds.

6. [SpiceParams] The syntax is similar to [LayoutParams] but for bias condition and temperature settings, such as Vds, Vgs, T, etc. [ SpiceParams : param1(value list) : param2(value list) : more Spice params if any]

7. [Constant] The syntax is similar to above parameter settings but each one is considered as a constant, which can be used in [SpiceParams] [ Constant : const1(value) : const2(value) : more constant if any] Example: if defined [Constant: Vdd(3.3)] , then we can use "Vdd" in [SpiceParams : Vds(Vdd)]

8. [Sync] , this section is optional, to define parameter synchronization, such as SA_SB synchronization.The syntax is: [Sync:layout(param1, param2) ] Note: more than 2 parameters can be synchronized at the same time, for example [Sync:layout(A,B,C)]

9. [Target]The syntax is: [ Target:target name:another target name: more target name if any For example: [Target : Idsat, Vth_gm]

10. [View] The syntax is: [View : id : view name text for display:Function(P, X, Y): error message ] For example: [View:V001:Idsat vs sc2:Plot(sc3,sc2,Idsat):] is to plot Idsat vs. Sc2 @ Sc3, error message is ignored. Note: for more built-in check function can be used in [view] section, refer to Chapter 6.3.

For any assistance, mail to: [email protected] 28

Page 31: AMA 2011.1.3 Users Manual

For any assistance, mail to: [email protected] 29

Page 32: AMA 2011.1.3 Users Manual

ICF and VAR FilesICF filesVAR files

ICF Files

ICF (Instance Connection File) files are critical for AMA to create SPICE netlist for simulation. It defines information on device terminalconnection and SPICE targets calculation. Take MOSFET as an example, it defines D/G/S/B terminals, how Vds, Vgs, etc are biased, and how to calculate Idsat, Vth, etc.

Default ICF files are under folder $AMA_HOME/etc/icf/, when set up an AMA project, specify an ICF file path for SPICE simulation,otherwise default ones are used.

A sample nmos.icf file is shown as below:

#Section node#key = {index, NULL or 0}, NULL means that this node must be connected to the other node in the netlist, while 0 meansgrounded. [PORT]d = {1,NULL}g = {2,NULL}s = {3,NULL}b = {4,0}

# Note: if you want to define a five terminal device, un-comment the following line.#sub = {5, 0}

#Instance Connection#key = {node,node,type,in/out,analysis}[Connection]Vg = {g,0,v,in/out,dc}Vd = {d,0,v,in/out,dc}Vb = {b,0,v,in/out,dc}Vs = {s,0,v,in/out,dc}Vgs = {g,s,v,in/out,dc}Vds = {d,s,v,in/out,dc}Vbs = {b,s,v,in/out,dc}Vgd = {g,d,v,in/out,dc}Vgb = {g,b,v,in/out,dc}vdb = {d,b,v,in/out,dc}Ids = {0,d,i,in/out,dc}Id = {0,d,i,in/out,dc}Ig = {0,g,i,in/out,dc}Is = {s,0,i,in/out,dc}Ib = {b,0,i,in/out,dc}freq = {NULL,NULL,f,in,ac}f = {NULL,NULL,f,in,ac}y = {NULL,NULL,NULL,out,ac}

y11_i = {NULL,NULL,NULL,out,ac}y11_r = {NULL,NULL,NULL,out,ac}y12_i = {NULL,NULL,NULL,out,ac}y12_r = {NULL,NULL,NULL,out,ac}y21_i = {NULL,NULL,NULL,out,ac}y21_r = {NULL,NULL,NULL,out,ac}y22_i = {NULL,NULL,NULL,out,ac}y22_r = {NULL,NULL,NULL,out,ac}

y11i = {NULL,NULL,NULL,out,ac}y11r = {NULL,NULL,NULL,out,ac}y12i = {NULL,NULL,NULL,out,ac}y12r = {NULL,NULL,NULL,out,ac}y21i = {NULL,NULL,NULL,out,ac}y21r = {NULL,NULL,NULL,out,ac}y22i = {NULL,NULL,NULL,out,ac}y22r = {NULL,NULL,NULL,out,ac}

h11_i = {NULL,NULL,NULL,out,ac}h11_r = {NULL,NULL,NULL,out,ac}h12_i = {NULL,NULL,NULL,out,ac}h12_r = {NULL,NULL,NULL,out,ac}h21_i = {NULL,NULL,NULL,out,ac}

For any assistance, mail to: [email protected] 30

Page 33: AMA 2011.1.3 Users Manual

h21_r = {NULL,NULL,NULL,out,ac}h22_i = {NULL,NULL,NULL,out,ac}h22_r = {NULL,NULL,NULL,out,ac}

s11_i = {NULL,NULL,NULL,out,ac}s11_r = {NULL,NULL,NULL,out,ac}s12_i = {NULL,NULL,NULL,out,ac}s12_r = {NULL,NULL,NULL,out,ac}s21_i = {NULL,NULL,NULL,out,ac}s21_r = {NULL,NULL,NULL,out,ac}s22_i = {NULL,NULL,NULL,out,ac}s22_r = {NULL,NULL,NULL,out,ac}

#instance property#key = {function and parameter: condition of parameter}[variable]vth_con = {CalPage(Vds,Vgs,Ids,"Vth_lin"):Vgs(start=0,stop=Vgg/3,step<=0.01):Vds(Vd_lin)}vth_gm = {CalPage(Vds,Vgs,Ids,"Vth_gm"):Vgs(start=0.01*DEVTYPE,stop=Vgg,step<=0.025):Vds(Vd_lin)}vth_sat = {CalPage(Vds,Vgs,Ids,"Vth_sat"):Vgs(start=0,stop=Vgg,step<=0.01)}vth = {vth_con}vth_lin = {vth_con}power = {Vds*Ids}Idsat = {CalPage(Vgs,Vds,Ids,"Idsat","@Vgs~vgg","@Vds~vdd","@Vbs=0"):Vgs(Vgg):Vds(Vdd)}Ioff = {CalPage(Vgs,Vds,Ids,"Ioff","@Vgs~0","@Vds~vdd","@Vbs=0"):Vgs(0):Vds(Vdd)}Isub = {Ib}Igate = {Ig}Rch = {Vds/Ids}Cgg = {Y11_i/(2*3.1415926*freq):freq(start=1e5,stop=1e9,perdec=4)}Cgd = {(-1)*Y12_i/(2*3.1415926*freq):freq(start=1e5,stop=1e9,perdec=4)}Cgs = {Cgd}Cgb = {Cgg-Cgd-Cgs}Cgc = {Cgs+Cgd}gmoverId= {gm/Ids}Rout = {1/gds}s = {convertYtoS(y)}

#Instance Parameter mapping for compact models, usually it is not required to change this part.# It's not needed for subckt instance parameters.[parameter]w = {w}l = {l}m = {m}AD = {AD}AS = {AS}PD = {PD} PS = {PS} NRD = {NRD} NRS = {NRS}sa = {sa}sb = {sb} sc = {sc}sd = {sd}nf = {nf}dtemp = {dtemp}t = {dtemp,'t-25'}Tox = {Tox}

VAR Files

VAR (VARiable) files has some pre-defined variables that are used in the rule, such as Vdd, Vgg, etc. A sample nmos.var file is shown as below:

[common variables] Vdd = 3.3 Vgg = 3.3Vbb = -3.3Tmin =-40 Tnom =25 Tmax =125DeltaW=0DeltaL=0Icon=1e-7vd_lin=0.1#DeltaW, DeltaL, and Icon, Vd_lin are used to calculate Vth using constant current method.

For any assistance, mail to: [email protected] 31

Page 34: AMA 2011.1.3 Users Manual

#The following section defines variables for Ids, once you provide Ids on Rule Generator, these three Spice Parameters getsauto-added on GUI, similarly you can define more target section to speed up GUI input. [Ids]vgs=vgg|paramvds=vdd|paramvbs=0|param

For any assistance, mail to: [email protected] 32

Page 35: AMA 2011.1.3 Users Manual

SKILL TEMPLATE STRUCTURESKILL Template Structure Setting

The test structure files are located under $AMA_HOME/etc/skill/. Normally every file contains the following five parts:

1. Set techLibName2. Set layer mapping3. Set design rule4. Register test structure name, function, and parameters.5. Load related SKILL function file.

Take <AMA_HOME>/etc/skill/tpTemplate.il as an example, the major steps to customize a SKILL Template file for AMA are as follows:

Set Tech Lib name in Cadence Virtuoso

techLibName = <techLibName>

Set Layer Mapping

layer mappinglayerList->diff = "OD"layerList->nwell = "NW"layerList->poly = "PO"layerList->pplus = "PP"layerList->nplus = "NP"layerList->cont = "CO"layerList->m1 = "M1"layerList->border = "ref"purpose mappingpurpose->dg = "drawing"purpose->pn = "pin"

Set Design Rule

designRule->polyEncDiff = 0.4designRule->diffEncCont = 0.2designRule->contWidth = 0.2designRule->polyEncCont = 0.1designRule->contSpacing = 0.1designRule->grid = 0.005designRule->nwellEncDiff = 0.25designRule->pplusEncDiff = 0.1designRule->nplusEncDiff = 0.2designRule->polyWidth = 0.1designRule->diffSpacing = 0.6designRule->m1EncCont = 0.05

Register Device Generate Functions

AMADefineDevTemplate( ?name <device name> ?function <skill function name> ?picture <picture file name with full path> ?parameters list( list(<paramName> <type> <comment>) list(¡ ) list() ) )

Load SKILLl Function File

load(¡°$AMA_HOME/etc/skill/tpGen.il¡±)

For any assistance, mail to: [email protected] 33

Page 36: AMA 2011.1.3 Users Manual

AMA Installation Directory Structure The directory structure under AMA_HOME is shown below:

bin: contains key executables of AMA.

lib: contaians library files for program, such as ".so" and ".jar" files.lib - skill: contains SKILL files to initiate AMA program from Virtuoso.

etc: contains default settings files.etc - icf: contains Instance Connection Files, for more details about ICF file, please refer to Chapter 5 Rule. etc - checker: contains testing cases to check connectivity to 3rd party tools, such as Calibre, Assura, Hercules, Hspice, Spectre,StarRCXT, etc. etc - checkfunctions: contains built-in check functions, which can be used in AMA's command field window. More customized functionscan be appended here.etc - skill: contains built-in SKILL template files to create layout.

lic: contains license related configuration files, more details of setup license please contact [email protected]

help: contains AMA user manual and built-in context-sensitive help files.

For any assistance, mail to: [email protected] 34

Page 37: AMA 2011.1.3 Users Manual

AMA Project Directory StructureThe directory structure under each AMA project folder is shown below:

<project Dir> <projectName>.prj ¨C project setting file. <projectName>.log ¨C project log info (same as the output in AMA log field) simif.log ¨C AMA simulator interface program ¡°simif¡± output log . amaSimDone.flg ¨C ¡°simif¡± job done flag (empty file)++ rules ++++ <ruleName> <ruleName>.gds ¨C test structure GDS file <ruleName>.hsp ¨C netlist file of test structure layout (for LVS job) layout.set ¨C inst name mapping file. <ruleName>StreamOut.il ¨C Cadence stream out program ¡°pipo¡± command file PIP0.LOG ¨C ¡°pipo¡± log file.++++ <deckName1> <deckFileName> -- calibre extraction deck runset extraction.log ¨C extraction log file. AMAExtJobDone.flg ¨C extraction job done flag (empty file) <ruleName>.sp ¨C extracted netlist ++++ <deckName2> ... ++ result viewlist.xml ¨C result structure view define file <num>_<deck>_inst.map ¨C design value VS extracted value table. <num>_<deck>_<target>.csv ¨C result data table(inst.map + simulation result data). This file can be opened with any texteditor.++ spice amanxxx.sp ¨C simulation raw netlist created by AMA. amanxxx.lis ¨C simulator output log file.

For any assistance, mail to: [email protected] 35

Page 38: AMA 2011.1.3 Users Manual

Built-in FunctionsPlot commands

plotcompPlothist

Table commandstablecompTable

Other commandsmarker on/offtitle on/offlegend on/offlegendgroup on/offsave

Check FunctionscheckYIncreasecheckCrosscheckSlopecheckSpikecheckRmscheckMono

Plot Commands

PlotUsage: plot(p,x,y) or plot(x,y)This command is use to draw a graph with specified p,x,y scale. Axis Y can only use Target variable. One example is shown in Figure 4.8.

Figure 4.8 plot command

CompPlotUsage: CompPlot(p,x,y) or CompPlot(x,y)Command for multiple active DB files, same as Plot command.

plot() and compplot() command also support ¡°ref=<ref value>¡±Usage: Plot(w,l, idsat,¡±ref=0.1¡±)

For any assistance, mail to: [email protected] 36

Page 39: AMA 2011.1.3 Users Manual

One example is shown in Figure 4.9.

Figure 4.9 Reference pointStatistical plot - hist

Usage: hist(<column to plot>) or hist(<column to plot>, ¡°binnum=<num>¡±)Plot histogram. As shown in Figure 4.10, hist(ids) draws a 20-bin histogram for the data in column Ids. The bins are equally spaced between theminimum and maximum values in Ids.

For any assistance, mail to: [email protected] 37

Page 40: AMA 2011.1.3 Users Manual

Figure 4.10 Statistical plot

Table Commands

CompTable()

Usage: comptable(<colName1>,<colName2>,¡,¡±type=0/1¡±) or comptable(<colName1>,<colname2>,¡,@condition,¡±type=0/1¡±)

@condition and ¡°type=0/1¡± are optional. Type=0 is the default value.

@condition Support ¡°=¡±, ¡°!=¡±, ¡°>¡±, ¡°<¡±, ¡°>=¡±, ¡°<=¡±. No limit with condition length.Eg: @L>1.3e-6;L<4e-6;A=1e-7;B>=2e-9;shape=H

Type: Type=0 : col in table1 ¨C col in table2 Type=1 : (col in table1 ¨C col in table2) / col in table1

Table()

Usage: table(@condition)

This command displays a new table with given condition. This condition is a temp table, you can¯not plot from this table. Plot() command also support@condition.

Other Commands

marker on/off

Display/Hide plot data point marker

title on/off

Display/Hide plot title

legend on/off

Display/Hide plot legend

legendgroup on/off

For any assistance, mail to: [email protected] 38

Page 41: AMA 2011.1.3 Users Manual

Display/Hide plot legend group

Save current plot to project navigator

Usage: save()

AMA uses (Y vs X) as the plot view name.

Check Functions

CheckYIncrease(p,x,y)

To check if Y is increased with X. Example is shown in Figure 4.11.

Figure 4.11 CheckYIncrease

checkCross(p,x,y)

To check if there is interconnection between curves. Example is shown in Figure 4.12.

For any assistance, mail to: [email protected] 39

Page 42: AMA 2011.1.3 Users Manual

Figure 4.12 CheckCross

Checkslope(p,x,y)

To check if curve slope is less than zero. Example is shown in Figure 4.13.

For any assistance, mail to: [email protected] 40

Page 43: AMA 2011.1.3 Users Manual

Figure 4.13 CheckSlope

Checkspike(p,x,y,¡±tolerance=<tol>¡±)Check slope deltaCheckspike(p,x,y,¡±tolerance=0.05¡±)Checkspike(p,x,y) default tolerance is 0.1

Checkrms(p,x,y,¡±tolerance=<tol>¡±) Check root mean squareCheckrms(p,x,y,¡±tolerance=0.05¡±)Checkrms(p,x,y) default tolerance is 0.1

Checkmono(p,x,y,¡±tolerance=<tol>¡±)Check curve monotonic, it flags the errors when curve is not monotonic, no matter it¡¯s increasing or decreasing.Checkmono(p,x,y,¡±tolerance=1E-6¡±)Checkspike(p,x,y) default tolerance is 0.1

For any assistance, mail to: [email protected] 41

Page 44: AMA 2011.1.3 Users Manual

Rule GeneratorPCell ModeSKILL ModeLayout Mode

Rule file is a key driver of AMA projects. A Rule file defines every detail on what's input, how to sweep, what's output and how to check. Inorder to ease Rule file creation, AMA provides a Rule Generator to help generate a Rule file from GUI.

Choose "Rule -> Rule generator" from the main menu or click icon in the tool bar to open the rule generator window as shown in Figure3.7. Rule file can be generated in either SKILL or PCELL mode.

PCell Mode

PCell Mode is to use existing PCells to create layout. The PCELL mode is shown below:

For any assistance, mail to: [email protected] 42

Page 45: AMA 2011.1.3 Users Manual

First, select one PCELL library from the PCELL dropdown list and then choose interested device name from the Device List.

Layout Instance

Set the parameter values. AMA supports two modes: List mode (e.g. 0.2,0.3,0.4) and Sweep mode (e.g. start=0.3, stop=10.3,step=0.5).

According to parameter type:1. "radio" and "cyclic" types of parameters are shown as drop-down lists with default value selected, it makes the selection easy.2. "boolean" parameters are shown as checkboxes, in case one checkbox is checked, then this parameter is "t", otherwise it's "nil".3. "string" or "float" parameters are shown as text field to accept your input directly.

To be noted, whenever a "radio" or "cyclic" or "boolean" the parameter value gets changed, AMA would re-evaluate this PCell (call-back functions are invoked) with newly selected value and refresh the whole parameter table.

Show Non-Editable: if checked, shows non-editable CDF parameters, which means that parameter "editable=nil" Show Non-Display: if checked, shows non-display CDF parameters, which means that parameter "display=nil", most non-displayparameter are also non-editable, so check both to show non-display parameters. As shown below:

For any assistance, mail to: [email protected] 43

Page 46: AMA 2011.1.3 Users Manual

In the "Name" column, if a parameter is non-editable, then the text color of the "Name" cell would be gray, and if a parameter is setto non-display, then the background color of the "Name" cell would be gray. The cells in "Value" column would not be editable if that rows of parameters are non-editable.

SPICE ModelClick Add button to add new SPICE model, as shown below. First choose the SPICE simulator and load the SPICE model file. AMA libparser parses the model library file. Then, select Model name, Corner, and Model Type. In case layout is a circuit, such as a RO, then do not set Model for a circuit, click the Circuit check box to ignore the Model option.

The "Model Type" is corresponding to ICF file (.icf) which contains information for simulating the circuit like port sequence and netlistcreation. ICF file is under $AMA_HOME/etc/icf/.

For any assistance, mail to: [email protected] 44

Page 47: AMA 2011.1.3 Users Manual

SPICE Instance & TargetSet spice parameters, constant, and target

Plot ViewSet the default plot view.

MeasurementAdd measurement data files if there are.

Finally, save the rule file by clicking the Save button.

SILLL Mode

SKILL Mode is to use customized SKILL template to create Layout, a few built-in SKILL template files are provided by AMA, under folder$AMA_HOME/etc/skill/ Click the "SKILL" button to switch to the SKILL mode. Click Browser to load one SKILL template file. Select device name In the Device Listpanel, as shown below.

Layout InstanceIn SKILL mode, since there is no default value, fill in all the parameters values. AMA does not support sync mode parameter in rulegenerator GUI. If you want to use sync mode parameter, use the editor (eg, vi) to edit the rule file directly or edit it under projectwindow. If the SKILL device template has a picture, you can click the button to display it, to get a straightforward understanding ofthe meaning of parameters, as shown below.

For any assistance, mail to: [email protected] 45

Page 48: AMA 2011.1.3 Users Manual

Rest settings are the same as PCell mode, and finally save a rule file by clicking Save button.

Layout Mode

Layout Mode is to use existing GDSII file as input to do analysis.

As the figure shows below, you can Load a GDS file, specify a techfile path, and click "Stream in" button.

For any assistance, mail to: [email protected] 46

Page 49: AMA 2011.1.3 Users Manual

Top CellAfter Stream in, cell names within loaded GDS file gets listed in this Top Cell dropdown list, correctly choose the Top Cell name, itfurther gets used in SPICE netlist auto-generated by AMA.Rest settings are the same as PCell mode, and finally save a rule file by clicking Save button.

For any assistance, mail to: [email protected] 47