****************************************************************************** ****************************************************************************** BIRD ID#: 118 ISSUE TITLE: Analog Parameter Assignments REQUESTER: Arpad Muranyi, Mentor Graphics DATE SUBMITTED: October 5, 2010 DATE REVISED: 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. The Parameters subparameter under [External Model] and [External Circuit] shall have an optional assignment capability using the equal sign ("=") followed by a literal value or a special reserved word referencing an AMI parameter contained in an .ami parameter file. The special reserved word shall be called AMIfile() and the parentheses shall contain the name of a parameter that exists in the .ami parameter file named by the [Algorithmic Model] keyword in the [Model]. Multiple [External Model] or [External Circuit] Parameters may be listed on the same line with one equal sign and value, 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 and 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 ***] |* keyword, i. e. the same parameter under two different |* [External ***] 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 or string literal or the name |* of an AMI parameter which must be in the .ami parameter |* file that is associated with the same [Model] that contains |* the [External ***] keyword whose Parameters are initialized. |* The AMI parameter must be enclosed in the parentheses of |* the reserved word AMIfile(AMIparameterName). 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 allowing the |* user to make selections for multi-valued parameters in the |* .ami parameter file, to override any given values 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) 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. 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 the selections, or the default value defined in the declaration of the [External Model] or [External Circuit] 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. ***************************************************************************** ANY OTHER BACKGROUND INFORMATION: ******************************************************************************