****************************************************************************** ****************************************************************************** BIRD ID#: 117.2 ISSUE TITLE: Parameterize A_to_D and D_to_A Converters REQUESTER: Arpad Muranyi, Mentor Graphics DATE SUBMITTED: September 29, 2010 DATE REVISED: October 5, 2010, November 8, 2010 DATE ACCEPTED BY IBIS OPEN FORUM: ****************************************************************************** ****************************************************************************** STATEMENT OF THE ISSUE: [External Model]s and [External Circuit]s with analog ports communicate through A_to_D and/or D_to_A converters with the purely digital signals of ** the EDA tool. The current specification only allows hard-coded values as ** arguments for these converters in the IBIS file. There are situations, ** however, when it would be desirable to parameterize the arguments of these ** converters. For example, an IBIS model could be made much more compact ** with parameterized converters than having to use multiple copies of the ** otherwise identical [Model] through [Model Selector]. ****************************************************************************** STATEMENT OF THE RESOLVED SPECIFICATIONS: A new subparameter called "Converter_Parameters" shall be added to the ** [External Model] and [External Circuit] keywords to provide a mechanism ** to declare parameters used as arguments for the A_to_D and/or D_to_A ** converters. Furthermore, the "Converter_Parameters" subparameter shall *** be initialized with a constant literal value. For [External Model] *** this initialization may optionally reference a parameter name declared *** in the .ami parameter file instead of using a constant literal value. *** The AMI parameter shall be referenced by a reserved word called *** AMIfile() where the parentheses contains the name of a parameter that *** exists in the .ami parameter file named by the [Algorithmic Model] *** keyword of a [Model]. ** On pg. 105 and 125 replace: | Sub-Params: Language, Corner, Parameters, Ports, D_to_A, A_to_D ** with the following line: |** Sub-Params: Language, Corner, Parameters, Converter_Parameters, Ports, |** D_to_A, A_to_D *** On pg. 107 add the following lines after the "Parameters:" section: | Converter_Parameters: | |** This optional subparameter lists and initializes parameter |** names to be used as arguments in the A_to_D and/or D_to_A |*** converter(s) of the [External Model] keyword under which it |** appears. The list of Converter_Parameters may span several |** lines by using the word Converter_Parameters at the start of |** each line. Any A_to_D or D_to_A argument which is entered |** as a parameter must be declared and initialized with the |** Converter_Parameters subparameter. |** |** Converter_Parameters are locally scoped under each |*** [External Model] keyword, i. e. the same converter parameter |*** under two different [External Model] will have independent |** values. |** |** The Converter_Parameters subparameter may contain one or more |** parameter names, which must be followed by an equal sign and |** a value. The value may be a numeric 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 Model] keyword whose Converter_Parameters are |** initialized. The AMI parameter must be enclosed in the |** parentheses of the reserved word AMIfile(AMIparameterName). |** When multiple converter 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. |** |** The EDA tool may provide additional means to the user to |*** make assignments to Converter_Parameters. This may include |*** the option to override the values provided in the .ibs file, |*** or to allow the user to make selections for multi-valued |*** parameters in the .ami parameter file. | *** On pg. 126 add the following lines after the "Parameters:" section: | Converter_Parameters: | |** This optional subparameter lists and initializes parameter |** names to be used as arguments in the A_to_D and/or D_to_A |*** converter(s) of the [External Circuit] keyword under which it |** appears. The list of Converter_Parameters may span several |** lines by using the word Converter_Parameters at the start of |** each line. Any A_to_D or D_to_A argument which is entered |** as a parameter must be declared and initialized with the |** Converter_Parameters subparameter. |** |** Converter_Parameters are locally scoped under each |*** [External Circuit] keyword, i. e. the same converter parameter |*** under two different [External Circuit] will have independent |** values. |** |** The Converter_Parameters subparameter may contain one or more |** parameter names, which must be followed by an equal sign and |*** a value. The value must be a numeric literal. When multiple |*** converter 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. |** |*** The EDA tool may provide additional means for the user to |*** make assignments to Converter_Parameters. This may include |*** the option to override the values provided in the .ibs file. | ** On pg. 109 and pg. 127 insert after this paragraph: | The vlow and vhigh entries accept analog voltage values which | must correspond to the digital off and on states, where the | vhigh value must be greater than the vlow value. For example, | a 3.3 V ground-referenced buffer would list vlow as 0 V and | vhigh as 3.3 V. The trise and tfall entries are times, must | be positive and define input ramp rise and fall times between | 0 and 100 percent. the following lines: | |** Any or all of these entries may be defined by parameter names, |** which must be declared and initialized by one or more |** Converter_Parameters subparameter. On pg. 110 and pg. 128 insert after this paragraph: | The vlow and vhigh entries list the low and high analog | threshold voltage values. The reported digital state on | D_receive will be '0' if the measured voltage is lower than | the vlow value, '1' if above the vhigh value, and 'X' | otherwise. the following lines: | |** Any or all of these entries may be defined by parameter names, |** which must be declared and initialized by one or more |** Converter_Parameters subparameter. In the example section(s) give some examples for how this would work. *** Please make sure that the "AMIfile()" syntax is only shown for [External Model] *** examples, and use only numeric literals for examples under [External Circuit]. | List of converter parameters Converter_Parameters MyVlow = 0.0 Converter_Parameters MyHigh1 = 3.3 Converter_Parameters MyHigh2 = 2.0 ** Converter_Parameters MyTfall = AMIfile(Trf) ** Converter_Parameters MyTrise = AMIfile(Trf) | ... ... | | D_to_A d_port port1 port2 vlow vhigh trise tfall corner_name D_to_A D_drive my_drive my_ref MyVlow MyVhigh1 MyTfall MyTrise Typ D_to_A D_enable my_enable A_gcref 0.0 3.3 0.5n 0.3n Typ | | A_to_D d_port port1 port2 vlow vhigh corner_name A_to_D D_receive my_receive my_ref MyVlow MyVhigh2 Typ |** **... **... |** **[Algorithmic Model] **Executable Windows_VisualStudio_32 GenericTx.dll GenericTx.ami **[End Algorithmic Model] ****************************************************************************** ANALYSIS PATH/DATA THAT LED TO SPECIFICATION *** The previous version of this BIRD is flawed because it allows [External *** Circuit] to reference .ami files for parameter assignments with the *** "AMIfile()" reserved word. These references cannot be resolved, 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 [External Circuit] doesn't *** have a way to know what .ami file the "AMIfile()" syntax should read. *** This version of the BIRD removes the possibility to use the reserved *** word "AMIfile()" for parameter assignments under [External Circuit] to *** eliminate that problem. ***************************************************************************** ANY OTHER BACKGROUND INFORMATION: ******************************************************************************