Component Definitions

In ADS, a component is a symbol that has a specific set of parameters and terminals. It may also have a related schematic or layout.

Every component makes a single call to the create_item() function which defines the name of the symbol file, the schematic file, and the parameters. The create_item call causes ADS to create a uniquely named component. These uniquely named components can go into ADS schematic hierarchies that are netlisted and simulated in the ADS simulator.

For netlist exporting, the terminals are determined by accessing the schematic database file and the symbol database file. These do not have to be the same file in ADS.

Component Definition Files

Component definition files are ASCII text files in the CNEX_COMPONENT_PATH that contain variables that determine how to netlist a component for a particle tool. Variable names are not case sensitive, but their values are. The variables can be in any order in the file.

Note
The file <ADS component name>.cnex must be in the appropriate tool directory for the component definition file to work.

ADS subcircuits do not need to have a component definition file because they inherit the default subcircuit format. However, if an ADS component is not a hierarchical design, it must have a definition file.

Component Definition File Variables

Netlist_Function

This variable contains the name of the instance function to be called to format an instance of a component for a netlist.
You have three options for choosing an instance function:

Syntax

Netlist_Function = < function >

Example

Netlist_Function = cnexNetlistInstance

Component_Name

This variable specifies the name for the component instance in the netlist.
In general you can assign any name, but there are some rules for specific cases:

Syntax

Component_Name = < name >

Example

Component_Name = R

Note
You must always assign a value to this variable in the Component Definition File.

Terminal_Order

This variable specifies the order for outputting component pins for netlist exporting.

Syntax

Terminal_Order = < value >

Example

T erminal_Order = 1 2

Parameters

This variable specifies the parameters to output to the netlist for an instance. Front End Flow outputs the parameters in the order you list them.

Syntax

Parameters = < parameter > < parameter >

Example

Parameters = R _M Model Width Length

Parameter_Name_Mapping

This variable maps an ADS parameter name to a netlist name.
If you do not want to output the ADS parameter name to, leave Netlist Name blank.
If you want the ADS parameter name to be the same as the netlist name, do not assign this variable.

Syntax

Parameter_Name_Mapping = < ADS Name > (< Netlist Name > |)

Example

R1 is an instance in ADS. It connects to nodes _net1 and ground , and has the parameters R=50 and _M=2:
Parameter_Name_Mapping = R

Parameter_Type_Mapping

This variable specifies the AEL mapping function for an ADS parameter.

Syntax

Parameter_Type_Mapping = < ADS parameter > < AEL mapping function >

Example

A custom resistor component named myAdsRes is in ADS. It has two models, myAdsRes1 and myAdsRes2 . The Dracula LVS rule file extracts these models as R1 and R2 . For correct netlist output, you must map myAdsRes1 to R1 and myAdsRes2 to R2 . In myAdsRep.cnex , the component definition file, add the following line:
Parameter_Type_Mapping = Model myAdsResMap

When the circuit is netlisted, the function myAdsResMap will be called when the Model parameter is output. The function will return the appropriate values for output for Dracula.

Note
There are no standard AEL type mapping functions. You must write them. See Adding Value Mapping Functions for information. Check the documentation for the tool you are using to verify the value outputs that it needs.

Component Definition File Editing

There are the following two ways to edit component definition files:

Component Definition File Setup with the GUI
The Component Definition Editor (Component Definition Editor) graphical user interface is available from the Tools > Netlist Export menu. The Editor enables you to specify all the fields needed for a component definition.

The Component Definition Editor can also read in ADS item definitions so that it can automatically populate the fields for components that do not already have a definition. For defined components, it can provide information about available parameters in the ADS item definition. The Component Definition Editor automatically updates the component definition table, preventing the use of old definitions.

Component Definition Editor
Tool: Choose the tool you want from drop-down menu. The default tool when you start the Component Definition Editor is the last one specified in the component edit or the netlist dialog.
Component: Type in the component name.
Browse... If you do not know the name of the component you want to edit, press Browse... to bring up the Library Browser Window. The Editor automatically reads in the definition of the component you select.
Definition File Location This drop-down menu contains the path for the component definition file. You may edit the path if you do not find the one you want in the menu. When you edit the path, make sure you specify a file in a site wide location and not a user location.


Component Definition Editor Items
Definition File Location: Continued If there is no file at the specified location, the Component Dialog Editor will follow the component definition path contained in the CNEX_COMPONENT_PATH configuration variable and use the first definition file it finds. If there is no definition file, Front End Flow will create one based on the information in the AEL create_item call.

The following fields are for entering variable vales in the component definition file.

Netlist Function: Choose the name of the function you want to use to format an instance of the component for netlist exporting. Instance Netlist Exporting Functions contains the list of the default functions that come with Front End Flow. You can also write your own netlist export function. If you do not choose a function, Front End Flow will use the cnexSubcircuitInstance if the component is a subcircuit, or cnexUnknownInstance if the component is a primitive.
CNEX Component Name: Type in the name you want for the component instance. If use the cnexSubcircuit netlist function (see Netlist Function: above), you can use subcircuit for a name.
If you are using Spice, you can use a name that is just one character. In this case, the tool for which you are exporting the netlist will determine the name.
Terminal Order: This field specifies the pin output order for netlist exporting. The ADS pin order for a component, which is sequential by pin number, is the default. You should check with the documentation for other vendor tools because the pin order for those tools may not be the same as the ADS default.
You can use either pin numbers or pin names to set the terminal order. You cannot mix the two.
You must use pin numbers with ADS components because many of them do not have pin names.
Parameters: This list box contains the parameters you want to output. The parameters are output in the order listed.
Map Parameter To This field displays the netlist name for the parameter selected in the Parameters list box.
Parameter Type Function This field displays the AEL mapping function for the parameter selected in the Parameters list box.
Parameter Type Function Continued If you specify an AEL mapping function in this field, the ADS parameter value will be passed to that function.The function returns the value that needs to be output to the net list.

Component Definition Editor Procedure

  1. Select the tool from the Tool: drop-down menu.
  2. Type the component name in Component: , or select it by clicking Browse .
  3. Press Tab or select the next field in the Editor and Front End Flow will read the component definition into the Editor .
  4. Use Definition File Location: to specify the path to the component definition file.
  5. Specify the component definition file variable values in the remaining fields of the GUI.
 

Privacy Statement  | Terms of Use  | Legal | Contact Us  | © Agilent 2000-2008 

Contents
Additional Resources