****************************************************************************** ****************************************************************************** BIRD ID#: 118.2 ISSUE TITLE: Analog Parameter Assignments REQUESTER: Arpad Muranyi, Mentor Graphics DATE SUBMITTED: October 5, 2010 DATE REVISED: November 8, 2010 March 23, 2011 DATE ACCEPTED BY IBIS OPEN FORUM: ****************************************************************************** ****************************************************************************** STATEMENT OF THE ISSUE: The "Parameters" subparameter of the [External Model] and [External Circuit] keywords contains a simple listing of the parameters of [External Model]s and [External Circuit]s without the capabilities of assigning any values to them. The expectation was that the EDA tool would provide a mechanism to the user to make the actual value assignments for these parameters. There are situations, however, when assigning values to these parameters from within the .ibs file would be highly desirable so that the assignments could be defined and/or kept together with the model. ****************************************************************************** STATEMENT OF THE RESOLVED SPECIFICATIONS: This BIRD is designed to be a close relative of BIRD 117. The assignment features described in this BIRD for the parameters listed under the Parameters subparameter are consistent with the assignment features described in BIRD 117 for the Converter_Parameters, except that assignments for Parameters are optional while the assignments for Converter_Parameters **** are required, and Converter_Parameters may be assigned only numeric values. **** The Parameters of the [External Circuit] keyword shall be optionally **** followed by an equal sign and a constant literal value. The **** Parameters of the [External Model] keyword shall be optionally **** followed by an equal sign and a constant literal value and/or the **** reserved word AMIfile() which references a parameter name declared **** in the .ami parameter file that is named by the [Algorithmic Model] **** keyword of a [Model]. When the constant literal and the reserved word **** are both present in an assignment, the constant literal value shall **** serve as a default value for the assignment in case the assignment **** using the reserved word fails. Multiple [External Model] or [External Circuit] Parameters may be listed **** on the same line with one assignment, in which case all of the parameters on that line will be assigned the same value. If no assignments are made on the [External Model] or [External Circuit] Parameters line, the parameters will take on their default values as defined in the external model file referenced by [External Model] or [External Circuit] declarations. The EDA tool is expected to provide a mechanism for the user to make selections for multi-valued AMI parameters through GUI features. On pg. 107 replace the following lines: | Parameters: | | Lists names of parameters that can be passed into an external | model file. Each Parameters assignment must match a name or | keyword in the external file or language. The list of | Parameters may span several lines by using the word Parameters | at the start of each line. The Parameters subparameter is | optional, and the external model must operate with default | settings without any Parameters assignments. | | Parameter passing is not supported in SPICE. VHDL-AMS and | VHDL-A(MS) parameters are supported using "generic" names, and | Verilog-AMS and Verilog-A(MS) parameters are supported using | "parameter" names. with these lines: | Parameters: | | Lists names of parameters that can be passed into an external |* model file. Each Parameters entry must match a name or | keyword in the external file or language. The list of | Parameters may span several lines by using the word Parameters | at the start of each line. The Parameters subparameter is | optional, and the external model must operate with default | settings without any Parameters assignments. | | Parameter passing is not supported in SPICE. VHDL-AMS and | VHDL-A(MS) parameters are supported using "generic" names, and | Verilog-AMS and Verilog-A(MS) parameters are supported using |* "parameter" names. ISS parameters are supported for all ISS |* parameters which are defined on the subcircuit definition |* line. |* |** Parameters are locally scoped under each [External Model] |* keyword, i. e. the same parameter under two different |** [External Model] will have independent values. |* |* The parameter(s) listed under the Parameters subparameter |* may optionally be followed by an equal sign and a numeric, |*** Boolean or string literal and/or the reserved word AMIfile(). |*** The argument of the AMIfile() reserved word must contain the |*** name of an AMI parameter which is in the .ami parameter file |*** that is associated with the same [Model] that contains the |*** [External Model] keyword whose Converter_Parameters are |*** initialized. When the AMIfile() reserved word and the |*** numeric, Boolean or string literal are both present in an |*** assignment, they must be separated by at least one white |*** space. In this case, the EDA tool should attempt to make the |*** assignment using the reserved word AMIfile() first. If that |*** fails (for example due to not finding the .ami parameter file |*** or the parameter name in that file) the numeric, Boolean or |*** string literal shall be used for the assignment. When |*** multiple converter parameters are listed on a single line with |*** one assignment, all of the parameters on that line will be |*** assigned the same value. String literals must be encosed in |*** double quotes. |* |* The EDA tool may provide additional means to the user to |** assign values to Parameters. This may include the option |** to override the values provided in the .ibs file, to allow |** the user to make selections for multi-valued parameters in |** the .ami parameter file, or to provide values for |** uninitialized Parameters. On pg. 126 replace the following lines: | Parameters: | | Lists names of parameters that can be passed into an external | model file. Each Parameters assignment must match a name or | keyword in the external file or language. The list of | Parameters may span several lines by using the word Parameters | at the start of each line. The Parameters subparameter is | optional, and the external model must operate with default | settings without any Parameters assignments. | | Parameter passing is not supported in SPICE. VHDL-AMS and | VHDL-A(MS) parameters are supported using "generic" names, and | Verilog-AMS and Verilog-A(MS) parameters are supported using | "parameter" names. with these lines: | Parameters: | | Lists names of parameters that can be passed into an external |* model file. Each Parameters entry must match a name or | keyword in the external file or language. The list of | Parameters may span several lines by using the word Parameters | at the start of each line. The Parameters subparameter is | optional, and the external model must operate with default | settings without any Parameters assignments. | | Parameter passing is not supported in SPICE. VHDL-AMS and | VHDL-A(MS) parameters are supported using "generic" names, and | Verilog-AMS and Verilog-A(MS) parameters are supported using |* "parameter" names. ISS parameters are supported for all ISS |* parameters which are defined on the subcircuit definition |* line. |* |* Parameters are locally scoped under each [External Circuit] |* keyword, i. e. the same parameter under two different |* [External Circuit] will have independent values. |* |* The parameter(s) listed under the Parameters subparameter |* may optionally be followed by a single equal sign and a value. |** The value may be a numeric, Boolean or string literal. When |* multiple parameters are listed on a single line with one equal |* sign and a value, all of the parameters on that line will be |* assigned the same value. String literals must be enclosed |* in double quotes. |* |* The EDA tool may provide additional means to the user to |** assign values to Parameters. This may include the option |** to override the values provided in the .ibs file, or to |** provide values for uninitialized Parameters. ****************************************************************************** ANALYSIS PATH/DATA THAT LED TO SPECIFICATION The following example illustrates the concept. Given that a [Model] in an .ibs file contains an [Algorithmic Model] keyword: [Algorithmic Model] Executable Windows_VisualStudio_32 GenericTx.dll GenericTx.ami [End Algorithmic Model] and that the "GenericTx.ami" parameter file contains the following declarations: (Rterm (Usage Info)(Value 50.0)(Type Float) (Description "Termination resistance") ) (Rdiff (Usage Info)(Value 100.0)(Type Float) (Description "Differential output resistance") ) (Cdiff (Usage Info)(Value 1.5e-12)(Type Float) (Description "Differential Output Capacitance") ) the Parameters under the [External Model] keyword may be assigned with the values in the GenericTx.ami parameter file the following way: [External Model] Language IBIS-ISS | | Corner corner_name file_name circuit_name (.subckt name) Corner Typ AMIdriver.cir AMI_drv | | List of parameters Parameters Rt_direct Rt_invert = AMIfile(Rterm) *** Parameters Rdiff = AMIfile(Rdiff) 101 Parameters Ccomp_diff = AMIfile(Cdiff) Parameters MyParam1 MyParam2 = 1.234 Parameters MyParam3 MyParam4 In this example, Rt_direct and Rt_invert are both assigned the value 50, *** Rdiff is assigned 100 as defined in the .ami parameter file if found, or *** 101 if not found. Myparam1 and Myparam2 are assigned 1.234, and MyParam3 and MyParam4 are left unassigned which means that they will assume their default values as defined in the declaration of the [External Model]. If an .ami parameter is defined as a multi-valued parameter (Range, List, etc...) which must be resolved to a single value by a selection, the EDA ** tool may provide a GUI mechanism to the user to make a selection, or ** the default value of the .ami parameter shall be used for the simulation. The EDA tool may also provide mechanisms to make assignments to unassigned Parameters, or to override hard-coded assignments, or single valued .ami parameter assignments. ** Please note that the reserved word "AMIfile()" may only be used in the ** [External Model]'s Parameters and Converter_Parameters (see BIRD 117) ** subparameters to reference .ami file parameters because such .ami file ** references cannot be resolved from the [External Circuit] keywords. ** This is because [External Circuit] is on the same scoping level as ** [Model] and therefore it is not associated with any [Algorithmic Model] ** keywords which reside under the [Model] keyword. For this reason the ** "AMIfile()" syntax has no way to know what file to read when it is ** located under the [External Circuit] keyword. ** *** BIRD 118 was flawed because it allowed the usage ** of the "AMIfile()" syntax under [External Circuit] to reference .ami *** file parameters. BIRD 118.1 removed the possibility to ** use the reserved word "AMIfile()" under [External Circuit] to eliminate ** that problem. *** In BIRD 118.2 a modification was made the the rules of the reserved *** word AMIfile(). The modification made provisions for the usage of a *** default value in case the assignment using the reserved word fails *** for some reason. These changes are marked by three asterisks at the *** beginning of each line. ***************************************************************************** ANY OTHER BACKGROUND INFORMATION: ******************************************************************************