***************************************************************************** ***************************************************************************** BIRD ID#: 108.1 ISSUE TITLE: Fixing Algorithmic Modeling API Impulse_matrix Nomenclature REQUESTER: Bob Ross, Teraspeed Consulting Group DATE SUBMITTED: April 29, 2008 DATE REVISED: June 6, 2008 DATE ACCEPTED BY IBIS OPEN FORUM: June 6, 2008 ***************************************************************************** ***************************************************************************** STATEMENT OF THE ISSUE: In the Section, "NOTES ON ALGORITHMIC MODELING INTERFACE AND PROGRAMMING GUIDE", the paragraphs describing impulse_matrix have inconsistent usuage of the underbar character. The terms "impulse_matrix" and "impulse matrix" are used. The suggestion is to use impulse_matrix when naming the data and other terms when describing the data or the structure. ***************************************************************************** Replace this text: | 3 FUNCTION SIGNATURES | ===================== | | 3.1 AMI_Init | ============ | | 3.1.1 Declaration | ================= | | long AMI_Init (double *impulse_matrix, | long row_size, | long aggressors, | double sample_interval, | double bit_time, | char *AMI_parameters_in, | char **AMI_parameters_out, | void **AMI_memory_handle, | char **msg) | | 3.1.2 Arguments | =============== | | 3.1.2.1 impulse_matrix | ====================== | | Impulse matrix is the channel impulse response matrix. The impulse values | are in volts and are uniformly spaced in time. The sample spacing is given | by the parameter ‘sample_interval’. | | The ‘impulse_matrix’ is stored in a single dimensional array of floating | point numbers which is formed by concatenating the columns of the impulse | response matrix, starting with the first column and ending with the last | column. The matrix elements can be retrieved /identified using | | impulse_matrix[idx] = element (row, col) | idx = col * number_of_rows + row | row – row index , ranges from 0 to row_size-1 | col – column index, ranges from 0 to aggressors | | The first column of the impulse matrix is the impulse response for the | primary channel. The rest are the impulse responses from aggressor drivers | to the victim receiver. | | | The AMI_Init function may return a modified impulse response by modifying | the first column of impulse_matrix. If the impulse response is modified, | the new impulse response is expected to represent the concatenation of the | model block with the blocks represented by the input impulse response. | | The aggressor columns of the matrix should not be modified. | | 3.1.2.2 row_size | ================ | | The number of rows in the impulse matrix. | | 3.1.2.3 aggressors | ================== | | The number of aggressors in the impulse matrix. | | 3.1.2.4 sample_interval: | ======================== | | This is the sampling interval of the impulse matrix. Sample_interval is | usually a fraction of the highest data rate (lowest bit_time) of the | device. Example: | | Sample_interval = (lowest_bit_time/64) | | 3.1.2.5 bit_time | ================ | | The bit time or unit interval (UI) of the current data, e.g., 100 ps, 200 | ps etc. The shared library may use this information along with the impulse | matrix to initialize the filter coefficients. | -------------- With the following text with changes noted by "|*" lines where "impulse_matrix" is used, and "impulse response matrix" is the descriptive version of the variable": | 3 FUNCTION SIGNATURES | ===================== | | 3.1 AMI_Init | ============ | | 3.1.1 Declaration | ================= | | long AMI_Init (double *impulse_matrix, | long row_size, | long aggressors, | double sample_interval, | double bit_time, | char *AMI_parameters_in, | char **AMI_parameters_out, | void **AMI_memory_handle, | char **msg) | | 3.1.2 Arguments | =============== | | 3.1.2.1 impulse_matrix | ====================== | |* 'impulse_matrix' is the channel impulse response matrix. The impulse values | are in volts and are uniformly spaced in time. The sample spacing is given | by the parameter ‘sample_interval’. | |* The impulse_matrix is stored in a single dimensional array of floating | point numbers which is formed by concatenating the columns of the impulse | response matrix, starting with the first column and ending with the last | column. The matrix elements can be retrieved /identified using | | impulse_matrix[idx] = element (row, col) | idx = col * number_of_rows + row | row – row index , ranges from 0 to row_size-1 | col – column index, ranges from 0 to aggressors | |* The first column of the impulse_matrix is the impulse response for the | primary channel. The rest are the impulse responses from aggressor drivers | to the victim receiver. | | | The AMI_Init function may return a modified impulse response by modifying | the first column of impulse_matrix. If the impulse response is modified, | the new impulse response is expected to represent the concatenation of the | model block with the blocks represented by the input impulse response. | | The aggressor columns of the matrix should not be modified. | | 3.1.2.2 row_size | ================ | |* The number of rows in the impulse_matrix. | | 3.1.2.3 aggressors | ================== | |* The number of aggressors in the impulse_matrix. | | 3.1.2.4 sample_interval: | ======================== | |* This is the sampling interval of the impulse_matrix. Sample_interval is | usually a fraction of the highest data rate (lowest bit_time) of the | device. Example: | | Sample_interval = (lowest_bit_time/64) | | 3.1.2.5 bit_time | ================ | | The bit time or unit interval (UI) of the current data, e.g., 100 ps, 200 |* ps etc. The shared library may use this information along with the |* impulse_matrix to initialize the filter coefficients. | ***************************************************************************** ANALYSIS PATH/DATA THAT LED TO SPECIFICATION This is an editorial correction to use "impulse_matrix" consistently. BIRD108.1: The following paragraph under 3.1.2.1: |* 'Impulse_matrix' is the channel impulse response matrix. The impulse values | are in volts and are uniformly spaced in time. The sample spacing is given | by the parameter ‘sample_interval’. was changed to |* 'impulse_matrix' is the channel impulse response matrix. The impulse values | are in volts and are uniformly spaced in time. The sample spacing is given | by the parameter ‘sample_interval’. to preserve the correct capitalization of 'impulse_matrix' ***************************************************************************** ANY OTHER BACKGROUND INFORMATION: *****************************************************************************