Nexteer Library
Component Documentation
- Filter_Library_Design_Document.html
- Interpolation_Design_MDD.html
- NxtrLib_Systemtime Integration_Manual.html
This is the multi-page printable view of this section. Click here to print.
1.1.1 Node b State Variable Initialization 3
1.1.2 Node d State Variable Initialization 3
1.1.3 Filter Output Calculation 3
1.1.4 Node b State Variable Calculation 3
1.1.5 Node d State Variable Calculation 3
1.1.6 Filter Output Calculation 4
1.2.1 Notch Filter Initialization Function 4
1.2.2 Notch Filter State Variable Update Function 4
1.2.3 Notch Filter Output Update Function 4
1.2.4 Notch Filter Full Update Function 5
1.3 Notch Filter Structure Acceptable Ranges 5
2 1st Order Low Pass Filter, 1 Pole- coefficient 7
2.1.2 Library Routines Design 8
2.2.2 Library Routines Design 15
2.3 Topology 3 – 1LP1-CF (Floating Point Implementation) 20
2.3.1.1 Coefficient K Calculation and State Variable Initialization 20
2.3.1.2 Coefficient K Recalculation 20
2.3.2 Library Routines Design 21
2.3.2.1 Unity Gain, No Dead band Compensation, calibratable K, Single-Precision Float Input 21
3 1st Order High Pass Filter, 1 Pole- coefficient 23
3.1 Topology 1 – HP-CF (Floating Point Implementation) 23
3.1.1.1 Coefficient K Calculation and State Variable Initialization 23
3.1.1.2 Coefficient K Recalculation 23
3.1.2 Library Routines Design 24
3.1.2.1 Unity Gain, No Dead band Compensation, calibratable K, Single-Precision Float Input 24
The first three equations, 1.1.1, 1.1.2, and 1.1.3 shall be combined into a single Notch Filter Initialization function. The next two equations 1.1.4 and 1.1.5 shall be combined into a single state variable update function. Finally, equation 1.1.6 shall be standalone as the output update function. For convenience, the last two function, state variable update and output update shall be combined into a single inline function to provide a single call from the modules _per() sub-module.
SV2 = In * (B2 - A2);
SV1 = In * (B1 + B2 - A1 - A2);
Out = In;
SV2 = (B2 * In) - (Out * A2);
SV1 = (SV2 + (In * B1)) - (Out * A1);
Out = SV1 + (B0 * In);
Function Name | NF_Init_f32 | Type | Min | Max | UTP Tol. |
Arguments Passed | In_Uls_T_f32 – Initial input to the filter | Float 32 | |||
SVPtr_Cnt_T_Str – Pointer to state variable struct | NotchFiltSV_Str | ||||
FiltK_Cnt_T_Str – Pointer to coefficient structure | NotchFiltK_Str | **See 1.3 | |||
Return Value | N/A |
Pseudo Code:
KPtr_Cnt_Str = FiltK_Cnt_T_Str;
Out = In;
SV1 = In * (B1 + B2 - A1 - A2);
SV2 = In * (B2 - A2);
Function Name | NF_SvUpdate_f32 | Type | Min | Max | UTP Tol. |
Arguments Passed | In_Uls_T_f32 – Input to notch filter | Float 32 | |||
SVPtr_T_Cnt_Str – Pointer to state variable struct | NotchFiltSV_Str | **See 1.3 | |||
FiltK_Cnt_T_Str – Pointer to filter cal struct | NotchFiltK_Str | **See 1.3 | |||
Return Value | N/A |
Pseudo Code: KPtr_Cnt_Str = FiltK_Cnt_T_Str
SV1 = (SV2 + (In * B1)) - (Out * A1);
SV2 = (B2 * In) - (Out * A2);
Function Name | NF_OpUpdate_f32 | Type | Min | Max | UTP Tol. |
Arguments Passed | In_Uls_T_f32 – Input to the notch filter | Float 32 | |||
SVPtr_T_Cnt_Str – Pointer to state variable struct | NotchFiltSV_Str | **See 1.3 | |||
Return Value | Filtered Output, SV Structure Updated | Float 32 |
Pseudo Code:
Out = SV1 + (B0 * In);
Function Name | NF_FullUpdate_f32 | Type | Min | Max | UTP Tol. |
Arguments Passed | In_Uls_T_f32 – Input to notch filter | Float 32 | |||
SVPtr_Cnt_T_Str – Pointer to state variable struct | NotchFiltSV_Str | **See 1.3 | |||
FiltK_Cnt_T_Str – Pointer to filter cal struct | NotchFiltK_Str | **See 1.3 | |||
Return Value | Filtered output | Float 32 |
Pseudo Code:
Full Update simply calls OpUpdate followed by SvUpdate as a convenient alternative to calling each of the functions individually.
Structure Name | NotchFiltSV_Str | Type | Min | Max | UTP Tol. |
Members | SV1_Uls_f32 | Float 32 | FULL | FULL | |
SV2_Uls_f32 | Float 32 | FULL | FULL | ||
Out_Uls_f32 | Float 32 | FULL | FULL | ||
KPtr_Cnt_Str | KPtr_Cnt_Str | **See Below |
Structure Name | NotchFiltK_Str | Type | Min | Max | UTP Tol. |
Members | A1_Uls_f32 | Float 32 | |||
A2_Uls_f32 | Float 32 | ||||
B0_Uls_f32 | Float 32 | ||||
B1_Uls_f32 | Float 32 | ||||
B2_Uls_f32 | Float 32 |
For a module that executes a Notch Filter, in its _Init() sub module execute the following function.
NF_Init_f32(<Input>, <SV_Ptr>, <FiltK_Ptr>);
In the same module’s _Per() sub module execute the following functions in the given sequence,
NF_OpUpdate_f32(<Input>, <SV_Ptr>);
NF_SvUpdate_f32(<Input>, <SV_Ptr>, <FiltK_Ptr>);
Alternatively, a single call to the following function can be made in place of the above pair within the _Per() sub module.
NF_FullUpdate_f32(<Input>, <SV_Ptr>, <FiltK_Ptr>);
The Filter topology 1LP1-C is as given,
There may be multiple library functions defined for the same topology, based on the cut-off frequency, and input size requirements.
A filter tool is available to design the low pass filter for this topology – “1st Order Design,1LP1-B.xls”. This tool provides the bit sizes for all nodes shown in the filter. The tool must be used to see which library function is required for the given input, cut-off frequency, sampling rate, and filter coefficient size.
The above filter topology requires the following constants to be defined
Symbol | Description | Constant Classification |
Kn | Numerator of Filter Coefficient | This may be defined as a calibration constant or an embedded local constant based on the usage. |
Kd | Denominator of Filter Coefficient | Based on the implementation, this value may be a fixed value, which is embedded within the library function/macro or could be passed as a parameter. |
Node Symbol | Description |
I | Input |
e | State Variable (filt_SV) |
O | Output (filt_O) |
The filter equations are given below. Each equation shall be implemented as a library macro.
State Variable (Node e) Initialization
The equation to initialize the state variable, (Node e) is as follows:
filt_SV = Input * Kd.
Output (Node O) Initialization
The equation to initialize the output, (Node O) is as follows:
filt_O = [( ( Input – (filt_SV / Kd) ) * Kn ) + filt_SV] / Kd
Normal Operation
During normal operation the state variable (Node e) shall be updated prior to the output of the filter (Node O) being updated.
The equation for the state variable (Node e) is as follows:
filt_SV = ( ( Input – (filt_SV / Kd) ) * Kn ) + filt_SV
The equation for the output (Node O) is as follows:
filt_O = filt_SV / Kd
The equations to update filt_Sv and filt_O or the library routines that calculate these values should be executed in the exact order shown above.
There will be four macros defined for this implementation:- state variable initialization, filter output initialization, state variable update and filter output update.
Node Symbol | Description | Data Type |
I | Input | UINT 16 |
c | UINT16 | |
d | UINT32 | |
e | State Variable (filt_SV) | UINT 32 |
f | UINT16 | |
O | Output (filt_O) | UINT 16 |
Function Name | LPF_SvInit_u16InFixKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to the low pass filter | UINT16 | |||
Return Value | Initialized value of node e | UINT32 |
Pseudo Code:
Lvalue = Input << Kd
where Kd is pre-defined for a fixed16 bit filter coefficient = 16 bits
Function Name | LPF_OpInit_u16InFixKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to the low pass filter | UINT16 | |||
Filt_SV – Initialized value of the state variable | UINT32 | ||||
Kn - Numerator of the filter coefficient | UINT16 | ||||
Return Value | Initialized output of the low pass filter | UINT32 |
Pseudo Code:
Lvalue = (((Input – (Filt_SV >> Kd)) * Kn ), + Filt_SV)>>Kd
where Kd is pre-defined for a fixed16 bit filter coefficient = 16 bits
Function Name | LPF_SvUpdate_u16InFixKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to the low pass filter | UINT16 | |||
Filt_SV – Calculated value of the state variable | UINT32 | ||||
Kn - Numerator of the filter coefficient | UINT16 | ||||
Return Value | Output of the low pass filter | UINT32 |
Pseudo code:
<Lvalue> = ( ( Input – (filt_SV >> Kd) ) * Kn ) + filt_SV
where Kd is pre-defined for a fixed16 bit filter coefficient = 16 bits
Function Name | LPF_OpUpdate_u16InFixKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Filt_SV – Calculated value of the state variable | UINT32 | |||
Return Value | Output of the low pass filter | UINT16 |
Pseudo code:
<Lvalue> = filt_SV >> Kd
where Kd is pre-defined for a 16 bit filter coefficient = 16 bits
For a module that executes a LPF, in its _Init() sub module execute the following macros in the given sequence
LPF_SvInit_u16InFixKTrunc_m (<Input>)
LPF_OpInit_u16InFixKTrunc_m (<Input>, <Filt_SV>, <Kn>)
In the same module’s _Per() sub module execute the following macros in the given sequence,
LPF_SvUpdate_u16InFixKTrunc_m (<Input>, <filt_SV>, <Kn>)
LPF_OpUpdate_u16InFixKTrunc_m ( <filt_SV>)
There will be three macros defined for this implementation:- state variable initialization, state variable update and filter output update.
Node Symbol | Description | Data Type |
I | Input | SINT 16 |
c | SINT 16 | |
d | SINT 32 | |
e | State Variable (filt_SV) | SINT 32 |
f | SINT 16 | |
O | Output (filt_O) | SINT 16 |
Function Name | LPF_SvInit_s16InFixKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to the low pass filter | SINT16 | |||
Return Value | Initilized value of Node e | SINT32 |
Pseudo Code:
Lvalue = Input << Kd
where Kd is pre-defined for a 16 bit filter coefficient as 16 bits
Function Name | LPF_OpInit_s16InFixKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to the low pass filter | SINT16 | |||
Filt_SV – Initialized value of the state variable | SINT32 | ||||
Kn – Numerator of the filter coefficient | SINT16 | ||||
Return Value | Initialized value of filter output | SINT32 |
Pseudo Code:
Lvalue = (((Input – (Filt_SV >> Kd)) * Kn ), + Filt_SV)>>Kd
where Kd is pre-defined for a fixed16 bit filter coefficient = 16 bits
Function Name | LPF_SvUpdate_s16InFixKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to the low pass filter | SINT16 | |||
Filt_SV – Initialized value of the state variable | SINT32 | ||||
Kn – Numerator of the filter coefficient | SINT16 | ||||
Return Value | Calculated value of filt_SV | SINT32 |
Pseudo code:
<Lvalue> = ( ( Input – (filt_SV >> Kd) ) * Kn ) + filt_SV
where Kd is pre-defined for a 16 bit filter coefficient = 16 bits
Function Name | LPF_OpUpdate_s16InFixKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Filt_SV – calculated value of filter state variable | SINT32 | |||
Return Value | Output of the low pass filter | SINT16 |
Pseudo code:
<Lvalue> = filt_O >> Kd
where Kd is pre-defined for a 16 bit filter coefficient = 16
For a module that executes a LPF, in its _Init() sub module execute the following macros in the given sequence
LPF_SvInit_s16InFixKTrunc_m (<Input>)
LPF_OpInit_s16InFixKTrunc_m (<Input>, <Filt_SV>, <Kn>)
In the same module’s _Per() sub module execute the following macros in the given sequence
LPF_SvUpdate_s16InFixKTrunc_m (<Input>, <filt_SV>, <Kn>)
LPF_OpUpdate_s16InFixKTrunc_m ( <filt_SV>)
The filter topology 1LP1-B is as given,
The filter equations are given below. Each equation shall be implemented as a library macro.
State Variable (Node e) Initialization
The equation to initialize the state variable, (Node e) is as follows:
filt_SV = Input * G * Kd * D
Output (Node O) Initialization
The equation to initialize the output, (Node O) is as follows:
filt_O = [( ( (Input * G * D) – (filt_SV / Kd) ) * Kn ) + filt_SV] / (Kd * D)
Normal Operation
During normal operation the state variable (Node e) shall be updated prior to the output of the filter (Node O) being updated.
The equation for the state variable (Node e) is as follows:
filt_SV = ( ( (Input * G * D) – (filt_SV / Kd) ) * Kn ) + filt_SV
The equation for the output (Node O) is as follows:
filt_O = filt_SV / (Kd * D)
The equations to update filt_Sv and filt_O or the library routines that calculate these values should be executed in the exact order shown above.
The multiplication for the Filter Input by G shall be implemented external to the library macros. Thus the Input as used by the macros shall represent actual filter input * G, for non unity gain filter implementation.
Note: Constraint on this filter is that Node b cannot exceed 16 bits.
Node Symbol | Description | Data Type |
I | Input | UINT 16 |
a | UINT 16 | |
b | UINT 16 | |
c | UINT 16 | |
d | UINT 32 | |
e | State Variable (filt_SV) | UINT 32 |
f | UINT 16 | |
g | UINT 16 | |
O | Output (filt_O) | UINT 16 |
Function Name | LPF_SvInit_u16InVarKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to the low pass filter | UINT16 | |||
Kd – Denominator bits of filter coefficient | UINT16 | ||||
D – Deadband factor | UINT16 | ||||
Return Value | Initialized value of Node e | UINT32 |
Pseudo Code:
Lvalue = (Input << Kd) << D
Note:- The multiplication by D shall not be performed for D = 0.
Function Name | LPF_OpInit_u16InVarKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to the low pass filter | UINT16 | |||
Filt_SV – Initialized value of state variable | UINT32 | ||||
Kn – Numerator of coefficient | UINT16 | ||||
Kd – Denominator bits of filter coefficient | UINT16 | ||||
D – Deadband factor | UINT16 | ||||
Return Value | Low pass filter output | UINT32 |
Pseudo Code:
Lvalue = [((((Input<<D) – (Filt_SV >> Kd)) * Kn ) + Filt_SV)>>Kd]>>D
Note:- The multiplication and division by D shall not be performed for D = 0.
Function Name | LPF_SvUpdate_u16InVarKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to the low pass filter | UINT16 | |||
Filt_SV – Calculated value of filter state variable | UINT32 | ||||
Kn – Numerator of coefficient | UINT16 | ||||
Kd – Denominator bits of filter coefficient | UINT16 | ||||
D – Deadband factor | UINT16 | ||||
Return Value | Low pass filter output | UINT32 |
Pseudo code:
<Lvalue> = ( ( (Input << D) – (filt_SV >> Kd) ) * Kn ) + filt_SV
Note:- The multiplication by D shall not be performed for D = 0.
Function Name | LPF_OpUpdate_u16InVarKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Filt_SV – Calculated value of filter state variable | UINT32 | |||
Kd – Denominator bits of filter coefficient | UINT16 | ||||
D – Deadband factor | UINT16 | ||||
Return Value | Low pass filter output | UINT32 |
Pseudo code:
<Lvalue> = (filt_SV >> Kd ) >>D
Note:- The division by D shall not be performed for D = 0.
For a module that executes a LPF, in its _Init() sub module execute the following macros in the given sequence
LPF_SvInit_u16InVarKTrunc_m (<Input>, <Kd>, <D>)
LPF_OpInit_u16InVarKTrunc_m (<Input>, <Filt_SV>, <Kn>, <Kd>, <D>)
In the same module’s _Per() sub module execute the following macros in the given sequence,
LPF_SvUpdate_u16InVarKTrunc_m (<Input>, <filt_SV>, <Kn>, <Kd>, <D>)
LPF_OpUpdate_u16InVarKTrunc_m ( <filt_SV>, <Kd>, <D>)
Node Symbol | Description | Data Type |
I | Input | SINT 16 |
a | SINT 16 | |
b | SINT 16 | |
c | SINT 16 | |
d | SINT 32 | |
e | State Variable (filt_SV) | SINT 32 |
f | SINT 16 | |
g | SINT 16 | |
O | Output (filt_O) | SINT 16 |
Function Name | LPF_SvInit_s16InVarKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to the low pass filter | SINT16 | |||
Kd – Denominator bits of filter coefficient | SINT16 | ||||
D – Deadband factor | SINT16 | ||||
Return Value | Initialized value of Node e | SINT32 |
Pseudo Code:
Lvalue = (Input << Kd) << D
Note:- The multiplication by D shall not be performed for D = 0.
Function Name | LPF_OpInit_s16InVarKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to the low pass filter | SINT16 | |||
Filt_SV – Initialized value of filter state variable | SINT32 | ||||
Kn – Numerator of filter coefficient | SINT16 | ||||
Kd – Denominator bits of filter coefficient | SINT16 | ||||
D – Deadband factor | SINT16 | ||||
Return Value | Initialized value of filter output | SINT32 |
Pseudo Code:
Lvalue = [((((Input<<D) – (Filt_SV >> Kd)) * Kn ), + Filt_SV)>>Kd]>>D
Note:- The multiplication and division by D shall not be performed for D = 0.
Function Name | LPF_SvUpdate_s16InVarKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to the low pass filter | SINT16 | |||
Filt_SV – Calculated value of filter state variable | SINT32 | ||||
Kn – Numerator of filter coefficient | SINT16 | ||||
Kd – Denominator bits of filter coefficient | SINT16 | ||||
D – Deadband factor | SINT16 | ||||
Return Value | Calculated value of filt_SV as given below | SINT32 |
Pseudo code:
<Lvalue> = ( ( (Input << D) – (filt_SV >> Kd) ) * Kn ) + filt_SV
Note:- The multiplication by D shall not be performed for D = 0.
Function Name | LPF_OpUpdate_s16InVarKTrunc_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Filt_SV – Calculated value of filter state variable | SINT32 | |||
Kd – Denominator bits of filter coefficient | SINT16 | ||||
D – Deadband factor | SINT16 | ||||
Return Value | Low pass filter output | SINT32 |
Pseudo code:
<Lvalue> = (filt_SV >> Kd ) >>D
Note:- The division by D shall not be performed for D = 0.
For a module that executes a LPF, in its _Init() sub module execute the following macros in the given sequence
LPF_SvInit_s16InVarKTrunc_m (<Input>, <Kd>, <D>)
LPF_OpInit_s16InVarKTrunc_m (<Input>, <Filt_SV>, <Kn>, <Kd>, <D>)
In the same module’s _Per() sub module execute the following macros in the given sequence,
LPF_SvUpdate_s16InVarKTrunc_m (<Input>, <filt_SV>, <Kn>, <Kd>, <D>)
LPF_OpUpdate_s16InVarKTrunc_m ( <filt_SV>, <Kd>, <D>)
The filter topology 1LP1-CF is as given,
The filter equations are given below. Each equation shall be implemented as a library macro.
The equation to calculate the filter coefficient K is as follows: (Where Fp is in hertz and T is in seconds.)
K = 1 – exp(-2 * π * Fp * T)
And the equation for initialization of the state variable is as follows:
Filt_SV = Input
The equation for recalculation of the filter coefficient K is exactly the same as that defined in the initialization function above.
The equation for the output (Node O) is as follows:
filt_Out = ( ( Input – prev_SV ) * K ) + prev_SV
The value of filt_SV is the value of filt_Out from the previous call to the above function.
There will be three macros defined for this implementation:- state variable and coefficient initialization, coefficient calculation, and filter output update.
Function Name | LPF_Init_f32_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Initial input to filter | Float 32 | FULL | FULL | |
Fp – Pole cutoff frequency in hertz | Float 32 | 0.1% 1/T | 50% 1/T | ||
T – Sampling interval in seconds | Float 32 | 0.00005 | 10 | ||
SV_Str – Pointer to the state variable structure | LPF32KSV_Str | *See 2.3.2.1.4 | |||
Return Value | Initial output, node O | Float 32 | FULL | FULL |
Pseudo Code:
<SV_Str-> SV_Uls_f32> = Input
<Lvalue> = Input
LPF_KUpdate_f32_m(Fp, T, SV_Str)
Function Name | LPF_KUpdate_f32_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Fp – Pole cutoff frequency in hertz | Float 32 | 0.1% 1/T | 50% 1/T | |
T – Sampling interval in seconds | Float 32 | 0.00005 | 10 | ||
SV_Str – Pointer to the state variable structure | LPF32KSV_Str | *See 2.3.2.1.4 | |||
Return Value | New value of K stored in state variable structure | Float 32 | 0.0 | 1.0 |
Pseudo Code:
<SV_Str-> K_Uls_f32> = 1 – expf(-2π * Fp * T)
Function Name | LPF_OpUpdate_f32_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to low pass filter | Float 32 | FULL | FULL | |
SV_Str – Pointer to the state variable structure | LPF32KSV_Str | *See 2.3.2.1.4 | |||
Return Value | Output of low pass filter | Float 32 | FULL | FULL |
Pseudo code:
<Lvalue> = <SV_Str->SV_Uls_f32> =
(Input – <SV_Str->SV_Uls_f32>) * <SV_Str->K_Uls_f32> + <SV_Str->SV_Uls_f32>
LPF32KSV_Str | Type | Min | Max | UTP Tol. |
K_Uls_f32 | Float 32 | 0.0 | 1.0 | |
SV_Uls_f32 | Float 32 | FULL | FULL |
For a module that executes a LPF, in its _Init() sub module execute the following macros:
LPF_Init_f32_m(<Input>, <Fp>, <T>, <LPF32KSV_Str>)
In the same module’s _Per() sub module execute the following macro:
LPF_OpUpdate_f32_m ( <Input>, <LPF32KSV_Str>)
The module may optionally call the following macro if the coefficient value K needs to be updated on the fly to support variable cutoff filtering.
LPF_KUpdate_f32_m(<Fp>, <T>, <LPF32KSV_Str>)
The filter topology HP-CF is as given:
The filter equations are given below. Each equation shall be implemented as a library macro.
The low-pass filter aspect of the design uses the 1LP1-CF implementation as described in section 2.3.
The CF (correction factor) is calculated as follows:
CF = (1 + exp(2PI * Fp * T)) / (2 * sqrt(1 + ((2 * Fp * T)^2)))
The equation for the output is as follows:
filt_Out = ( Input – LPF_Output ) * CF
There will be three macros defined for this implementation: state variable and coefficient initialization, coefficient calculation, and filter output update. The interface for these macros will be similar to that of the 1LP1-CF low pass filter design.
Function Name | HPF_Init_f32_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Initial input to filter | Float 32 | FULL | FULL | |
Fp – Pole cutoff frequency in hertz | Float 32 | 0.1% 1/T | 50% 1/T | ||
T – Sampling interval in seconds | Float 32 | 0.00005 | 10 | ||
SV_Ptr – Pointer to the state variable structure | HPF32KSV_Str | *See 3.1.2.1.4 | |||
Return Value | Assignment returns initial output |
Pseudo Code:
LPF_Init_f32_m(Input, Fp, T, &(SV_Ptr->LPF_Str))
HPF_KUpdate_f32_m(Fp, T, SV_Ptr)
Function Name | HPF_KUpdate_f32_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Fp – Pole cutoff frequency in hertz | Float 32 | 0.1% 1/T | 50% 1/T | |
T – Sampling interval in seconds | Float 32 | 0.00005 | 10 | ||
SV_Ptr – Pointer to the state variable structure | HPF32KSV_Str | *See 3.1.2.1.4 | |||
Return Value | Assignment returns correction factor |
Pseudo Code:
SV_Ptr->CF = (1 + exp(2PI * Fp * T)) / (2 * sqrt(1 + ((2 * Fp * T)^2)))
LPF_KUpdate_f32_m(Fp_f32, T_f32, &(SV_Ptr->LPF_Str))
Function Name | HPF_OpUpdate_f32_m | Type | Min | Max | UTP Tol. |
Arguments Passed | Input – Input to low pass filter | Float 32 | FULL | FULL | |
SV_Ptr – Pointer to the state variable structure | HPF32KSV_Str | *See 3.1.2.1.4 | |||
Return Value | Assignment returns filter output |
Pseudo code:
(Input - LPF_OpUpdate_f32_m(input_f32, &(SV_Ptr->LPF_Str))) * SV_Ptr->CF_Uls_f32
HPF32KSV_Str | Type | Min | Max | UTP Tol. |
LPF_Str | LPF32KSV_Str | *See 2.3.2.1.4 | ||
CF_Uls_f32 | Float 32 | 0.0 | FULL |
For a module that executes a HPF, in its _Init() sub module execute the following macros:
HPF_Init_f32_m(<Input>, <Fp>, <T>, <HPF32KSV_Str>)
In the same module’s _Per() sub module execute the following macro:
HPF_OpUpdate_f32_m ( <Input>, <HPF32KSV_Str>)
The module may optionally call the following macro if the coefficient value K needs to be updated on the fly to support variable cutoff filtering:
HPF_KUpdate_f32_m(<Fp>, <T>, <HPF32KSV_Str>)
# | Rev | Change | Date | Author |
1 | 1.0 | Added floating point low-pass filter | 09FEB12 | Jared Julien |
2 | 2.0 | Added floating point high-pass filter, fixed issues in FP LPF | 26-Apr-12 | Owen Tosh |
3 | 3.0 | Correct output types for some filters (32 bits output instead of 16bits) – no code change | 25-Jan-13 | D. Djena |
4 | 4.0 | Added new parameter to functions NF_FullUpdate_f32 and NF_SvUpdate_f32 | 05-Dec-13 | VT |
1 Variable X Variable Y 2D Table Lookup function (with interpolation) 2
1.2.1 Unsigned X, Unsigned Y 4
2 Fixed X Variable Y 2D Table Lookup function (with interpolation) 11
2.2.1 Unsigned X, Unsigned Y 11
3 Single X Multiple Y (Bilinear Interpolation) 17
3.1.1 Syntax: BilinearXYM_s16_u16Xs16YM_Cnt (BS, input, *BSTbl, BSize, *XTbl, *YMTbl, Xsize) 17
3.1.2 Syntax: BilinearXYM_u16_u16Xu16YM_Cnt(BS, input, *BSTbl, BSsize, *XTbl, *YMTbl, Xsize) 20
3.1.3 Syntax: BilinearXYM_s16_s16Xs16YM_Cnt (BS, input, *BSTbl, BSize, *XTbl, *YMTbl, Xsize) 23
3.1.4 Syntax: BilinearXYM_u16_s16Xu16YM_Cnt(BS, input, *BSTbl, BSsize, *XTbl, *YMTbl, Xsize) 26
4 Multiple X Multiple Y (Bilinear Interpolation) 29
4.1.1 Syntax: BilinearXMYM_u16_u16XMu16YM_Cnt( BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize) 29
4.1.2 Syntax: BilinearXMYM_s16_u16XMs16YM_Cnt(BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize) 32
4.1.3 Syntax: BilinearXMYM_u16_s16XMu16YM_Cnt( BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize) 40
5 UnitTesting Range: Linear and Bilinear Interpolation 44
The Variable X Variable Y 2D table has the Variable X as the input (independent variable) and the Variable Y as the output (dependent variable). The lookup function with interpolation is used to interpolate the values of Y corresponding to the input value for X. This is implemented using the straight-line equation as given below:
$$y = (\frac{y_{n + 1} - y_{n}}{x_{n + 1} - x_{n}}) \ast (x - x_{n}) + y_{n}$$
where,
n = index into the independent and dependent variable tables
n+1 = next consecutive index into the tables.
(yn+1 - yn) = interval in the dependent table within which the interpolated output is calculated.
(xn+1 - xn) = interval in the independent table within which the input lies.
y = interpolated output (dependent variable)
x = input (independent variable)
Note that yn+1 < yn or yn+1 > yn, for negative or positive slopes and xn+1 > xn.
The index n and n+1, are determined using Straight-Forward Search method. Using the indices, the values of xn+1, xn, yn+1 and yn are determined.
The difference (yn+1 - yn) is held in a signed variable to ensure that the interpolation can handle both positive and negative slopes.
The Variable X VariableY interpolation function is defined as a function with the input x value and table name passed as parameters. The function will return the interpolated output y as its output.
Note: Straight Forward Search method is used for calculating the index n.
Syntax : IntplVarXY_u16_u16Xu16Y_Cnt ( *TableX, *TableY, Size, input)
Arguments:
1) TableX: - The Variable X 2D table (independent table)
2) TableY: - The Variable Y 2D table (dependent table)
3) Size: - Size of the table
4) input: - The input to the table
output: The output from the table.
Pseudo Code :
UINT16 input, output, Size
UINT16 index = 0
SINT16 diffY, diffX, diffXinput, tmpout2
SINT32 tmpout1
const UINT16 TableX = [ x1, x2, x3, x4, x5,….. ]
const UINT16 TableY = [ y1, y2, y3, y4, y5,….. ]
/* Check for Range */
if ( input <= TableX[0] )
return TableY[0]
else if ( input >= TableX[size-1] )
return TableY[size-1]
endif
/* In range. Get Index */
while ( TableX[index + 1] < input )
index = index + 1
endwhile
/* Interpolate and get the output */
diffY = TableY[index+1] - TableY[index]
diffX = TableX[index+1] - TableX[index]
diffXinput = input - TableX[index]
/* Product in 32 bit */
tmpout1 = diffY* diffXinput
/* Check if Divide by zero */
if (diffX == 0)
tmpout2 = 0
else
/* Here, the lower 16 bits are assigned to tmpout2 */
tmpout2 = tmpout1 / diffX
endif
output = tmpout2 + TableY[index]
return output
end
Syntax : IntplVarXY_u16_s16Xu16Y_Cnt (*TableX, *TableY, Size, input)
Arguments:
1) TableX: - The Variable X 2D table (independent table)
2) TableY: - The Variable Y 2D table (dependent table)
3) Size: - Size of the table
4) input: - The input to the table
output: The output from the table.
Pseudo Code :
SINT16 input
UINT16 output, Size
UINT16 index = 0
SINT16 diffY, diffX, diffXinput, tmpout2
SINT32 tmpout1
const SINT16 TableX = [ x1, x2, x3, x4, x5,….. ]
const UINT16 TableY = [ y1, y2, y3, y4, y5,….. ]
/* Check for Range */
if ( input <= TableX[0] )
return TableY[0]
else if ( input >= TableX[size-1] )
return TableY[size-1]
endif
/* In range. Get Index */
while ( TableX[index + 1] < input )
index = index + 1
endwhile
/* Interpolate and get the output */
diffY = TableY[index+1] - TableY[index]
diffX = TableX[index+1] - TableX[index]
diffXinput = input - TableX[index]
/* Product in 32 bit */
tmpout1 = diffY * diffXinput
/* Check if Divide by zero */
if (diffX == 0)
tmpout2 = 0
else
/* Here, the lower 16 bits are assigned to tmpout2 */
tmpout2 = tmpout1 / diffX
endif
output = tmpout2 + TableY[index]
return output
end
Syntax : IntplVarXY_s16_s16Xs16Y_Cnt (*TableX, *TableY, Size, input)
Arguments:
1) TableX: - The Variable X 2D table (independent table)
2) TableY: - The Variable Y 2D table (dependent table)
3) Size: - Size of the table
4) input: - The input to the table
output: The output from the table.
Pseudo Code :
SINT16 input, output
UINT16 Size
UINT16 index = 0
SINT16 diffY, diffX, diffXinput, tmpout2
SINT32 tmpout1
const SINT16 TableX = [ x1, x2, x3, x4, x5,….. ]
const SINT16 TableY = [ y1, y2, y3, y4, y5,….. ]
/* Check for Range */
if ( input <= TableX[0] )
return TableY[0]
else if ( input >= TableX[size-1] )
return TableY[size-1]
endif
/* In range. Get Index */
while ( TableX[index + 1] < input )
index = index + 1
endwhile
/* Interpolate and get the output */
diffY = TableY[index+1] - TableY[index]
diffX = TableX[index+1] - TableX[index]
diffXinput = input - TableX[index]
/* Product in 32 bit */
tmpout1 = diffY * diffXinput
/* Check if Divide by zero */
if (diffX == 0)
tmpout2 = 0
else
/* Here, the lower 16 bits are assigned to tmpout2 */
tmpout2 = tmpout1 / diffX
endif
output = tmpout2 + TableY[index]
return output
end
Syntax : IntplVarXY_s16_u16Xs16Y_Cnt (*TableX, *TableY, Size, input)
Arguments:
1) TableX: - The Variable X 2D table (independent table)
2) TableY: - The Variable Y 2D table (dependent table)
3) Size: - Size of the table
4) input: - The input to the table
output: The output from the table.
Pseudo Code :
UINT16 input, Size
SINT16 output
UINT16 index = 0
SINT16 diffY, diffX, diffXinput, tmpout2
SINT32 tmpout1
const UINT16 TableX = [ x1, x2, x3, x4, x5,….. ]
const SINT16 TableY = [ y1, y2, y3, y4, y5,….. ]
/* Check for Range */
if ( input <= TableX[0] )
return TableY[0]
else if ( input >= TableX[size-1] )
return TableY[size-1]
endif
/* In range. Get Index */
while ( TableX[index + 1] < input )
index = index + 1
endwhile
/* Interpolate and get the output */
diffY = TableY[index+1] - TableY[index]
diffX = TableX[index+1] - TableX[index]
diffXinput = input - TableX[index]
/* Product in 32 bit */
tmpout1 = diffY * diffXinput
/* Check if Divide by zero */
if (diffX == 0)
tmpout2 = 0
else
/* Here, the lower 16 bits are assigned to tmpout2 */
tmpout2 = tmpout1 / diffX
endif
output = tmpout2 + TableY[index]
return output
end
The Fixed X Variable Y 2D table has the Fixed X as the input (independent variable) and the Variable Y (dependent variable) as the output. The interpolation function is used to interpolate the values of Y corresponding to the input value for X. It is assumed that the independent axis (X) will always start from 0. This is implemented using the straight-line equation as given below:
$$y = (\frac{y_{n + 1} - y_{n}}{\Delta x}) \ast (x - x_{n}) + y_{n}$$
where,
n = index into the Table
(yn+1 - yn) = interval in the dependent table within which the interpolated output is calculated.
∆x = fixed X interval within which the input lies.
y = interpolated output
x = input
Determine the value of n, i.e the index into the table, n = truncate ( x / ∆x ). Using this index n, determine the values of xn, yn and yn+1. The output y can then be calculated based on the straight line given above.
Syntax : IntplFxdX_u16_u16Xu16Y_Cnt (DeltaX, *TableY, Size, input)
Arguments:
1. DeltaX: - The Fixed X interval
2. TableY: - The Variable Y 2D table (dependent table)
3. Size: - Size of the table
4. input: - The input to the table
output: The output from the table.
Pseudo Code :
UINT16 input, output, Size
UINT16 index = 0
SINT16 diffY, diffXinput, tmpout2
SINT32 tmpout1
const UINT16 TableY = [ y1, y2, y3, y4, y5,….. ]
if (DeltaX == 0)
/* Cannot do interpolation. Return Y0 */
return TableY[0]
endif
/* Check for Range */
if ( input <= 0 )
return TableY[0]
else if ( input >= DeltaX * (size-1) )
return TableY[size-1]
endif
/* In range. Get Index */
index = truncate (input / DeltaX)
/* Interpolate and get the output */
diffY = TableY[index+1] - TableY[index]
diffXinput = input - DeltaX * index
/* Product in 32 bit */
tmpout1 = diffY * diffXinput
/* Here, the lower 16 bits are assigned to tmpout2 */
tmpout2 = tmpout1 / DeltaX
output = tmpout2 + TableY[index]
return output
end
Syntax : IntplFxdX_u16_s16Xu16Y_Cnt (DeltaX, *TableY, Size, input)
Arguments:
1. DeltaX: - The Fixed X interval
2. TableY: - The Variable Y 2D table (dependent table)
3. Size: - Size of the table
4. input: - The input to the table
output: The output from the table.
Pseudo Code :
SINT16 input
UINT16 output, Size
UINT16 index = 0
SINT16 diffY, diffXinput, tmpout2
SINT32 tmpout1
const UINT16 TableY = [ y1, y2, y3, y4, y5,….. ]
if (DeltaX == 0)
/* Cannot do interpolation. Return Y0 */
return TableY[0]
endif
/* Check for Range */
if ( input <= 0 )
return TableY[0]
else if ( input >= DeltaX * (size-1) )
return TableY[size-1]
endif
/* In range. Get Index */
index = truncate (input / DeltaX)
/* Interpolate and get the output */
diffY = TableY[index+1] - TableY[index]
diffXinput = input - DeltaX * index
/* Product in 32 bit */
tmpout1 = diffY * diffXinput
/* Here, the lower 16 bits are assigned to tmpout2 */
tmpout2 = tmpout1 / DeltaX
output = tmpout2 + TableY[index]
return output
end
Syntax: IntplFxdX_s16_s16Xs16Y_Cnt (DeltaX, *TableY, Size, input)
Arguments:
1. DeltaX: - The Fixed X interval
2. TableY: - The Variable Y 2D table (dependent table)
3. Size: - Size of the table
4. input: - The input to the table
output: The output from the table.
Pseudo Code :
SINT16 input, output
UINT16 Size
UINT16 index = 0
SINT16 diffY, diffXinput, tmpout2
SINT32 tmpout1
const SINT16 TableY = [ y1, y2, y3, y4, y5,….. ]
if (DeltaX == 0)
/* Cannot do interpolation. Return Y0 */
return TableY[0]
endif
/* Check for Range */
if ( input <= 0 )
return TableY[0]
else if ( input >= DeltaX * (size-1) )
return TableY[size-1]
endif
/* In range. Get Index */
index = truncate (input / DeltaX)
/* Interpolate and get the output */
diffY = TableY[index+1] - TableY[index]
diffXinput = input - DeltaX * index
/* Product in 32 bit */
tmpout1 = diffY * diffXinput
/* Here, the lower 16 bits are assigned to tmpout2 */
tmpout2 = tmpout1 / DeltaX
output = tmpout2 + TableY[index]
return output
end
Syntax: IntplFxdX_s16_u16Xs16Y_Cnt (DeltaX, *TableY, Size, input)
Arguments:
1. DeltaX: - The Fixed X interval
2. TableY: - The Variable Y 2D table (dependent table)
3. Size: - Size of the table
4. input: - The input to the table
output: The output from the table.
Pseudo Code :
UINT16 input, Size
SINT16 output
UINT16 index = 0
SINT16 diffY, diffXinput, tmpout2
SINT32 tmpout1
const SINT16 TableY = [ y1, y2, y3, y4, y5,….. ]
if (DeltaX == 0)
/* Cannot do interpolation. Return Y0 */
return TableY[0]
endif
/* Check for Range */
if ( input <= 0 )
return TableY[0]
else if ( input >= DeltaX * (size-1) )
return TableY[size-1]
endif
/* In range. Get Index */
index = truncate (input / DeltaX)
/* Interpolate and get the output */
diffY = TableY[index+1] - TableY[index]
diffXinput = input - DeltaX * index
/* Product in 32 bit */
tmpout1 = diffY * diffXinput
/* Here, the lower 16 bits are assigned to tmpout2 */
tmpout2 = tmpout1 / DeltaX
output = tmpout2 + TableY[index]
return output
end
Arguments:
BS:- Bilinear Selector
Input:-The input to the table
BSTbl:- Bilinear Selector Table 2D
BSize:- Bilinear Selector Table Size
XTbl:- Table X 2D
YMTbl:- Table Y with MxN dimension
Xsize:- Size of XTbl
Output:- The output from the table
Pseudo Code:
UINT16 BSindex, Xindex
UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4
SINT32 BSinputDiff, XInputDiff
FLOAT32 Numerator_f32, Denominator_f32, Output_f32
SINT16 Output_s16
Const UINT16 BSTbl = [z1,z2,z3,z4,…..]
Const UINT16 XTbl = [x1,x2,x3,x4,…...]
Const SINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]
If (BS <= BSTbl[0])
BSindex = 0
BS = BSTbl[0]
Else if (BS >= BSTbl[BSize-1])
BSindex = BSsize -2
BS = BSTbl[BSsize -1]
While ((BSTbl[BSindex] = = BSTbl[BSindex + 1] && (BSindex > 0)))
BSindex = BSindex - 1
Wend
Else
BSindex = 0
While ( BSTbl[BSindex +1] < BS)
BSindex = BSindex + 1
Wend
Endif
If (input <= XTbl[0])
Xindex = 0
Input = XTbl[0]
Else if (input >= XTbl[XSize – 1])
Xindex = Xsize – 2
Input = XTbl[Xsize -1]
Else
Xindex = 0
While ( XTbl[Xindex +1] < input)
Xindex = Xindex+1
Wend
Endif
ArrayIndex1 = (BSindex * Xsize) + Xindex
ArrayIndex2 = (BSindex * Xsize) + Xindex + 1
ArrayIndex3 = ((BSindex + 1) * Xsize) + Xindex
ArrayIndex4 = ((BSindex + 1) * Xsize) + Xindex + 1
BSInputDiff = BS – BSTbl[BSindex]
XInputDiff = input – XTbl[Xindex]
Numerator_f32 = ( YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]) * ((BSTbl[BSindex+1] – BSTbl[BSindex]) * XInputDiff) +
(YMTbl[ArrayIndex3] – YMTbl[ArrayIndex1]) *
(BSInputDiff * (XTbl[Xindex+1] – XTbl[Xindex])) +
(XInputDiff * BSInputDiff ) *
((YMTbl[ArrayIndex4]) – (YMTbl[ArrayIndex3]) – (YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]))
Denominator_f32 = (BSTbl[BSindex +1] – BSTbl[BSindex]) * (XTbl[Xindex+1] – XTbl[Xindex])
If (Denominator_f32 <= FLT_EPSILON)
Output_f32 = YMTbl[ArrayIndex1]
Else
Output_f32 = YMTbl[ArrayIndex1] + Numerator_f32 / Denominator_f32
Endif
If (Output_f32 >= 0)
Output_f32 = Output_f32 + 0.5
Else
Output_f32 =Output_f32 – 0.5
Endif
/*Float to SINT16 typecast*/
Output_s16 = Output_f32
return Output_s16
End
Arguments
BS:- Bilinear Selector
input:-The input to the table
BSTbl:- Bilinear Selector Table 2D
BSize:- Bilinear Selector Table Size
XTbl:- Table X 2D
YMTbl:- Table Y with MxN dimension
Xsize:- Size of XTbl
Output:- The output from the table
Pseudo Code:
UINT16 BSindex, Xindex
UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4
SINT32 BSInputDiff, XInputDiff
FLOAT32 Numerator_f32, Denominator_f32
UINT16 Output_u16
Const UINT16 BSTbl = [z1,z2,z3,z4,…..]
Const UINT16 XTbl = [x1,x2,x3,x4,…...]
Const UINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]
If (BS <= BSTbl[0])
BSindex = 0
BS = BSTbl[0]
Else if (BS >= BSTbl[BSsize – 1])
BSindex = BSsize -2
BS = BSTbl [ BSsize – 1]
While (( BSTbl [BSindex] == BSTbl [ BSindex+1] && (BSindex > 0)))
BSindex = BSindex – 1
Wend
Else
BSindex = 0
While (BSTbl[BSindex +1]<BS)
BSindex = BSindex +1
Wend
Endif
If (input <= XTbl[0])
Xindex = 0
Input = XTbl[0]
Else if (input >= XTbl[XSize -1])
Xindex = Xsize -2
input = XTbl[Xsize -1]
Else
Xindex = 0
While ( XTbl[Xindex + 1] < input)
Xindex= Xindex + 1
Wend
Endif
ArrayIndex1 = (BSindex * Xsize) + Xindex
ArrayIndex2 = (BSindex * Xsize) + Xindex + 1
ArrayIndex3 = ((BSindex + 1)* Xsize) + Xindex
ArrayIndex4 = ((BSindex + 1)* Xsize) + Xindex + 1
BSInputDiff = BS – BSTbl[BSindex]
XInputDiff = input – XTbl[Xindex]
Numerator_f32 = ( YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]) *
((BSTbl [ BSindex + 1] – BSTbl[BSindex]) * XInputDiff) +
(YMTbl [ ArrayIndex3] – YMTbl[ArrayIndex1]) *
(BSInputDiff * (XTbl[Xindex+1] – XTbl[Xindex])) +
(XInputDiff * BSInputDiff) *
((YMTbl[ArrayIndex4]) – (YMTbl[ArrayIndex3]) – (YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]))
Denominator_f32 = (BSTbl[BSindex+1] – BSTbl[BSindex]) * (XTbl[Xindex+1] – XTbl[Xindex])
If (Denominator_f32 <= FLT_EPSILON) Output_u16 = YMTbl[ArrayIndex1] + 0.5
Else
Output_u16 = YMTbl[ArrayIndex1] + (Numerator_f32 / Denominator_f32) + 0.5
Endif
return Output_u16
end
Arguments:
BS:- Bilinear Selector
Input:-The input to the table
BSTbl:- Bilinear Selector Table 2D
BSize:- Bilinear Selector Table Size
XTbl:- Table X 2D
YMTbl:- Table Y with MxN dimension
Xsize:- Size of XTbl
Output:- The output from the table
Pseudo Code:
UINT16 BSindex, Xindex
UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4
SINT32 BSinputDiff, XInputDiff
FLOAT32 Numerator_f32, Denominator_f32, Output_f32
SINT16 Output_s16
Const UINT16 BSTbl = [z1,z2,z3,z4,…..]
Const UINT16 XTbl = [x1,x2,x3,x4,…...]
Const SINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]
If (BS <= BSTbl[0])
BSindex = 0
BS = BSTbl[0]
Else if (BS >= BSTbl[BSize-1])
BSindex = BSsize -2
BS = BSTbl[BSsize -1]
While ((BSTbl[BSindex] = = BSTbl[BSindex + 1] && (BSindex > 0)))
BSindex = BSindex - 1
Wend
Else
BSindex = 0
While ( BSTbl[BSindex +1] < BS)
BSindex = BSindex + 1
Wend
Endif
If (input <= XTbl[0])
Xindex = 0
Input = XTbl[0]
Else if (input >= XTbl[XSize – 1])
Xindex = Xsize – 2
Input = XTbl[Xsize -1]
Else
Xindex = 0
While ( XTbl[Xindex +1] < input)
Xindex = Xindex+1
Wend
Endif
ArrayIndex1 = (BSindex * Xsize) + Xindex
ArrayIndex2 = (BSindex * Xsize) + Xindex + 1
ArrayIndex3 = ((BSindex + 1) * Xsize) + Xindex
ArrayIndex4 = ((BSindex + 1) * Xsize) + Xindex + 1
BSInputDiff = BS – BSTbl[BSindex]
XInputDiff = input – XTbl[Xindex]
Numerator_f32 = ( YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]) * ((BSTbl[BSindex+1] – BSTbl[BSindex]) * XInputDiff) +
(YMTbl[ArrayIndex3] – YMTbl[ArrayIndex1]) *
(BSInputDiff * (XTbl[Xindex+1] – XTbl[Xindex])) +
(XInputDiff * BSInputDiff ) *
((YMTbl[ArrayIndex4]) – (YMTbl[ArrayIndex3]) – (YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]))
Denominator_f32 = (BSTbl[BSindex +1] – BSTbl[BSindex]) * (XTbl[Xindex+1] – XTbl[Xindex])
If (Denominator_f32 <= FLT_EPSILON) Output_f32 = YMTbl[ArrayIndex1]
Else
Output_f32 = YMTbl[ArrayIndex1] + Numerator_f32 / Denominator_f32
Endif
If (Output_f32 >= 0)
Output_f32 = Output_f32 + 0.5
Else
Output_f32 =Output_f32 – 0.5
Endif
/*Float to SINT16 typecast*/
Output_s16 = Output_f32
return Output_s16
End
Arguments
BS:- Bilinear Selector
input:-The input to the table
BSTbl:- Bilinear Selector Table 2D
BSize:- Bilinear Selector Table Size
XTbl:- Table X 2D
YMTbl:- Table Y with MxN dimension
Xsize:- Size of XTbl
Output:- The output from the table
Pseudo Code:
UINT16 BSindex, Xindex
UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4
SINT32 BSInputDiff, XInputDiff
FLOAT32 Numerator_f32, Denominator_f32
UINT16 Output_u16
Const UINT16 BSTbl = [z1,z2,z3,z4,…..]
Const UINT16 XTbl = [x1,x2,x3,x4,…...]
Const UINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]
If (BS <= BSTbl[0])
BSindex = 0
BS = BSTbl[0]
Else if (BS >= BSTbl[BSsize – 1])
BSindex = BSsize -2
BS = BSTbl [ BSsize – 1]
While (( BSTbl [BSindex] == BSTbl [ BSindex+1] && (BSindex > 0)))
BSindex = BSindex – 1
Wend
Else
BSindex = 0
While (BSTbl[BSindex +1]<BS)
BSindex = BSindex +1
Wend
Endif
If (input <= XTbl[0])
Xindex = 0
Input = XTbl[0]
Else if (input >= XTbl[XSize -1])
Xindex = Xsize -2
input = XTbl[Xsize -1]
Else
Xindex = 0
While ( XTbl[Xindex + 1] < input)
Xindex= Xindex + 1
Wend
Endif
ArrayIndex1 = (BSindex * Xsize) + Xindex
ArrayIndex2 = (BSindex * Xsize) + Xindex + 1
ArrayIndex3 = ((BSindex + 1)* Xsize) + Xindex
ArrayIndex4 = ((BSindex + 1)* Xsize) + Xindex + 1
BSInputDiff = BS – BSTbl[BSindex]
XInputDiff = input – XTbl[Xindex]
Numerator_f32 = ( YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]) *
((BSTbl [ BSindex + 1] – BSTbl[BSindex]) * XInputDiff) +
(YMTbl [ ArrayIndex3] – YMTbl[ArrayIndex1]) *
(BSInputDiff * (XTbl[Xindex+1] – XTbl[Xindex])) +
(XInputDiff * BSInputDiff) *
((YMTbl[ArrayIndex4]) – (YMTbl[ArrayIndex3]) – (YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]))
Denominator_f32 = (BSTbl[BSindex+1] – BSTbl[BSindex]) * (XTbl[Xindex+1] – XTbl[Xindex])
If (Denominator_f32 <= FLT_EPSILON) Output_u16 = YMTbl[ArrayIndex1] + 0.5
Else
Output_u16 = YMTbl[ArrayIndex1] + (Numerator_f32 / Denominator_f32) + 0.5
Endif
return Output_u16
end
Arguments:
BS:- Bilinear Selector
input:-The input to the table
BSTbl:- Bilinear Selector Table 2D
BSize:- Bilinear Selector Table Size
XTbl:- Table X with [MxN] dimension
YMTbl:- Table Y with [MxN] dimension
Xsize:- Size of XTbl
Output:- The output from the table
Pseudo Code:
UINT16 BSindex, X1index, X2index,
UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4
SINT32 BSInputDiff, XInputDiff1, XInputDiff2
SINT32 Mult1_s32, Mult2_s32
FLOAT32 Numerator_f32, Denominator_f32
UINT16 Output_u16
SINT32 Den1_s32, Den2_s32, Den3_s32
UINT16 input2 = input
Const UINT16 BSTbl = [z1,z2,z3,z4,…..]
Const UINT16 XTbl[mxn] = [(x1,x2,x3…),(x4,x5,x6….),….]
Const UINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]
If ( BS <= BSTbl[0] )
BSindex = 0
BS = BSTbl [0]
Else if (BS >= BSTbl[BSsize -1])
BSindex = BSsize – 2
BS = BSTbl [ BSsize-1]
while (BSTbl[BSindex] == BSTbl[BSindex+1] && (BSindex > 0))
BSindex = BSindex -1
wend
Else
BSindex = 0
while ( BSTbl [ BSindex +1] < BS)
BSindex = BSindex +1
wend
Endif
If ( input <= XMTbl [ BSindex * Xsize])
X1index = 0
Input = XMTbl [BSindex * Xsize]
Else if (input >= XMTbl [ (BSindex * Xsize) + Xsize -1])
X1index = Xsize – 2
input = XMTbl [ (BSindex * Xsize) + Xsize – 1]
while ((XMTbl[(BSindex * Xsize)+X1index] == XMTbl[(BSindex * Xsize) + X1index +1]) && (X1index >0))
X1index = X1index – 1
wend
Else
X1index = 0
while (XMTbl[(BSindex * Xsize)+X1index+1] <input)
X1index = X1index + 1
wend
Endif
If (input2 <= XMTb1 [(BSindex+1) * Xsize])
X2index = 0
input2 = XMTbl[(BSindex + 1) * Xsize ]
Else if (input2 >= XMTbl [ ((BSindex +1) * Xsize) + Xsize -1])
X2index = Xsize -2
input2 = XMTbl[((BSindex +1)*Xsize) + Xsize -1]
while ((XMTbl[((BSindex+1)*Xsize)+X2index]==XMTbl[((BSindex+1)*Xsize)+X2index+1]) && (X2index >0))
X2index = X2index – 1
wend
Else
X2index = 0
while ( XMTbl[((BSindex+1)*Xsize)+X2index+1]<input)
X2index = X2index +1
wend
Endif
ArrayIndex1 = (BSindex * Xsize) + X1index
ArrayIndex2 = (BSindex * Xsize) + X1index + 1
ArrayIndex3 = ((BSindex +1)* Xsize) + X2index
ArrayIndex4 = ((BSindex +1)*Xsize)+X2index+1
XInputDiff1 = input – XMTbl[ArrayIndex1]
XInputDiff2 = input2 – XMTbl[ArrayIndex3]
BSInputDiff = BS – BSTbl[BSindex]
Mult1_s32 = XInputDiff1 * (XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3])
Mult2_s32 = BSInputDiff * (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])
Den1_s32 = (XMTbl[ArrayIndex4]-XMTbl[ArrayIndex3])
Den2_s32 = (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])
Den3_s32 = (BSTbl[BSindex +1]-BSTbl[BSindex])
Numerator_f32 = Mult1_s32 * (BSTbl[BSindex+1]-BS) *
(YMTbl[ArrayIndex2]-YMTbl[ArrayIndex1]) +
Mult2_s32*(XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3]) *
(YMTbl[ArrayIndex3] – YMTbl[ArrayIndex1]) +
Mult2_s32 * XInputDiff2*(YMTbl[ArrayIndex4] – YMTbl[ArrayIndex3])
Denominator_f32 = (Den1_s32 * Den2_s32) * Den3_s32
If (Denominator_f32 <= FLT_EPSILON)
Output_u16 = YMTbl[ArrayIndex1] + 0.5
Else
Output_u16 = YMTbl[ArrayIndex1] + (Numerator_f32 / Denominator_f32) + 0.5
Endif
return Output_u16
end
Arguments:
BS:- Bilinear Selector
input:-The input to the table
BSTbl:- Bilinear Selector Table 2D
BSize:- Bilinear Selector Table Size
XTbl:- Table X with [MxN] dimension
YMTbl:- Table Y with [MxN] dimension
Xsize:- Size of XTbl
Output:- The output from the table
Pseudo Code:
UINT16 BSindex, X1index, X2index
UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4
SINT32 BSInputDiff, XInputDiff1, XInputDiff2
SINT32 Mult1_s32, Mult2_s32
FLOAT32 Numerator_f32, Denominator_f32
SINT16 Output_s16
SINT32 Den1_s32, Den2_s32, Den3_s32
UINT16 input2 = input
FLOAT32 Output_f32
Const UINT16 BSTbl = [z1,z2,z3,z4,…..]
Const UINT16 XTbl[mxn] = [(x1,x2,x3…),(x4,x5,x6….),….]
Const SINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]
If ( BS <= BSTbl[0])
BSindex = 0
BS = BSTbl[0]
Else if (BS >= BSTbl[BSsize -1])
BSindex = BSsize – 2
BS = BSTbl [ BSsize – 1]
While ( BSTbl[BSindex] == BSTbl[BSindex + 1] && (BSindex >0))
BSindex = BSindex – 1
Wend
Else
BSindex = 0
While (BSTbl[BSindex +1] < BS)
BSindex = BSindex +1
Wend
Endif
If (input <= XMTbl[BSindex * Xsize ] )
X1index =0
input = XMTbl[BSindex * Xsize]
else if (input >= XMTbl[(BSindex * Xsize) + Xsize -1])
X1index = Xsize -2
input = XMTbl[(BSindex * Xsize) + Xsize -1]
while (( XMTbl[(BSindex * Xsize) + X1index] == XMTbl[(BSindex * Xsize) +X1index+1]) && (X1index > 0))
X1index =X1index – 1
Wend
Else
X1index = 0
While (XMTbl[(BSindex * Xsize)+X1index+1] < input)
X1index = X1index +1
Wend
Endif
If (input2 <= XMTbl[(BSindex+1) * Xsize])
X2index =0
Input2 = XMTbl[(BSindex+1)* Xsize]
Else if (input2 >= XMTbl[(BSindex+1) * Xsize) + XSize-1])
X2index = Xsize – 2
input2 = XMTbl[((BSindex +1)*Xsize)+Xsize – 1]
while ((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1) * Xsize)+X2index+1]) && (X2index >0))
X2index = X2index – 1
Wend
Else
X2index =0
While (XMTbl[((Bsindex+1)* Xsize) + X2index +1] < input)
X2index= X2index+1
Wend
Endif
ArrayIndex1 = (BSindex * Xsize) + X1index
ArrayIndex2 = (BSindex * Xsize) + X1index + 1
ArrayIndex3 = ((BSindex+1)*Xsize)+X2index
ArrayIndex4 = ((BSindex + 1)*Xsize) + X2index+1
XInputDiff1 = input – XMTbl[ArrayIndex1]
XInputDiff2 = input2 – XMTbl[ArrayIndex3]
BSInputDiff = BS – BSTbl[BSindex]
Mult1_s32 = XInputDiff1 * (XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3])
Mult2_s32 = BSinputDiff * (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])
Den1_s32 = (XMTbl[ArrayIndex4] - XMTbl[ArrayIndex3])
Den2_s32 = (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])
Den3_s32 = (BSTbl[BSindex+1] – BSTbl[BSindex])
Numerator_f32 = Mult1_s32 * ((BSTbl[BSindex+1]-BS) * (YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]) +
Mult2_s32 * (XMTbl[ArrayIndex4]-XMTbl[ArrayIndex3])*
YMTbl[ArrayIndex3] – YMTbl[ArrayIndex1]) +
Mult2_s32*XInputDiff2*(YMTbl[ArrayIndex4]-YMTbl[ArrayIndex3])
Denominator_f32 = (Den1_s32 * Den2_s32) * Den3_s32
If (Denominator_f32 <= FLT_EPSILON)
Output_f32 = YMTbl[ArrayIndex1]
Else
Output_f32 = YMTbl[ArrayIndex1]+Numerator_f32/Denominator_f32
Endif
If (Output_f32 >= 0)
Output_f32 = Output_f32 +0.5
Else
Output_f32 = Output_f32 -0.5
Endif
/*float to SINT16 typecasting*/
Output_s16 = Output_f32
return Output_s16
end
4.1.3 Syntax: BilinearXMYM_s16_s16XMs16YM_Cnt(BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize)
Arguments:
BS:- Bilinear Selector
input:-The input to the table
BSTbl:- Bilinear Selector Table 2D
BSize:- Bilinear Selector Table Size
XTbl:- Table X with [MxN] dimension
YMTbl:- Table Y with [MxN] dimension
Xsize:- Size of XTbl
Output:- The output from the table
Pseudo Code:
UINT16 BSindex, X1index, X2index
UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4
SINT32 BSInputDiff, XInputDiff1, XInputDiff2
SINT32 Mult1_s32, Mult2_s32
FLOAT32 Numerator_f32, Denominator_f32
SINT16 Output_s16
SINT32 Den1_s32, Den2_s32, Den3_s32
SINT16 input2 = input
FLOAT32 Output_f32
Const UINT16 BSTbl = [z1,z2,z3,z4,…..]
Const SINT16 XTbl[mxn] = [(x1,x2,x3…),(x4,x5,x6….),….]
Const SINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]
If (BS <= BSTbl[0])
BSindex = 0
BS = BSTbl[0]
Else if (BS >= BSTbl[BSsize-1]
BSindex = BSsize – 2
BS = BSTbl[BSsize – 1]
While ( BSTbl[BSindex] == BSTbl[BSindex+1] && (BSindex >0))
BSindex = BSindex -1
Wend
Else
BSindex = 0
While (BSTbl[BSindex+1] < BS)
BSindex = BSindex +1
Wend
Endif
If (input <= XMTbl[BSindex * Xsize])
X1index = 0
input = XMTbl[BSindex * Xsize]
else if (input >= XMTbl[(BSindex * Xsize) + Xsize – 1])
X1index = Xsize-2
input = XMTbl[(BSindex*Xsize)+Xsize-1]
while ((XMTbl[(BSindex*Xsize)+X1index] = = XMTbl[(BSindex * Xsize)+X1index+1]) && (X1index > 0))
X1index = X1index-1
Wend
Else
X1index = 0
While ( XMTbl[(BSindex * Xsize) + X1index+1] < input)
X1index = X1index+1
Wend
Endif
If (input2 <= XMTbl[(BSindex+1)*Xsize])
X2index = 0
input2= XMTbl[(BSindex+1)*Xsize]
else if (input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])
X2index = Xsize-2
input2 = XMTbl[((BSindex+1)*Xsize)+Xsize-1]
while (( XMTbl[(BSindex+1)*Xsize) + X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) && (X2index > 0))
X2index = X2index-1
Wend
Else
X2index = 0
While ( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input)
X2index = X2index+1
Wend
Endif
ArrayIndex1 = (BSindex * Xsize) + X1index
ArrayIndex2 = (BSindex * Xsize) + X1index + 1
ArrayIndex3 = ((BSindex +1)*Xsize)+X2index
ArrayIndex4 = ((BSindex + 1)*Xsize)+X2index+1
XInputDiff1 = input – XMTbl[ArrayIndex1]
XInputDiff2 = inpu2 – XMTbl[ArrayIndex3]
BSInputDiff = BS – BSTbl[BSindex]
Mult1_s32 = XInputDiff1 * (XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3])
Mult2_s32 = BSInputDiff * (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])
Den1_s32 = (XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3])
Den2_s32 = (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])
Den3_s32 = (BSTbl[BSindex + 1] – BSTbl[BSindex])
Numerator_f32 = Mult1_s32 * ((BSTbl[BSindex+1]-BS)* (YMTbl[ArrayIndex2]-YMTbl[ArrayIndex1])+
Mult2_s32 * (XMTbl[ArrayIndex4]-XMTbl[ArrayIndex3]) *
(YMTbl[ArrayIndex3] – YMTbl[ArrayIndex1]) +
Mult2_s32 * XInputDiff2 * (YMTbl[ArrayIndex4] – YMTbl[ArrayIndex3])
Denominator_f32 = (Den1_s32 * Den2_s32) * Den3_s32
If (Denominator_f32 <= FLT_EPSILON)
Output_f32 = YMTbl[ArrayIndex1]
Else
Output_f32 = YMTbl[ArrayIndex1] + Numerator_f32 / Denominator_f32
Endif
If (Output_f32 >= 0)
Output_f32 = Output_f32 +0.5
Else
Output_f32 = Output_f32 – 0.5
Endif
/*float to SINT16 typecast*/
Output_s16 = Output_f32
return Output_s16
end
Arguments:
BS:- Bilinear Selector
input:-The input to the table
BSTbl:- Bilinear Selector Table 2D
BSize:- Bilinear Selector Table Size
XTbl:- Table X with [MxN] dimension
YMTbl:- Table Y with [MxN] dimension
Xsize:- Size of XTbl
Output:- The output from the table
Pseudo Code:
UINT16 BSindex, X1index, X2index,
UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4
SINT32 BSInputDiff, XInputDiff1, XInputDiff2
SINT32 Mult1_s32, Mult2_s32
FLOAT32 Numerator_f32, Denominator_f32
UINT16 Output_u16
SINT32 Den1_s32, Den2_s32, Den3_s32
UINT16 input2 = input
Const UINT16 BSTbl = [z1,z2,z3,z4,…..]
Const UINT16 XTbl[mxn] = [(x1,x2,x3…),(x4,x5,x6….),….]
Const UINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]
If ( BS <= BSTbl[0] )
BSindex = 0
BS = BSTbl [0]
Else if (BS >= BSTbl[BSsize -1])
BSindex = BSsize – 2
BS = BSTbl [ BSsize-1]
while (BSTbl[BSindex] == BSTbl[BSindex+1] && (BSindex > 0))
BSindex = BSindex -1
wend
Else
BSindex = 0
while ( BSTbl [ BSindex +1] < BS)
BSindex = BSindex +1
wend
Endif
If ( input <= XMTbl [ BSindex * Xsize])
X1index = 0
Input = XMTbl [BSindex * Xsize]
Else if (input >= XMTbl [ (BSindex * Xsize) + Xsize -1])
X1index = Xsize – 2
input = XMTbl [ (BSindex * Xsize) + Xsize – 1]
while ((XMTbl[(BSindex * Xsize)+X1index] == XMTbl[(BSindex * Xsize) + X1index +1]) && (X1index >0))
X1index = X1index – 1
wend
Else
X1index = 0
while (XMTbl[(BSindex * Xsize)+X1index+1] <input)
X1index = X1index + 1
wend
Endif
If (input2 <= XMTb1 [(BSindex+1) * Xsize])
X2index = 0
input2 = XMTbl[(BSindex + 1) * Xsize ]
Else if (input2 >= XMTbl [ ((BSindex +1) * Xsize) + Xsize -1])
X2index = Xsize -2
input2 = XMTbl[((BSindex +1)*Xsize) + Xsize -1]
while ((XMTbl[((BSindex+1)*Xsize)+X2index]==XMTbl[((BSindex+1)*Xsize)+X2index+1]) && (X2index >0))
X2index = X2index – 1
wend
Else
X2index = 0
while ( XMTbl[((BSindex+1)*Xsize)+X2index+1]<input)
X2index = X2index +1
wend
Endif
ArrayIndex1 = (BSindex * Xsize) + X1index
ArrayIndex2 = (BSindex * Xsize) + X1index + 1
ArrayIndex3 = ((BSindex +1)* Xsize) + X2index
ArrayIndex4 = ((BSindex +1)*Xsize)+X2index+1
XInputDiff1 = input – XMTbl[ArrayIndex1]
XInputDiff2 = input2 – XMTbl[ArrayIndex3]
BSInputDiff = BS – BSTbl[BSindex]
Mult1_s32 = XInputDiff1 * (XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3])
Mult2_s32 = BSInputDiff * (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])
Den1_s32 = (XMTbl[ArrayIndex4]-XMTbl[ArrayIndex3])
Den2_s32 = (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])
Den3_s32 = (BSTbl[BSindex +1]-BSTbl[BSindex])
Numerator_f32 = Mult1_s32 * (BSTbl[BSindex+1]-BS) *
(YMTbl[ArrayIndex2]-YMTbl[ArrayIndex1]) +
Mult2_s32*(XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3]) *
(YMTbl[ArrayIndex3] – YMTbl[ArrayIndex1]) +
Mult2_s32 * XInputDiff2*(YMTbl[ArrayIndex4] – YMTbl[ArrayIndex3])
Denominator_f32 = (Den1_s32 * Den2_s32) * Den3_s32
If (Denominator_f32 <= FLT_EPSILON)
Output_u16 = YMTbl[ArrayIndex1] + 0.5
Else
Output_u16 = YMTbl[ArrayIndex1] + (Numerator_f32 / Denominator_f32) + 0.5
Endif
return Output_u16
end
For unit testing consider Ranges as FULL based on the data type of the tables and Input. Note a limitation for all interpolation functions is that the X tables and the BS Tables are assumed to be always increasing in value (or equal). The tables should never be decreasing in values as the index increases.
Item # | Rev # | Change Description | Date | Author Initials |
1 | CBD | Interpolation MDD | 13 April 12 | NRAR |
2 | 2 | Added remaining bilinear interpolation functions | 28-Sep-12 | OT |
3 | 3 | Changed divide by zero logic in bilinear interpolation to prevent floating point exceptions | 21-Mar-13 | LWW |
Module | Required Feature |
---|---|
Constant | Notes | SWC |
---|---|---|
Constant | Notes | SWC |
---|---|---|
The following import steps must be completed:
Place CBD project structure to appropriate integration folder
Copy SystemTime_Cfg.h.tt into the Header folder and remove the .tt extension.
Configure the constant D_TickRate_Cnt_u32 to the appropriate Os system tick time.
This section specifies the required runnable scheduling.
Runnable | Scheduling Requirements | Trigger |
---|---|---|
Constant | Notes |
---|---|
* Each …START_SEC… constant is terminated by a …STOP_SEC… constant as specified in the AUTOSAR Memory Mapping requirements.
Feature | RAM | ROM |
---|---|---|
Full driver |
Item # | Rev # | Change Description | Date | Author Initials |
---|---|---|---|---|
1 | Initial version | 26Jul13 | SAH |
![]() | |||||||||||
Nexteer EPS Unit Test Tool | |||||||||||
Rev:2.7b | |||||||||||
Module Definitions | |||||||||||
Module Test Functions | Module Set/Read Variables | Module Function Stubs | |||||||||
Return Type | Name | Parameter Prototype | Scope | Type | Name | Default Value | Return Type | Name | Parameter Prototype | ||
sint16 | BilinearXYM_s16_u16Xs16YM_Cnt | (uint16 BS1, uint16 input1, uint16 BSsize1, uint16 Xsize1) | G | uint16 | BilinearXYM_s16_u16Xs16YM_Cnt_BSTbl[3] | ||||||
uint16 | BilinearXYM_u16_u16Xu16YM_Cnt | (uint16 BS2, uint16 input2, uint16 BSsize2, uint16 Xsize2) | G | uint16 | BilinearXYM_s16_u16Xs16YM_Cnt_XTbl[3] | ||||||
uint16 | BilinearXMYM_u16_u16XMu16YM_Cnt | (uint16 BS3, uint16 input3, uint16 BSsize3, uint16 Xsize3) | G | sint16 | BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl1[3] | ||||||
sint16 | BilinearXMYM_s16_u16XMs16YM_Cnt | (uint16 BS4, uint16 input4, uint16 BSsize4, uint16 Xsize4) | G | sint16 | BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl2[3] | ||||||
sint16 | BilinearXMYM_s16_s16XMs16YM_Cnt | (uint16 BS5, sint16 input5, uint16 BSsize5, uint16 Xsize5) | G | sint16 | BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl3[3] | ||||||
uint16 | IntplVarXY_u16_u16Xu16Y_Cnt | (uint16 Size6, uint16 input6) | G | uint16 | BilinearXYM_u16_u16Xu16YM_Cnt_BSTbl[3] | ||||||
uint16 | IntplVarXY_u16_s16Xu16Y_Cnt | (uint16 Size7, sint16 input7) | G | uint16 | BilinearXYM_u16_u16Xu16YM_Cnt_XTbl[3] | ||||||
sint16 | IntplVarXY_s16_s16Xs16Y_Cnt | (uint16 Size8, sint16 input8) | G | uint16 | BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl1[3] | ||||||
sint16 | IntplVarXY_s16_u16Xs16Y_Cnt | (uint16 Size9, uint16 input9) | G | uint16 | BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl2[3] | ||||||
uint16 | IntplFxdX_u16_u16Xu16Y_Cnt | (uint16 DeltaX10, uint16 Size10, uint16 input10) | G | uint16 | BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl3[3] | ||||||
uint16 | IntplFxdX_u16_s16Xu16Y_Cnt | (sint16 DeltaX11, uint16 Size11, sint16 input11) | G | uint16 | BilinearXMYM_u16_u16XMu16YM_Cnt_BSTbl[3] | ||||||
sint16 | IntplFxdX_s16_s16Xs16Y_Cnt | (sint16 DeltaX12, uint16 Size12, sint16 input12) | G | uint16 | BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl1[3] | ||||||
sint16 | IntplFxdX_s16_u16Xs16Y_Cnt | (uint16 DeltaX13, uint16 Size13, uint16 input13) | G | uint16 | BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl2[3] | ||||||
G | uint16 | BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl3[3] | |||||||||
G | uint16 | BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl1[3] | |||||||||
G | uint16 | BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl2[3] | |||||||||
G | uint16 | BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl3[3] | |||||||||
G | uint16 | BilinearXMYM_s16_u16XMs16YM_Cnt_BSTbl[3] | |||||||||
G | uint16 | BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl1[3] | |||||||||
G | uint16 | BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl2[3] | |||||||||
G | uint16 | BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl3[3] | |||||||||
G | sint16 | BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl1[3] | |||||||||
G | sint16 | BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl2[3] | |||||||||
G | sint16 | BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl3[3] | |||||||||
G | uint16 | BilinearXMYM_s16_s16XMs16YM_Cnt_BSTbl[3] | |||||||||
G | sint16 | BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl1[3] | |||||||||
G | sint16 | BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl2[3] | |||||||||
G | sint16 | BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl3[3] | |||||||||
G | sint16 | BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl1[3] | |||||||||
G | sint16 | BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl2[3] | |||||||||
G | sint16 | BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl3[3] | |||||||||
G | uint16 | IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4] | |||||||||
G | uint16 | IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4] | |||||||||
G | sint16 | IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3] | |||||||||
G | uint16 | IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3] | |||||||||
G | sint16 | IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3] | |||||||||
G | sint16 | IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3] | |||||||||
G | uint16 | IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3] | |||||||||
G | sint16 | IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3] | |||||||||
G | uint16 | IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3] | |||||||||
G | uint16 | IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3] | |||||||||
G | sint16 | IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3] | |||||||||
G | sint16 | IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3] |
![]() | |||||||||||
Nexteer EPS Unit Test Tool | |||||||||||
Rev:2.7b | |||||||||||
Variable Range Definitions | |||||||||||
Variable Name | Max Value | Min Value | |||||||||
BilinearXYM_s16_u16Xs16YM_Cnt_BSTbl[3] | |||||||||||
BilinearXYM_s16_u16Xs16YM_Cnt_XTbl[3] | |||||||||||
BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl1[3] | |||||||||||
BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl2[3] | |||||||||||
BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl3[3] | |||||||||||
BilinearXYM_u16_u16Xu16YM_Cnt_BSTbl[3] | |||||||||||
BilinearXYM_u16_u16Xu16YM_Cnt_XTbl[3] | |||||||||||
BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl1[3] | |||||||||||
BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl2[3] | |||||||||||
BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl3[3] | |||||||||||
BilinearXMYM_u16_u16XMu16YM_Cnt_BSTbl[3] | |||||||||||
BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl1[3] | |||||||||||
BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl2[3] | |||||||||||
BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl3[3] | |||||||||||
BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl1[3] | |||||||||||
BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl2[3] | |||||||||||
BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl3[3] | |||||||||||
BilinearXMYM_s16_u16XMs16YM_Cnt_BSTbl[3] | |||||||||||
BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl1[3] | |||||||||||
BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl2[3] | |||||||||||
BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl3[3] | |||||||||||
BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl1[3] | |||||||||||
BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl2[3] | |||||||||||
BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl3[3] | |||||||||||
BilinearXMYM_s16_s16XMs16YM_Cnt_BSTbl[3] | |||||||||||
BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl1[3] | |||||||||||
BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl2[3] | |||||||||||
BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl3[3] | |||||||||||
BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl1[3] | |||||||||||
BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl2[3] | |||||||||||
BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl3[3] | |||||||||||
IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4] | |||||||||||
IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4] | |||||||||||
IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3] | |||||||||||
IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3] | |||||||||||
IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3] | |||||||||||
IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3] | |||||||||||
IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3] | |||||||||||
IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3] | |||||||||||
IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3] | |||||||||||
IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3] | |||||||||||
IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3] | |||||||||||
IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3] |
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | 0 | ||||
Number Of Calibration Sets | 0 | ||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
BilinearXYM_s16_u16Xs16YM_Cnt | B | 21 | BilinearXYM_s16_u16Xs16YM_Cnt_BSTbl[3] | ||
BilinearXYM_s16_u16Xs16YM_Cnt | P | 7 | BilinearXYM_s16_u16Xs16YM_Cnt_XTbl[3] | ||
BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl1[3] | |||||
BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl2[3] | |||||
BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl3[3] |
BilinearXYM_s16_u16Xs16YM_Cnt | TS | -- | |||||||||||||
P | Param1 | Param2 | Param3 | Param4 | I/P5 | I/P6 | I/P7 | I/P8 | I/P9 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | BS1 | input1 | BSsize1 | Xsize1 | BilinearXYM_s16_u16Xs16YM_Cnt_BSTbl[3] | BilinearXYM_s16_u16Xs16YM_Cnt_XTbl[3] | BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl1[3] | BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl2[3] | BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl3[3] | BilinearXYM_s16_u16Xs16YM_Cnt | BilinearXYM_s16_u16Xs16YM_Cnt | P/F | CPU Cycles | |
1 | (BS <= BSTbl[0]) = True and (input <= XTbl[0])=False and (input >= XTbl[Xsize-1])=True and ((sint32)(Denominator_f32) == 0)=True and (Output_f32>=0)=False | 0 | 5645 | 3 | 3 | 7432 , 7432 , 7432 | 2222 ,2222 ,2222 | -12345, -12345 , -12345 | -6459, -6459 ,-6459 | 4232, 4232 ,4232 | -- | -12345 | -- | ||
2 | (BS <= BSTbl[0]) = False and (BS >= BSTbl[BSsize-1])=True and ((BSTbl[BSindex] == BSTbl[BSindex+1] = True && (BSindex > 0))) = True and ((BSTbl[BSindex] == BSTbl[BSindex+1] = True && (BSindex > 0)))=False | 65535 | 8678 | 3 | 3 | 26327 , 26327 ,26327 | 4633 , 4633 ,4633 | -2637, -2637 ,-2637 | 4232, 4232 ,4232 | 2521 , 2521 ,2521 | -- | -2637 | -- | ||
3 | (input <= XTbl[0])=True and (Output_f32>=0)=True | 1000 | 3453 | 3 | 3 | 37382 , 37382 , 37382 | 6478 , 6478 ,6478 | 8546, 8546 ,8546 | 2521 , 2521 ,2521 | 1312 , 1312 ,1312 | -- | 8546 | -- | ||
4 | (BS >= BSTbl[BSsize-1])=False and ( BSTbl[BSindex+1] < BS )=True and ( BSTbl[BSindex+1] < BS )=False | 65530 | 8678 | 3 | 3 | 26327 , 26327 ,65531 | 4633 , 4633 ,4633 | -2637, -2637 ,-2637 | 4232, 4232 ,4232 | 2521 , 2521 ,2521 | -- | 4232 | -- | ||
5 | ((BSTbl[BSindex] == BSTbl[BSindex+1] = False&& (BSindex > 0))) | 65530 | 8678 | 3 | 3 | 26327 , 26327 ,65529 | 4633 , 4633 ,4633 | -2637, -2637 ,-2637 | 4232, 4232 ,4232 | 2521 , 2521 ,2521 | -- | 4232 | -- | ||
6 | (input >= XTbl[Xsize-1])=False and ( XTbl[Xindex+1] < input )=True and ( XTbl[Xindex+1] < input )=False | 0 | 5645 | 3 | 3 | 7432 , 7432 , 7432 | 2222 ,2222 ,5646 | -12345, -12345 , -12345 | -6459, -6459 ,-6459 | 4232, 4232 ,4232 | -- | -12345 | -- | ||
7 | ((sint32)(Denominator_f32) == 0)=False | 0 | 5645 | 3 | 3 | 7430 , 7432 , 7432 | 2222 ,2220 ,2222 | -12345, -12345 , -12345 | -6459, -6459 ,-6459 | 4232, 4232 ,4232 | -- | -12345 | -- | ||
BilinearXYM_s16_u16Xs16YM_Cnt | TS | -- | |||||||||||||
B | Param1 | Param2 | Param3 | Param4 | I/P5 | I/P6 | I/P7 | I/P8 | I/P9 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | BS1 | input1 | BSsize1 | Xsize1 | BilinearXYM_s16_u16Xs16YM_Cnt_BSTbl[3] | BilinearXYM_s16_u16Xs16YM_Cnt_XTbl[3] | BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl1[3] | BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl2[3] | BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl3[3] | BilinearXYM_s16_u16Xs16YM_Cnt | BilinearXYM_s16_u16Xs16YM_Cnt | P/F | CPU Cycles | |
1 | param 1 min | 0 | 5645 | 3 | 3 | 7432 , 7432 , 7432 | 2222 ,2222 ,2222 | -12345, -12345 , -12345 | -6459, -6459 ,-6459 | 4232, 4232 ,4232 | -- | -12345 | -- | ||
2 | param 1 max | 65535 | 8678 | 3 | 3 | 26327 , 26327 ,26327 | 4633 , 4633 ,4633 | -2637, -2637 ,-2637 | 4232, 4232 ,4232 | 2521 , 2521 ,2521 | -- | -2637 | -- | ||
3 | param 1 pos | 1000 | 3453 | 3 | 3 | 37382 , 37382 , 37382 | 6478 , 6478 ,6478 | 8546, 8546 ,8546 | 2521 , 2521 ,2521 | 1312 , 1312 ,1312 | -- | 8546 | -- | ||
4 | param 2 min | 1234 | 0 | 3 | 3 | 42769 , 42769 ,42769 | 3333 , 3333 ,3333 | -9484, -9484 ,-9484 | 1312 , 1312 ,1312 | -2637, -2637 ,-2637 | -- | -9484 | -- | ||
5 | param 2 max | 2345 | 65535 | 3 | 3 | 52636 , 52636 ,52636 | 4444 , 4444 ,4444 | -3744, -3744 , -3744 | -2637, -2637 ,-2637 | 8546, 8546 ,8546 | -- | -3744 | -- | ||
6 | param 2 pos | 3456 | 2000 | 3 | 3 | 5555 , 5555 ,5555 | 5555 , 5555 ,5555 | 17633, 17633 ,17633 | 8546, 8546 ,8546 | -9484, -9484 ,-9484 | -- | 17633 | -- | ||
7 | param 3 default | 4567 | 4342 | 3 | 3 | 3637 , 3637 ,3637 | 3637 , 3637 ,3637 | 26385, 26385 ,26384 | -9484, -9484 ,-9484 | -3744, -3744 ,-3744 | -- | 26385 | -- | ||
8 | param 4 default | 5678 | 7764 | 3 | 3 | 2754 , 2754 ,2754 | 2754 , 2754 ,2754 | -7236, -7236 ,-7236 | -3744, -3744 ,-3744 | 17633, 17633 ,17633 | -- | -7236 | -- | ||
9 | I/p 5 min | 6789 | 1234 | 3 | 3 | 0, 0 ,0 | 7432 , 7432 , 7432 | 5820, 5820 ,5820 | 17633, 17633 ,17633 | 26385, 26385 ,26385 | -- | 5820 | -- | ||
10 | I/p 5 max | 8908 | 7897 | 3 | 3 | 65535 ,65535 ,65535 | 26327 , 26327 ,26327 | 17552, 17552 ,17552 | 26385, 26385 ,26385 | -7236, -7236 ,-7236 | -- | 17552 | -- | ||
11 | I/p 5 pos | 1111 | 2345 | 3 | 3 | 1000, 1000 ,1000 | 37382 , 37382 , 37382 | 27544, 27544 ,27544 | -7236, -7236 ,-7236 | 5820, 5820 ,5820 | -- | 27544 | -- | ||
12 | I/p 6 min | 2222 | 3456 | 3 | 3 | 2222 ,2222 ,2222 | 0, 0 ,0 | -6439, -6439 ,-6439 | 5820, 5820 ,5820 | 17552, 17552 ,17552 | -- | -6439 | -- | ||
13 | I/p 6 max | 3333 | 4567 | 3 | 3 | 4633 , 4633 ,4633 | 65535 ,65535 ,65535 | -6459, -6459 ,-6459 | 17552, 17552 ,17552 | 27544, 27544 ,27544 | -- | -6459 | -- | ||
14 | I/p 6 pos | 4444 | 5678 | 3 | 3 | 6478 , 6478 ,6478 | 2000, 2000 ,2000 | 4232, 4232 ,4232 | 27544, 27544 ,27544 | -6439, -6439 ,-6439 | -- | 4232 | -- | ||
15 | I/p 7 min | 5555 | 6789 | 3 | 3 | 3333 , 3333 ,3333 | 42769 , 42769 ,42769 | -32768, -32768 ,-32768 | -6439, -6439 ,-6439 | -6459, -6459 ,-6459 | -- | -32768 | -- | ||
16 | I/p 7 max | 6666 | 8908 | 3 | 3 | 4444 , 4444 ,4444 | 52636 , 52636 ,52636 | 32767, 32767 ,32767 | -6459, -6459 ,-6459 | 4232, 4232 ,4232 | -- | 32767 | -- | ||
17 | I/p 7 zero | 7777 | 1111 | 3 | 3 | 5555 , 5555 ,5555 | 5555 , 5555 ,5555 | 0, 0 ,0 | 4232, 4232 ,4232 | 2521 , 2521 ,2521 | -- | 0 | -- | ||
18 | I/p 7 neg | 8888 | 2222 | 3 | 3 | 3637 , 3637 ,3637 | 3637 , 3637 ,3637 | -1500, -1500 ,-1500 | 2521 , 2521 ,2521 | 1312 , 1312 ,1312 | -- | -1500 | -- | ||
19 | I/p 7 pos | 9999 | 4234 | 3 | 3 | 2754 , 2754 ,2754 | 2754 , 2754 ,2754 | 1800, 1800 ,1800 | 1312 , 1312 ,1312 | -6459, -6459 ,-6459 | -- | 1800 | -- | ||
20 | All min | 0 | 0 | 3 | 3 | 0, 0 ,0 | 0, 0 ,0 | -32768, -32768 ,-32768 | -32768, -32768 ,-32768 | -32768, -32768 ,-32768 | -- | -32768 | -- | ||
21 | All max | 65535 | 65535 | 3 | 3 | 65535 ,65535 ,65535 | 65535 ,65535 ,65535 | 32767, 32767 ,32767 | 32767, 32767 ,32767 | 32767, 32767 ,32767 | -- | 32767 | -- | ||
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | 0 | ||||
Number Of Calibration Sets | 0 | ||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
BilinearXYM_u16_u16Xu16YM_Cnt | B | 19 | BilinearXYM_u16_u16Xu16YM_Cnt_BSTbl[3] | ||
BilinearXYM_u16_u16Xu16YM_Cnt | P | 9 | BilinearXYM_u16_u16Xu16YM_Cnt_XTbl[3] | ||
BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl1[3] | |||||
BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl2[3] | |||||
BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl3[3] |
BilinearXYM_u16_u16Xu16YM_Cnt | TS | -- | |||||||||||||
P | Param1 | Param2 | Param3 | Param4 | I/P5 | I/P6 | I/P7 | I/P8 | I/P9 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | BS2 | input2 | BSsize2 | Xsize2 | BilinearXYM_u16_u16Xu16YM_Cnt_BSTbl[3] | BilinearXYM_u16_u16Xu16YM_Cnt_XTbl[3] | BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl1[3] | BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl2[3] | BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl3[3] | BilinearXYM_u16_u16Xu16YM_Cnt | BilinearXYM_u16_u16Xu16YM_Cnt | P/F | CPU Cycles | |
1 | (BS <= BSTbl[0])=True and (input <= XTbl[0])=True and ((sint32)Denominator_f32 == 0)=True | 0 | 7980 | 3 | 3 | 2222 ,2222 ,2222 | 37382 , 37382 , 37382 | 2521 , 2521 ,2521 | 4232, 4232 ,4232 | 12345, 12345 , 12345 | -- | 2521 | -- | ||
2 | (BS <= BSTbl[0])=False and (BS >= BSTbl[BSsize-1])=True and ((BSTbl[BSindex] == BSTbl[BSindex+1] = True && (BSindex > 0)))=True and ((BSTbl[BSindex] == BSTbl[BSindex+1] =True && (BSindex > 0)))=False | 65535 | 5455 | 3 | 3 | 4633 , 4633 ,4633 | 42769 , 42769 ,42769 | 4232, 4232 ,4232 | 2521 , 2521 ,2521 | 2637, 2637 ,2637 | -- | 4232 | -- | ||
3 | (input <= XTbl[0])=False and (input >= XTbl[Xsize-1])=True | 5645 | 65535 | 3 | 3 | 4444 , 4444 ,4444 | 1000, 1000 ,1000 | 2637, 2637 ,2637 | 8546, 8546 ,8546 | 3744, 3744 , 3744 | -- | 2637 | -- | ||
4 | (BS >= BSTbl[BSsize-1])=False and ( BSTbl[BSindex+1] < BS )=False | 3333 | 5455 | 3 | 3 | 2222 , 4633 ,4633 | 42769 , 42769 ,42769 | 4232, 4232 ,4232 | 2521 , 2521 ,2521 | 2637, 2637 ,2637 | -- | 4232 | -- | ||
5 | ((BSTbl[BSindex] == BSTbl[BSindex+1] =False&& (BSindex > 0))) | 65530 | 8678 | 3 | 3 | 26327 , 26327 ,1234 | 4633 , 4633 ,4633 | 2637, 2637 ,2637 | 4232, 4232 ,4232 | 2521 , 2521 ,2521 | -- | 4232 | -- | ||
6 | ( BSTbl[BSindex+1] < BS )=True | 3333 | 5455 | 3 | 3 | 2222 , 2222 ,4633 | 42769 , 42769 ,42769 | 4232, 4232 ,4232 | 2521 , 2521 ,2521 | 2637, 2637 ,2637 | -- | 2521 | -- | ||
7 | (input >= XTbl[Xsize-1])=False and ( XTbl[Xindex+1] < input )=False | 5645 | 800 | 3 | 3 | 4444 , 4444 ,4444 | 500, 1000 ,1000 | 2637, 2637 ,2637 | 8546, 8546 ,8546 | 3744, 3744 , 3744 | -- | 2637 | -- | ||
8 | ( XTbl[Xindex+1] < input )=True | 5645 | 800 | 3 | 3 | 4444 , 4444 ,4444 | 500, 500 ,1000 | 2637, 2637 ,2637 | 8546, 8546 ,8546 | 3744, 3744 , 3744 | -- | 2637 | -- | ||
9 | ((sint32)Denominator_f32 == 0)=False | 0 | 7980 | 3 | 3 | 2220 ,2222 ,2222 | 37380 , 37382 , 37382 | 2521 , 2521 ,2521 | 4232, 4232 ,4232 | 12345, 12345 , 12345 | -- | 2521 | -- | ||
BilinearXYM_u16_u16Xu16YM_Cnt | TS | -- | |||||||||||||
B | Param1 | Param2 | Param3 | Param4 | I/P5 | I/P6 | I/P7 | I/P8 | I/P9 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | BS2 | input2 | BSsize2 | Xsize2 | BilinearXYM_u16_u16Xu16YM_Cnt_BSTbl[3] | BilinearXYM_u16_u16Xu16YM_Cnt_XTbl[3] | BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl1[3] | BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl2[3] | BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl3[3] | BilinearXYM_u16_u16Xu16YM_Cnt | BilinearXYM_u16_u16Xu16YM_Cnt | P/F | CPU Cycles | |
1 | param 1 min | 0 | 7980 | 3 | 3 | 2222 ,2222 ,2222 | 37382 , 37382 , 37382 | 2521 , 2521 ,2521 | 4232, 4232 ,4232 | 12345, 12345 , 12345 | -- | 2521 | -- | ||
2 | param 1 max | 65535 | 5455 | 3 | 3 | 4633 , 4633 ,4633 | 42769 , 42769 ,42769 | 4232, 4232 ,4232 | 2521 , 2521 ,2521 | 2637, 2637 ,2637 | -- | 4232 | -- | ||
3 | param 1 pos | 12345 | 3123 | 3 | 3 | 6478 , 6478 ,6478 | 52636 , 52636 ,52636 | 2521 , 2521 ,2521 | 1312 , 1312 ,1312 | 8546, 8546 ,8546 | -- | 2521 | -- | ||
4 | param 2 min | 2342 | 0 | 3 | 3 | 3333 , 3333 ,3333 | 5555 , 5555 ,5555 | 1312 , 1312 ,1312 | 2637, 2637 ,2637 | 9484, 9484 ,9484 | -- | 1312 | -- | ||
5 | param 2 max | 5645 | 65535 | 3 | 3 | 4444 , 4444 ,4444 | 1000, 1000 ,1000 | 2637, 2637 ,2637 | 8546, 8546 ,8546 | 3744, 3744 , 3744 | -- | 2637 | -- | ||
6 | param 2 pos | 4232 | 4357 | 3 | 3 | 5555 , 5555 ,5555 | 1432 , 1432, 1432 | 8546, 8546 ,8546 | 9484, 9484 ,9484 | 17633, 17633 ,17633 | -- | 8546 | -- | ||
7 | param 3 default | 1111 | 6784 | 3 | 3 | 3637 , 3637 ,3637 | 2525, 2525, 2525 | 9484, 9484 ,9484 | 3744, 3744 ,3744 | 26385, 26385 ,26384 | -- | 9484 | -- | ||
8 | param 4 default | 2222 | 5467 | 3 | 3 | 2754 , 2754 ,2754 | 1122, 1122, 1122 | 3744, 3744 ,3744 | 17633, 17633 ,17633 | 7236, 7236 ,7236 | -- | 3744 | -- | ||
9 | I/p 5 min | 3333 | 3536 | 3 | 3 | 0, 0 ,0 | 4633 , 4633 ,4633 | 17633, 17633 ,17633 | 26385, 26385 ,26385 | 5820, 5820 ,5820 | -- | 17633 | -- | ||
10 | I/p 5 max | 4444 | 9789 | 3 | 3 | 65535 ,65535 ,65535 | 6478 , 6478 ,6478 | 26385, 26385 ,26385 | 7236, 7236 ,7236 | 17552, 17552 ,17552 | -- | 26385 | -- | ||
11 | I/p 5 pos | 5555 | 4234 | 3 | 3 | 2754 , 2754 ,2754 | 3333 , 3333 ,3333 | 7236, 7236 ,7236 | 5820, 5820 ,5820 | 27544, 27544 ,27544 | -- | 7236 | -- | ||
12 | I/p 6 min | 6666 | 7889 | 3 | 3 | 37382 , 37382 , 37382 | 0, 0 ,0 | 5820, 5820 ,5820 | 17552, 17552 ,17552 | 6439, 6439 ,6439 | -- | 5820 | -- | ||
13 | I/p 6 max | 7777 | 4234 | 3 | 3 | 42769 , 42769 ,42769 | 65535 ,65535 ,65535 | 17552, 17552 ,17552 | 27544, 27544 ,27544 | 6459, 6459 ,6459 | -- | 17552 | -- | ||
14 | I/p 6 pos | 8888 | 7656 | 3 | 3 | 52636 , 52636 ,52636 | 5555 , 5555 ,5555 | 27544, 27544 ,27544 | 6439, 6439 ,6439 | 4232, 4232 ,4232 | -- | 27544 | -- | ||
15 | I/p 7 min | 9999 | 8073 | 3 | 3 | 5555 , 5555 ,5555 | 4444 , 4444 ,4444 | 0, 0 ,0 | 6459, 6459 ,6459 | 6439, 6439 ,6439 | -- | 0 | -- | ||
16 | I/p 7 max | 6434 | 2436 | 3 | 3 | 1000, 1000 ,1000 | 5555 , 5555 ,5555 | 65535 ,65535 ,65535 | 4232, 4232 ,4232 | 6459, 6459 ,6459 | -- | 65535 | -- | ||
17 | I/p 7 pos | 8564 | 8674 | 3 | 3 | 1432 , 1432, 1432 | 3637 , 3637 ,3637 | 5820, 5820 ,5820 | 2521 , 2521 ,2521 | 4232, 4232 ,4232 | -- | 5820 | -- | ||
18 | All min | 0 | 0 | 3 | 3 | 0, 0 ,0 | 0, 0 ,0 | 0, 0 ,0 | 0, 0 ,0 | 0, 0 ,0 | -- | 0 | -- | ||
19 | All max | 65535 | 65535 | 3 | 3 | 65535 ,65535 ,65535 | 65535 ,65535 ,65535 | 65535 ,65535 ,65535 | 65535 ,65535 ,65535 | 65535 ,65535 ,65535 | -- | 65535 | -- | ||
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | 0 | ||||
Number Of Calibration Sets | 0 | ||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
BilinearXMYM_u16_u16XMu16YM_Cnt | B | 19 | BilinearXMYM_u16_u16XMu16YM_Cnt_BSTbl[3] | ||
BilinearXMYM_u16_u16XMu16YM_Cnt | P | 10 | BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl1[3] | ||
BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl2[3] | |||||
BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl3[3] | |||||
BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl1[3] | |||||
BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl2[3] | |||||
BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl3[3] |
BilinearXMYM_u16_u16XMu16YM_Cnt | TS | -- | |||||||||||||||
P | Param1 | Param2 | Param3 | Param4 | I/P5 | I/P6 | I/P7 | I/P8 | I/P9 | I/P10 | I/P11 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | BS3 | input3 | BSsize3 | Xsize3 | BilinearXMYM_u16_u16XMu16YM_Cnt_BSTbl[3] | BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl1[3] | BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl2[3] | BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl3[3] | BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl1[3] | BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl2[3] | BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl3[3] | BilinearXMYM_u16_u16XMu16YM_Cnt | BilinearXMYM_u16_u16XMu16YM_Cnt | P/F | CPU Cycles | |
1 | (BS <= BSTbl[0])=True and (input <= XMTbl[BSindex*Xsize])=False and (input >= XMTbl[(BSindex*Xsize)+Xsize-1])=True and ((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1])=False && (X1index > 0)) and (input2 <= XMTbl[(BSindex+1)*Xsize])=false and (input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=True and ((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) =false&& (X2index > 0)) and ((sint32)Denominator_f32 == 0)=False | 0 | 9054 | 3 | 3 | 2563 , 4739 , 6960 | 1628 , 4628 , 3537 | 2648 , 6895 , 2893 | 2839 , 5894 , 2920 | 3849 , 6960 , 2372 | 2728 , 5859 , 2738 | 6278 , 4849 , 6960 | -- | 2372 | -- | ||
2 | (BS <= BSTbl[0])=False and (BS >= BSTbl[BSsize-1])=True and (BSTbl[BSindex] == BSTbl[BSindex+1]=False && (BSindex > 0)) and (input >= XMTbl[(BSindex*Xsize)+Xsize-1])=False and ( XMTbl[(BSindex*Xsize)+X1index+1] < input )=False and (input2 <= XMTbl[(BSindex+1)*Xsize])=True | 65535 | 3534 | 3 | 3 | 2685 , 5689 , 6890 | 2764 , 4739 , 4894 | 1628 , 4628 , 3537 | 3849 , 6960 , 2372 | 1628 , 4628 , 3537 | 2648 , 6895 , 2893 | 2522 , 6960 , 26238 | -- | 2522 | -- | ||
3 | (input <= XMTbl[BSindex*Xsize])=True | 6456 | 0 | 3 | 3 | 3829 , 6893 , 2303 | 4527 , 6869 , 3638 | 6448 , 2376 , 6960 | 2764 , 4739 , 4894 | 6448 , 2376 , 6960 | 2764 , 4739 , 4894 | 2839 , 5894 , 2920 | -- | 2839 | -- | ||
4 | ( XMTbl[(BSindex*Xsize)+X1index+1] < input )=True | 35476 | 5343 | 3 | 3 | 8660 , 6950 , 3638 | 2685 , 5689 , 6890 | 2563 , 4739 , 6960 | 2638 , 3628 , 3782 | 2563 , 4739 , 6960 | 2638 , 3628 , 3782 | 6448 , 2376 , 6960 | -- | 6960 | -- | ||
5 | (BSTbl[BSindex] == BSTbl[BSindex+1] =True && (BSindex > 0))=True and (BSTbl[BSindex] == BSTbl[BSindex+1] =True&& (BSindex > 0))=False and ((sint32)Denominator_f32 == 0)=true | 46432 | 6896 | 3 | 3 | 0,0,0 | 4173 , 4580 , 4890 | 2685 , 5689 , 6890 | 2563 , 4739 , 6960 | 2685 , 5689 , 6890 | 2563 , 4739 , 6960 | 4527 , 6869 , 3638 | -- | 5689 | -- | ||
6 | (BS >= BSTbl[BSsize-1])=False and ( BSTbl[BSindex+1] < BS )=False and ((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1])=True && (X1index > 0))=True and ((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1])=True && (X1index > 0))=False | 2534 | 3335 | 3 | 3 | 1628 , 4628 , 3537 | 0,0,0 | 7850 , 2783 , 5905 | 3829 , 6893 , 2303 | 7850 , 2783 , 5905 | 3829 , 6893 , 2303 | 2563 , 4739 , 6960 | -- | 7850 | -- | ||
7 | ( BSTbl[BSindex+1] < BS )=True | 2534 | 3335 | 3 | 3 | 1628 , 2000 , 3537 | 0,0,0 | 7850 , 2783 , 5905 | 3829 , 6893 , 2303 | 7850 , 2783 , 5905 | 3829 , 6893 , 2303 | 2563 , 4739 , 6960 | -- | 3389 | -- | ||
8 | (input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=false and ( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=False | 0 | 9054 | 3 | 3 | 2563 , 4739 , 6960 | 1628 , 4628 , 3537 | 2648 , 6895 , 10000 | 2839 , 5894 , 2920 | 3849 , 6960 , 2372 | 2728 , 5859 , 2738 | 6278 , 4849 , 6960 | -- | 2372 | -- | ||
9 | ((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1])=True && (X2index > 0))=True and ((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) =True && (X2index > 0))=false | 0 | 9054 | 3 | 3 | 2563 , 4739 , 6960 | 1628 , 4628 , 3537 | 6895 , 6895 , 6895 | 2839 , 5894 , 2920 | 3849 , 6960 , 2372 | 2728 , 5859 , 2738 | 6278 , 4849 , 6960 | -- | 6960 | -- | ||
10 | ( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=True | 0 | 9054 | 3 | 3 | 2563 , 4739 , 6960 | 1628 , 4628 , 6900 | 2648 , 6895 , 10000 | 2839 , 5894 , 2920 | 3849 , 6960 , 2372 | 2728 , 5859 , 2738 | 6278 , 4849 , 6960 | -- | 2372 | -- | ||
BilinearXMYM_u16_u16XMu16YM_Cnt | TS | -- | |||||||||||||||
B | Param1 | Param2 | Param3 | Param4 | I/P5 | I/P6 | I/P7 | I/P8 | I/P9 | I/P10 | I/P11 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | BS3 | input3 | BSsize3 | Xsize3 | BilinearXMYM_u16_u16XMu16YM_Cnt_BSTbl[3] | BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl1[3] | BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl2[3] | BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl3[3] | BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl1[3] | BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl2[3] | BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl3[3] | BilinearXMYM_u16_u16XMu16YM_Cnt | BilinearXMYM_u16_u16XMu16YM_Cnt | P/F | CPU Cycles | |
1 | param 1 min | 0 | 9054 | 3 | 3 | 2563 , 4739 , 6960 | 1628 , 4628 , 3537 | 2648 , 6895 , 2893 | 2839 , 5894 , 2920 | 3849 , 6960 , 2372 | 2728 , 5859 , 2738 | 6278 , 4849 , 6960 | -- | 2372 | -- | ||
2 | param 1 max | 65535 | 3534 | 3 | 3 | 2685 , 5689 , 6890 | 2764 , 4739 , 4894 | 1628 , 4628 , 3537 | 3849 , 6960 , 2372 | 1628 , 4628 , 3537 | 2648 , 6895 , 2893 | 2522 , 6960 , 26238 | -- | 2522 | -- | ||
3 | param 1 pos | 6562 | 8064 | 3 | 3 | 4173 , 4580 , 4890 | 6448 , 2376 , 6960 | 2764 , 4739 , 4894 | 1628 , 4628 , 3537 | 2764 , 4739 , 4894 | 1628 , 4628 , 3537 | 12637 , 4748 , 5850 | -- | 5850 | -- | ||
4 | param 2 min | 6456 | 0 | 3 | 3 | 3829 , 6893 , 2303 | 4527 , 6869 , 3638 | 6448 , 2376 , 6960 | 2764 , 4739 , 4894 | 6448 , 2376 , 6960 | 2764 , 4739 , 4894 | 2839 , 5894 , 2920 | -- | 2839 | -- | ||
5 | param 2 max | 5733 | 65535 | 3 | 3 | 7850 , 2783 , 5905 | 1528 , 3628 , 2820 | 4527 , 6869 , 3638 | 6448 , 2376 , 6960 | 4527 , 6869 , 3638 | 6448 , 2376 , 6960 | 3849 , 6960 , 2372 | -- | 3638 | -- | ||
6 | param 2 pos | 7964 | 8087 | 3 | 3 | 1839 , 2789 , 4840 | 2638 , 3628 , 3782 | 1528 , 3628 , 2820 | 4527 , 6869 , 3638 | 1528 , 3628 , 2820 | 4527 , 6869 , 3638 | 1628 , 4628 , 3537 | -- | 3537 | -- | ||
7 | param 3 deafult | 2533 | 6978 | 3 | 3 | 3895 , 6899 , 5905 | 2563 , 4739 , 6960 | 2638 , 3628 , 3782 | 1528 , 3628 , 2820 | 2638 , 3628 , 3782 | 1528 , 3628 , 2820 | 2764 , 4739 , 4894 | -- | 3782 | -- | ||
8 | param 4 default | 35476 | 5343 | 3 | 3 | 8660 , 6950 , 3638 | 2685 , 5689 , 6890 | 2563 , 4739 , 6960 | 2638 , 3628 , 3782 | 2563 , 4739 , 6960 | 2638 , 3628 , 3782 | 6448 , 2376 , 6960 | -- | 6960 | -- | ||
9 | I/p 5 min | 46432 | 6896 | 3 | 3 | 0,0,0 | 4173 , 4580 , 4890 | 2685 , 5689 , 6890 | 2563 , 4739 , 6960 | 2685 , 5689 , 6890 | 2563 , 4739 , 6960 | 4527 , 6869 , 3638 | -- | 5689 | -- | ||
10 | I/p 5 max | 53543 | 1234 | 3 | 3 | 65535 , 65535, 65535 | 3829 , 6893 , 2303 | 4173 , 4580 , 4890 | 2685 , 5689 , 6890 | 4173 , 4580 , 4890 | 2685 , 5689 , 6890 | 1528 , 3628 , 2820 | -- | 4173 | -- | ||
11 | I/p 5 pos | 61456 | 2534 | 3 | 3 | 1234 , 2345 , 3456 | 7850 , 2783 , 5905 | 3829 , 6893 , 2303 | 4173 , 4580 , 4890 | 3829 , 6893 , 2303 | 4173 , 4580 , 4890 | 2638 , 3628 , 3782 | -- | 2638 | -- | ||
12 | I/p 6 min | 2534 | 3335 | 3 | 3 | 1628 , 4628 , 3537 | 0,0,0 | 7850 , 2783 , 5905 | 3829 , 6893 , 2303 | 7850 , 2783 , 5905 | 3829 , 6893 , 2303 | 2563 , 4739 , 6960 | -- | 7850 | -- | ||
13 | I/p 6 max | 6433 | 4647 | 3 | 3 | 2764 , 4739 , 4894 | 65535 , 65535, 65535 | 1839 , 2789 , 4840 | 7850 , 2783 , 5905 | 1839 , 2789 , 4840 | 7850 , 2783 , 5905 | 2685 , 5689 , 6890 | -- | 2685 | -- | ||
14 | I/p 6 pos | 8654 | 5785 | 3 | 3 | 6448 , 2376 , 6960 | 1111 , 2222 , 3333 | 3895 , 6899 , 5905 | 1839 , 2789 , 4840 | 3895 , 6899 , 5905 | 1839 , 2789 , 4840 | 4173 , 4580 , 4890 | -- | 4890 | -- | ||
15 | I/p 9 min | 3645 | 6633 | 3 | 3 | 4527 , 6869 , 3638 | 1839 , 2789 , 4840 | 8660 , 6950 , 3638 | 3895 , 6899 , 5905 | 0,0,0 | 3895 , 6899 , 5905 | 3829 , 6893 , 2303 | -- | 0 | -- | ||
16 | I/p 9 max | 8707 | 7532 | 3 | 3 | 1528 , 3628 , 2820 | 3895 , 6899 , 5905 | 6383 , 5690 , 2839 | 8660 , 6950 , 3638 | 65535 , 65535, 65535 | 8660 , 6950 , 3638 | 6484 , 2639 , 4849 | -- | 6484 | -- | ||
17 | I/p 9 pos | 4745 | 8573 | 3 | 3 | 2638 , 3628 , 3782 | 8660 , 6950 , 3638 | 6585 , 1920 , 5850 | 4683 , 2829 , 5895 | 4567 , 5678 , 6783 | 6383 , 5690 , 2839 | 32648 , 7494 , 2829 | -- | 2829 | -- | ||
18 | All min | 0 | 0 | 3 | 3 | 0,0,0 | 0,0,0 | 0,0,0 | 0,0,0 | 0,0,0 | 0,0,0 | 0,0,0 | -- | 0 | -- | ||
19 | All max | 65535 | 65535 | 3 | 3 | 65535 , 65535, 65535 | 65535 , 65535, 65535 | 65535 , 65535, 65535 | 65535 , 65535, 65535 | 65535 , 65535, 65535 | 65535 , 65535, 65535 | 65535 , 65535, 65535 | -- | 65535 | -- | ||
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | 0 | ||||
Number Of Calibration Sets | 0 | ||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
BilinearXMYM_s16_u16XMs16YM_Cnt | B | 21 | BilinearXMYM_s16_u16XMs16YM_Cnt_BSTbl[3] | ||
BilinearXMYM_s16_u16XMs16YM_Cnt | P | 11 | BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl1[3] | ||
BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl2[3] | |||||
BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl3[3] | |||||
BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl1[3] | |||||
BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl2[3] | |||||
BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl3[3] |
BilinearXMYM_s16_u16XMs16YM_Cnt | TS | -- | |||||||||||||||
P | Param | Param | Param | Param | I/P5 | I/P6 | I/P7 | I/P8 | I/P9 | I/P10 | I/P11 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | BS4 | input4 | BSsize4 | Xsize4 | BilinearXMYM_s16_u16XMs16YM_Cnt_BSTbl[3] | BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl1[3] | BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl2[3] | BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl3[3] | BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl1[3] | BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl2[3] | BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl3[3] | BilinearXMYM_s16_u16XMs16YM_Cnt | BilinearXMYM_s16_u16XMs16YM_Cnt | P/F | CPU Cycles | |
1 | (BS <= BSTbl[0])=True and (input <= XMTbl[BSindex*Xsize])=True and (input2 <= XMTbl[(BSindex+1)*Xsize])=True and ((sint32)Denominator_f32 == 0)=True and (Output_f32>=0)=False | 0 | 1231 | 3 | 3 | 2563 , 4739 , 6960 | 4444 , 4444 ,4444 | 3333 , 3333 ,3333 | 1628 , 2839 , 3839 | -6459, -6459 ,-6459 | 4683 , 5894 , 2829 | 2627 , 8942 , 2782 | -- | -6459 | -- | ||
2 | (BS <= BSTbl[0])=False and (BS >= BSTbl[BSsize-1])=True and (BSTbl[BSindex] == BSTbl[BSindex+1] =False&& (BSindex > 0)) and (input <= XMTbl[BSindex*Xsize])=False and (input >= XMTbl[(BSindex*Xsize)+Xsize-1])=True and ((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1]) =False&& (X1index > 0)) and ((sint32)Denominator_f32 == 0)=False | 65535 | 4342 | 3 | 3 | 2685 , 5689 , 6890 | 5555 , 5555 ,5555 | 3422 , 4728 , 1272 | 8494 , 2782 , 5894 | 4232, 4232 ,4232 | 4232, 4232 ,4232 | -6282 , -2892 , -2829 | -- | -6282 | -- | ||
3 | ((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1]) =True && (X1index > 0))=True and ((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1])=True && (X1index > 0))=False and (input2 <= XMTbl[(BSindex+1)*Xsize])=False and (input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=True and ((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) =False && (X2index > 0)) | 321 | 65535 | 3 | 3 | 7850 , 2783 , 5905 | 5555 , 5555 ,5555 | 5262 , 7283 , 8950 | 1629 , 7849 , 3840 | -2637, -2637 ,-2637 | -2637, -2637 ,-2637 | 8546, 8546 ,8546 | -- | -2637 | -- | ||
4 | (BS >= BSTbl[BSsize-1])=False and ( BSTbl[BSindex+1] < BS )=False | 4234 | 8769 | 3 | 3 | 3895 , 6899 , 5905 | 1432 , 1432, 1432 | 1628 , 2839 , 3839 | 2738 , 6956 , 2784 | -9484, -9484 ,-9484 | -9484, -9484 ,-9484 | -3744, -3744 , -3744 | -- | -9484 | -- | ||
5 | (BSTbl[BSindex] == BSTbl[BSindex+1]=True && (BSindex > 0))=True and (BSTbl[BSindex] == BSTbl[BSindex+1] =True&& (BSindex > 0))=False and (Output_f32>=0)=True | 4234 | 2266 | 3 | 3 | 0 , 0, 0 | 1122, 1122, 1122 | 9505 , 6950 , 3739 | 2733 , 5990 , 2839 | 17633, 17633 ,17633 | 17633, 17633 ,17633 | 26385, 26385 ,26384 | -- | 17633 | -- | ||
6 | ( BSTbl[BSindex+1] < BS )=True | 3123 | 7567 | 3 | 3 | 1111 , 2222 , 3333 | 6478 , 6478 ,6478 | 1629 , 7849 , 3840 | 8934 , 4984 , 2849 | -7236, -7236 ,-7236 | -7236, -7236 ,-7236 | 5820, 5820 ,5820 | -- | 3352 | -- | ||
7 | (input >= XMTbl[(BSindex*Xsize)+Xsize-1])=False and ( XMTbl[(BSindex*Xsize)+X1index+1] < input )=False | 65535 | 4342 | 3 | 3 | 2685 , 5689 , 6890 | 5555 , 5555 ,5555 | 3422 , 4728 , 5000 | 8494 , 2782 , 5894 | 4232, 4232 ,4232 | 4232, 4232 ,4232 | -6282 , -2892 , -2829 | -- | -6282 | -- | ||
8 | ( XMTbl[(BSindex*Xsize)+X1index+1] < input )=True | 65535 | 4342 | 3 | 3 | 2685 , 5689 , 6890 | 5555 , 5555 ,5555 | 3422 , 4000 , 5000 | 8494 , 2782 , 5894 | 4232, 4232 ,4232 | 4232, 4232 ,4232 | -6282 , -2892 , -2829 | -- | -6282 | -- | ||
9 | (input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=False and ( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=False | 321 | 1500 | 3 | 3 | 7850 , 2783 , 5905 | 5555 , 5555 ,5555 | 1000 , 7283 , 2000 | 1629 , 7849 , 3840 | -2637, -2637 ,-2637 | -2637, -2637 ,-2637 | 8546, 8546 ,8546 | -- | -2637 | -- | ||
10 | ((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) =True && (X2index > 0))=true and ((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1])=True && (X2index > 0))=False | 321 | 65535 | 3 | 3 | 7850 , 2783 , 5905 | 5555 , 5555 ,5555 | 7283 , 7283 , 7283 | 1629 , 7849 , 3840 | -2637, -2637 ,-2637 | -2637, -2637 ,-2637 | 8546, 8546 ,8546 | -- | -2637 | -- | ||
11 | ( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=True | 321 | 1500 | 3 | 3 | 7850 , 2783 , 5905 | 5555 , 5555 ,5555 | 1000 , 5000 , 2000 | 1629 , 7849 , 3840 | -2637, -2637 ,-2637 | -2637, -2637 ,-2637 | 8546, 8546 ,8546 | -- | -2637 | -- | ||
BilinearXMYM_s16_u16XMs16YM_Cnt | TS | -- | |||||||||||||||
B | Param | Param | Param | Param | I/P5 | I/P6 | I/P7 | I/P8 | I/P9 | I/P10 | I/P11 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | BS4 | input4 | BSsize4 | Xsize4 | BilinearXMYM_s16_u16XMs16YM_Cnt_BSTbl[3] | BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl1[3] | BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl2[3] | BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl3[3] | BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl1[3] | BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl2[3] | BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl3[3] | BilinearXMYM_s16_u16XMs16YM_Cnt | BilinearXMYM_s16_u16XMs16YM_Cnt | P/F | CPU Cycles | |
1 | param 1 min | 0 | 1231 | 3 | 3 | 2563 , 4739 , 6960 | 4444 , 4444 ,4444 | 3333 , 3333 ,3333 | 1628 , 2839 , 3839 | -6459, -6459 ,-6459 | 4683 , 5894 , 2829 | 2627 , 8942 , 2782 | -- | -6459 | -- | ||
2 | param 1 max | 65535 | 4342 | 3 | 3 | 2685 , 5689 , 6890 | 5555 , 5555 ,5555 | 3422 , 4728 , 1272 | 8494 , 2782 , 5894 | 4232, 4232 ,4232 | 4232, 4232 ,4232 | -6282 , -2892 , -2829 | -- | -6282 | -- | ||
3 | param 1 pos | 5525 | 7885 | 3 | 3 | 4173 , 4580 , 4890 | 3637 , 3637 ,3637 | 6890 , 2839 , 6895 | 9505 , 6950 , 3739 | 2521 , 2521 ,2521 | 2521 , 2521 ,2521 | -12345, -12345 , -12345 | -- | -12345 | -- | ||
4 | param 2 min | 4244 | 0 | 3 | 3 | 3829 , 6893 , 2303 | 52636 , 52636 ,52636 | 5172 , 5899 , 1783 | 6749 , 2839 , 7849 | 1312 , 1312 ,1312 | 1312 , 1312 ,1312 | -2637, -2637 ,-2637 | -- | -2637 | -- | ||
5 | param 2 max | 321 | 65535 | 3 | 3 | 7850 , 2783 , 5905 | 5555 , 5555 ,5555 | 5262 , 7283 , 8950 | 1629 , 7849 , 3840 | -2637, -2637 ,-2637 | -2637, -2637 ,-2637 | 8546, 8546 ,8546 | -- | -2637 | -- | ||
6 | param 2 pos | 7567 | 4233 | 3 | 3 | 1839 , 2789 , 4840 | 1000, 1000 ,1000 | 4234 , 3783 , 2628 | 8590 , 2834 , 6950 | 8546, 8546 ,8546 | 8546, 8546 ,8546 | -9484, -9484 ,-9484 | -- | -9484 | -- | ||
7 | param 3 default | 4234 | 8769 | 3 | 3 | 3895 , 6899 , 5905 | 1432 , 1432, 1432 | 1628 , 2839 , 3839 | 2738 , 6956 , 2784 | -9484, -9484 ,-9484 | -9484, -9484 ,-9484 | -3744, -3744 , -3744 | -- | -9484 | -- | ||
8 | param 4 deafult | 787 | 4323 | 3 | 3 | 8660 , 6950 , 3638 | 2525, 2525, 2525 | 8494 , 2782 , 5894 | 8595 , 2849 , 6956 | -3744, -3744 ,-3744 | -3744, -3744 ,-3744 | 17633, 17633 ,17633 | -- | -3744 | -- | ||
9 | I/p 5 min | 4234 | 2266 | 3 | 3 | 0 , 0, 0 | 1122, 1122, 1122 | 9505 , 6950 , 3739 | 2733 , 5990 , 2839 | 17633, 17633 ,17633 | 17633, 17633 ,17633 | 26385, 26385 ,26384 | -- | 17633 | -- | ||
10 | I/p 5 max | 6456 | 2423 | 3 | 3 | 65535 , 65535 , 65535 | 4633 , 4633 ,4633 | 6749 , 2839 , 7849 | 9505 , 2849 , 6905 | 26385, 26385 ,26385 | 26385, 26385 ,26385 | -7236, -7236 ,-7236 | -- | 26385 | -- | ||
11 | I/p 5 pos | 3123 | 7567 | 3 | 3 | 1111 , 2222 , 3333 | 6478 , 6478 ,6478 | 1629 , 7849 , 3840 | 8934 , 4984 , 2849 | -7236, -7236 ,-7236 | -7236, -7236 ,-7236 | 5820, 5820 ,5820 | -- | 3352 | -- | ||
12 | I/p 6 min | 7897 | 8678 | 3 | 3 | 7432 , 7432 , 7432 | 0 , 0, 0 | 8590 , 2834 , 6950 | 2839 , 5895 ,2933 | 5820, 5820 ,5820 | 5820, 5820 ,5820 | 17552, 17552 ,17552 | -- | 5820 | -- | ||
13 | I/p 6 max | 5234 | 9087 | 3 | 3 | 26327 , 26327 ,26327 | 65535 , 65535 , 65535 | 2738 , 6956 , 2784 | 4849 , 128 , 2829 | 17552, 17552 ,17552 | 17552, 17552 ,17552 | 27544, 27544 ,27544 | -- | 17552 | -- | ||
14 | I/p 6 pos | 8979 | 423 | 3 | 3 | 37382 , 37382 , 37382 | 2345 , 3456 , 4567 | 8595 , 2849 , 6956 | 3333 , 3333 ,3333 | 27544, 27544 ,27544 | 27544, 27544 ,27544 | -6439, -6439 ,-6439 | -- | 27544 | -- | ||
15 | I/p 9 min | 5353 | 2522 | 3 | 3 | 42769 , 42769 ,42769 | 3333 , 3333 ,3333 | 2733 , 5990 , 2839 | 3422 , 4728 , 1272 | -32768 , -32768 , -32768 | -6439, -6439 ,-6439 | -6459, -6459 ,-6459 | -- | -32768 | -- | ||
16 | I/p 9 max | 9075 | 5222 | 3 | 3 | 52636 , 52636 ,52636 | 3422 , 4728 , 1272 | 9505 , 2849 , 6905 | 6890 , 2839 , 6895 | 32767 , 32767 , 32767 | -6459, -6459 ,-6459 | 4232, 4232 ,4232 | -- | 32767 | -- | ||
17 | I/p 9 zero | 4256 | 24523 | 3 | 3 | 5555 , 5555 ,5555 | 6890 , 2839 , 6895 | 8934 , 4984 , 2849 | 5172 , 5899 , 1783 | 0 , 0 , 0 | 4232, 4232 ,4232 | -6282 , -2627 , -2782 | -- | 0 | -- | ||
18 | I/p 9 neg | 4554 | 7564 | 3 | 3 | 3637 , 3637 ,3637 | 5172 , 5899 , 1783 | 2839 , 5895 ,2933 | 5262 , 7283 , 8950 | -1111 , -2222 , -3333 | 2521 , 2521 ,2521 | 7239 , 4893 , 1282 | -- | -2222 | -- | ||
19 | I/p 9 pos | 4128 | 4211 | 3 | 3 | 2754 , 2754 ,2754 | 5262 , 7283 , 8950 | 4849 , 128 , 2829 | 4234 , 3783 , 2628 | 2345 , 4567 , 5643 | 1312 , 1312 ,1312 | -7292 , -2789 , -2829 | -- | 2345 | -- | ||
20 | All min | 0 | 0 | 3 | 3 | 0 , 0, 0 | 0 , 0, 0 | 0 , 0, 0 | 0 , 0, 0 | -32768 , -32768 , -32768 | -32768 , -32768 , -32768 | -32768 , -32768 , -32768 | -- | -32768 | -- | ||
21 | All max | 65535 | 65535 | 3 | 3 | 65535 , 65535 , 65535 | 65535 , 65535 , 65535 | 65535 , 65535 , 65535 | 65535 , 65535 , 65535 | 32767 , 32767 , 32767 | 32767 , 32767 , 32767 | 32767 , 32767 , 32767 | -- | 32767 | -- | ||
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | 0 | ||||
Number Of Calibration Sets | 0 | ||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
BilinearXMYM_s16_s16XMs16YM_Cnt | B | 25 | BilinearXMYM_s16_s16XMs16YM_Cnt_BSTbl[3] | ||
BilinearXMYM_s16_s16XMs16YM_Cnt | P | 9 | BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl1[3] | ||
BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl2[3] | |||||
BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl3[3] | |||||
BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl1[3] | |||||
BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl2[3] | |||||
BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl3[3] |
BilinearXMYM_s16_s16XMs16YM_Cnt | TS | -- | |||||||||||||||
P | Param1 | Param2 | Param3 | Param4 | I/P5 | I/P6 | I/P7 | I/P8 | I/P9 | I/P10 | I/P11 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | BS5 | input5 | BSsize5 | Xsize5 | BilinearXMYM_s16_s16XMs16YM_Cnt_BSTbl[3] | BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl1[3] | BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl2[3] | BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl3[3] | BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl1[3] | BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl2[3] | BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl3[3] | BilinearXMYM_s16_s16XMs16YM_Cnt | BilinearXMYM_s16_s16XMs16YM_Cnt | P/F | CPU Cycles | |
1 | (BS <= BSTbl[0])=True and (input <= XMTbl[BSindex*Xsize])=False and (input >= XMTbl[(BSindex*Xsize)+Xsize-1])=True and ((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1]) =True && (X1index > 0))=True and ((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1]) =True && (X1index > 0))=False and (input2 <= XMTbl[(BSindex+1)*Xsize])=False and (input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=True and ((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) =False&& (X2index > 0)) and ((sint32)Denominator_f32 == 0)=True and (Output_f32>=0)=True | 0 | 2000 | 3 | 3 | 3441 , 5552 , 5252 | -12345, -12345 , -12345 | 1567 , 8922 , 1781 | -6292 , -1278 , -1681 | 562 , 7191 , 1781 | -618 , -178 , -729 | 5712 , 7189 , 1718 | -- | 562 | -- | ||
2 | (BS <= BSTbl[0])=False and (BS >= BSTbl[BSsize-1])=True and (BSTbl[BSindex] == BSTbl[BSindex+1]=False && (BSindex > 0)) and (input2 <= XMTbl[(BSindex+1)*Xsize])=True and (Output_f32>=0)=False | 65535 | -2000 | 3 | 3 | 6363 , 8349 , 3834 | -2637, -2637 ,-2637 | -6459, -6459 ,-6459 | -571 , -1781 , -1781 | 1567 , 8922 , 1781 | -6292 , -1278 , -1681 | -6188 , -1671 , -8292 | -- | -6292 | -- | ||
3 | (input <= XMTbl[BSindex*Xsize])=True | 1234 | 3000 | 3 | 3 | 6383 , 2782 , 282 | 8546, 8546 ,8546 | 4232, 4232 ,4232 | 4232, 4232 ,4232 | -6459, -6459 ,-6459 | -571 , -1781 , -1781 | 378 , 783 , 580 | -- | -6459 | -- | ||
4 | ((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) =True && (X2index > 0))=True and ((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1])=True && (X2index > 0))=False | 4234 | 32767 | 3 | 3 | 480 , 378 , 282 | -3744, -3744 , -3744 | 1312 , 1312 ,1312 | 1312 , 1312 ,1312 | 2521 , 2521 ,2521 | 2521 , 2521 ,2521 | -571 , -1781 , -1781 | -- | 2521 | -- | ||
5 | (BSTbl[BSindex] == BSTbl[BSindex+1]=True && (BSindex > 0))=True and (BSTbl[BSindex] == BSTbl[BSindex+1] =True && (BSindex > 0))=False | 5345 | -4000 | 3 | 3 | 0, 0 , 0 | 27544, 27544 ,27544 | 26385, 26385 ,26385 | 26385, 26385 ,26385 | 17633, 17633 ,17633 | 17633, 17633 ,17633 | -9484, -9484 ,-9484 | -- | 17633 | -- | ||
6 | (BS >= BSTbl[BSsize-1])=False and ( BSTbl[BSindex+1] < BS )=True and ( BSTbl[BSindex+1] < BS )=False | 4234 | -5000 | 3 | 3 | 2345 , 3456 , 4567 | -6459, -6459 ,-6459 | 5820, 5820 ,5820 | 5820, 5820 ,5820 | -7236, -7236 ,-7236 | -7236, -7236 ,-7236 | 17633, 17633 ,17633 | -- | -7236 | -- | ||
7 | ((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1]) =False&& (X1index > 0)) and ((sint32)Denominator_f32 == 0)=False | 4234 | 5228 | 3 | 3 | 7292 , 4279 , 2678 | -1581 , -2683 , -1270 | -6282 , -2782 , -2768 | 2628 , 1819 , 3782 | -2222 , -3333 , -4444 | -6459, -6459 ,-6459 | 2521 , 2521 ,2521 | -- | -4444 | -- | ||
8 | (input >= XMTbl[(BSindex*Xsize)+Xsize-1])=False and ( XMTbl[(BSindex*Xsize)+X1index+1] < input )=True and ( XMTbl[(BSindex*Xsize)+X1index+1] < input )=False and (input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=False and ( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=False | 0 | 2000 | 3 | 3 | 3441 , 5552 , 5252 | -12345, -12345 , 2100 | 1567 , 8922 , 1781 | -6292 , -1278 , -1681 | 562 , 7191 , 1781 | -618 , -178 , -729 | 5712 , 7189 , 1718 | -- | 1818 | -- | ||
9 | ( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=True | 0 | 2000 | 3 | 3 | 3441 , 5552 , 5252 | -12345, -12345 , 2100 | 1567 , 1900 , 2100 | -6292 , -1278 , -1681 | 562 , 7191 , 1781 | -618 , -178 , -729 | 5712 , 7189 , 1718 | -- | 1818 | -- | ||
BilinearXMYM_s16_s16XMs16YM_Cnt | TS | -- | |||||||||||||||
B | Param1 | Param2 | Param3 | Param4 | I/P5 | I/P6 | I/P7 | I/P8 | I/P9 | I/P10 | I/P11 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | BS5 | input5 | BSsize5 | Xsize5 | BilinearXMYM_s16_s16XMs16YM_Cnt_BSTbl[3] | BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl1[3] | BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl2[3] | BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl3[3] | BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl1[3] | BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl2[3] | BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl3[3] | BilinearXMYM_s16_s16XMs16YM_Cnt | BilinearXMYM_s16_s16XMs16YM_Cnt | P/F | CPU Cycles | |
1 | param 1 min | 0 | 2000 | 3 | 3 | 3441 , 5552 , 5252 | -12345, -12345 , -12345 | 1567 , 8922 , 1781 | -6292 , -1278 , -1681 | 562 , 7191 , 1781 | -618 , -178 , -729 | 5712 , 7189 , 1718 | -- | 562 | -- | ||
2 | param 1 max | 65535 | -2000 | 3 | 3 | 6363 , 8349 , 3834 | -2637, -2637 ,-2637 | -6459, -6459 ,-6459 | -571 , -1781 , -1781 | 1567 , 8922 , 1781 | -6292 , -1278 , -1681 | -6188 , -1671 , -8292 | -- | -6292 | -- | ||
3 | param 1 pos | 1234 | 3000 | 3 | 3 | 6383 , 2782 , 282 | 8546, 8546 ,8546 | 4232, 4232 ,4232 | 4232, 4232 ,4232 | -6459, -6459 ,-6459 | -571 , -1781 , -1781 | 378 , 783 , 580 | -- | -6459 | -- | ||
4 | param 2 min | 6336 | -32768 | 3 | 3 | 4939 , 2782 , 1829 | -9484, -9484 ,-9484 | 2521 , 2521 ,2521 | 2521 , 2521 ,2521 | 4232, 4232 ,4232 | 4232, 4232 ,4232 | -6292 , -1278 , -1681 | -- | 4232 | -- | ||
5 | param 2 max | 4234 | 32767 | 3 | 3 | 480 , 378 , 282 | -3744, -3744 , -3744 | 1312 , 1312 ,1312 | 1312 , 1312 ,1312 | 2521 , 2521 ,2521 | 2521 , 2521 ,2521 | -571 , -1781 , -1781 | -- | 2521 | -- | ||
6 | param 2 zero | 7567 | 0 | 3 | 3 | 719 , 378 , 278 | 17633, 17633 ,17633 | -2637, -2637 ,-2637 | -2637, -2637 ,-2637 | 1312 , 1312 ,1312 | 1312 , 1312 ,1312 | 4232, 4232 ,4232 | -- | 1312 | -- | ||
7 | param 2 neg | 5234 | -1000 | 3 | 3 | 719 , 182 , 499 | 26385, 26385 ,26384 | 8546, 8546 ,8546 | 8546, 8546 ,8546 | -2637, -2637 ,-2637 | -2637, -2637 ,-2637 | 2521 , 2521 ,2521 | -- | -2637 | -- | ||
8 | param 2 pos | 8567 | 1000 | 3 | 3 | 571 , 2379 , 7892 | -7236, -7236 ,-7236 | -9484, -9484 ,-9484 | -9484, -9484 ,-9484 | 8546, 8546 ,8546 | 8546, 8546 ,8546 | 1312 , 1312 ,1312 | -- | 8546 | -- | ||
9 | param 3 default | 4234 | -2300 | 3 | 3 | 6128 , 1781 , 3789 | 5820, 5820 ,5820 | -3744, -3744 ,-3744 | -3744, -3744 ,-3744 | -9484, -9484 ,-9484 | -9484, -9484 ,-9484 | -2637, -2637 ,-2637 | -- | -9484 | -- | ||
10 | param 4 default | 6622 | 4000 | 3 | 3 | 2280 , 1729 , 3891 | 17552, 17552 ,17552 | 17633, 17633 ,17633 | 17633, 17633 ,17633 | -3744, -3744 ,-3744 | -3744, -3744 ,-3744 | 8546, 8546 ,8546 | -- | -3744 | -- | ||
11 | I/p 5 min | 5345 | -4000 | 3 | 3 | 0, 0 , 0 | 27544, 27544 ,27544 | 26385, 26385 ,26385 | 26385, 26385 ,26385 | 17633, 17633 ,17633 | 17633, 17633 ,17633 | -9484, -9484 ,-9484 | -- | 17633 | -- | ||
12 | I/p 5 max | 7567 | 5000 | 3 | 3 | 65535 , 65535 , 65535 | -6439, -6439 ,-6439 | -7236, -7236 ,-7236 | -7236, -7236 ,-7236 | 26385, 26385 ,26385 | 26385, 26385 ,26385 | -3744, -3744 ,-3744 | -- | 26385 | -- | ||
13 | I/p 5 pos | 4234 | -5000 | 3 | 3 | 2345 , 3456 , 4567 | -6459, -6459 ,-6459 | 5820, 5820 ,5820 | 5820, 5820 ,5820 | -7236, -7236 ,-7236 | -7236, -7236 ,-7236 | 17633, 17633 ,17633 | -- | -7236 | -- | ||
14 | I/p 6 min | 6756 | 6000 | 3 | 3 | 1512 , 3939 , 2923 | -32768 , -32768 , -32768 | 17552, 17552 ,17552 | 17552, 17552 ,17552 | 5820, 5820 ,5820 | 5820, 5820 ,5820 | 26385, 26385 ,26385 | -- | 5820 | -- | ||
15 | I/p 6 max | 5256 | -6000 | 3 | 3 | 7383 , 3930 , 2728 | 32767 , 32767 , 32767 | 27544, 27544 ,27544 | 27544, 27544 ,27544 | 17552, 17552 ,17552 | 17552, 17552 ,17552 | -7236, -7236 ,-7236 | -- | 17552 | -- | ||
16 | I/p 6 zero | 2412 | 7000 | 3 | 3 | 6383 , 2930 , 4904 | 0 , 0, 0 | -6439, -6439 ,-6439 | -6439, -6439 ,-6439 | 27544, 27544 ,27544 | 27544, 27544 ,27544 | 5820, 5820 ,5820 | -- | 27544 | -- | ||
17 | I/p 6 neg | 6789 | -7000 | 3 | 3 | 6289 , 9402 , 4789 | -2222 , -3333 , -4444 | -6459, -6459 ,-6459 | -6459, -6459 ,-6459 | -6439, -6439 ,-6439 | -6439, -6439 ,-6439 | 17552, 17552 ,17552 | -- | -6439 | -- | ||
18 | I/p 6 pos | 9086 | 8000 | 3 | 3 | 2799 , 4789, 3783 | 4839 , 3812 , 4894 | 4232, 4232 ,4232 | 4232, 4232 ,4232 | -6459, -6459 ,-6459 | -6459, -6459 ,-6459 | 27544, 27544 ,27544 | -- | -6459 | -- | ||
19 | I/p 9 min | 1242 | -8000 | 3 | 3 | 1638 , 3489 , 4789 | 6282 , 1782 , 3839 | 2521 , 2521 ,2521 | 2521 , 2521 ,2521 | -32768 , -32768 , -32768 | 4232, 4232 ,4232 | -6439, -6439 ,-6439 | -- | -32768 | -- | ||
20 | I/p 9 max | 6467 | 9000 | 3 | 3 | 1792 , 4893 , 27899 | -1581 , -1278 , -1781 | 1312 , 1312 ,1312 | 1312 , 1312 ,1312 | 32767 , 32767 , 32767 | 2521 , 2521 ,2521 | -6459, -6459 ,-6459 | -- | 2521 | -- | ||
21 | I/p 9 zero | 7809 | -9000 | 3 | 3 | 1638 , 7493 , 7849 | 5282 , 1819 , 3820 | 4232 , 729, 8292 | -6459, -6459 ,-6459 | 0 , 0, 0 | 1312 , 1312 ,1312 | 4232, 4232 ,4232 | -- | 1312 | -- | ||
22 | I/p 9 neg | 4234 | 5228 | 3 | 3 | 7292 , 4279 , 2678 | -1581 , -2683 , -1270 | -6282 , -2782 , -2768 | 2628 , 1819 , 3782 | -2222 , -3333 , -4444 | -6459, -6459 ,-6459 | 2521 , 2521 ,2521 | -- | -4444 | -- | ||
23 | I/p 9 pos | 3454 | -3478 | 3 | 3 | 4794 , 7830 , 2782 | 618 , 178 , 389 | 681 , 168 , 1891 | -1576 , -2782 , -1278 | 4839 , 3812 , 4894 | 2628 , 1819 , 3782 | -618 , -5618 , -1781 | -- | 4839 | -- | ||
24 | All min | 0 | -32768 | 3 | 3 | 0, 0 , 0 | -32768 , -32768 , -32768 | -32768 , -32768 , -32768 | -32768 , -32768 , -32768 | -32768 , -32768 , -32768 | -32768 , -32768 , -32768 | -32768 , -32768 , -32768 | -- | -32768 | -- | ||
25 | All max | 65535 | 32767 | 3 | 3 | 65535 , 65535 , 65535 | 32767 , 32767 , 32767 | 32767 , 32767 , 32767 | 32767 , 32767 , 32767 | 32767 , 32767 , 32767 | 32767 , 32767 , 32767 | 32767 , 32767 , 32767 | -- | 32767 | -- | ||
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | 0 | ||||
Number Of Calibration Sets | 0 | ||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
IntplVarXY_u16_u16Xu16Y_Cnt | B | 12 | IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4] | ||
IntplVarXY_u16_u16Xu16Y_Cnt | P | 3 | IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4] |
IntplVarXY_u16_u16Xu16Y_Cnt | TS | -- | ||||||||
P | Param1 | Param2 | I/P3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | Size6 | input6 | IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4] | IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4] | IntplVarXY_u16_u16Xu16Y_Cnt | IntplVarXY_u16_u16Xu16Y_Cnt | P/F | CPU Cycles | |
1 | ( input <= TableX[0] )=True | 4 | 53 | 6289 , 1801 , 3489 , 6383 | 6282 , 1829 , 8904 , 6171 | -- | 6282 | -- | ||
2 | ( input <= TableX[0] )=False and ( input >= TableX[Size-1] )=True | 4 | 65535 | 8393 , 1781 , 3479 , 8393 | 1839 , 4903 , 2789 ,3782 | -- | 3782 | -- | ||
3 | ( input >= TableX[Size-1] )=False and ( TableX[index+1] < input )=True and ( TableX[index+1] < input )=False and (diffX == 0)=False | 4 | 3000 | 2500 , 1781 , 3479 , 3500 | 1839 , 4903 , 2789 ,1811 | -- | 3386 | -- | ||
IntplVarXY_u16_u16Xu16Y_Cnt | TS | -- | ||||||||
B | Param1 | Param2 | I/P3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | Size6 | input6 | IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4] | IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4] | IntplVarXY_u16_u16Xu16Y_Cnt | IntplVarXY_u16_u16Xu16Y_Cnt | P/F | CPU Cycles | |
1 | param 1 default | 4 | 53 | 6289 , 1801 , 3489 , 6383 | 6282 , 1829 , 8904 , 6171 | -- | 6282 | -- | ||
2 | param 2 min | 4 | 0 | 2379 , 3789 , 2892 , 8390 | 7292 , 2380 , 2892 , 7111 | -- | 7292 | -- | ||
3 | param 2 max | 4 | 65535 | 8393 , 1781 , 3479 , 8393 | 1839 , 4903 , 2789 ,3782 | -- | 3782 | -- | ||
4 | param 2 pos | 4 | 1234 | 1738 , 805 , 12791 , 8933 | 4890 , 2892 , 3905 , 7128 | -- | 4890 | -- | ||
5 | I/p 3 min | 4 | 3424 | 0 , 0, 0 ,0 | 8022 , 2902 , 1289 ,1781 | -- | 1781 | -- | ||
6 | I/p 3 max | 4 | 4231 | 65535 , 65535 , 65535 ,65535 | 6283 , 1902 , 1890 , 8129 | -- | 6283 | -- | ||
7 | I/p 3 pos | 4 | 65 | 1111 , 2222, 3333 , 6289 | 7292 , 3890 , 2892 ,7282 | -- | 7292 | -- | ||
8 | I/p 4 min | 4 | 343 | 2345 , 56212 , 2782 , 7893 | 0 , 0, 0 ,0 | -- | 0 | -- | ||
9 | I/p 4 max | 4 | 8679 | 1671 , 3893 , 189 , 7822 | 65535 , 65535 , 65535 ,65535 | -- | 65535 | -- | ||
10 | I/p 4 pos | 4 | 2111 | 2682 , 1891 , 3893 , 7829 | 4444 , 5555, 6666 ,7829 | -- | 4444 | -- | ||
11 | All min | 4 | 0 | 0 , 0, 0 , 0 | 0 , 0, 0 , 0 | -- | 0 | -- | ||
12 | All max | 4 | 65535 | 65535 , 65535 , 65535 ,65535 | 65535 , 65535 , 65535 ,65535 | -- | 65535 | -- | ||
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | 0 | ||||
Number Of Calibration Sets | 0 | ||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
IntplVarXY_u16_s16Xu16Y_Cnt | B | 16 | IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3] | ||
IntplVarXY_u16_s16Xu16Y_Cnt | P | 3 | IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3] |
IntplVarXY_u16_s16Xu16Y_Cnt | TS | -- | ||||||||
P | Param1 | Param2 | I/P3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | Size7 | input7 | IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3] | IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3] | IntplVarXY_u16_s16Xu16Y_Cnt | IntplVarXY_u16_s16Xu16Y_Cnt | P/F | CPU Cycles | |
1 | ( input <= TableX[0] )=False and ( input >= TableX[Size-1] )=True | 3 | 443 | -6282 , -2920 , -5738 | 8900 , 6920 , 2682 | -- | 2682 | -- | ||
2 | ( input <= TableX[0] )=True | 3 | -32768 | 7393 , 6282 , 4894 | 3782 , 8923 , 1892 | -- | 3782 | -- | ||
3 | ( input >= TableX[Size-1] )=False and ( TableX[index+1] < input )=True and ( TableX[index+1] < input )=False and (diffX == 0)=False | 3 | 443 | -6282 , -2920 , 500 | 8900 , 6920 , 2682 | -- | 2753 | -- | ||
IntplVarXY_u16_s16Xu16Y_Cnt | TS | -- | ||||||||
B | Param1 | Param2 | I/P3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | Size7 | input7 | IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3] | IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3] | IntplVarXY_u16_s16Xu16Y_Cnt | IntplVarXY_u16_s16Xu16Y_Cnt | P/F | CPU Cycles | |
1 | param 1 default | 3 | 443 | -6282 , -2920 , -5738 | 8900 , 6920 , 2682 | -- | 2682 | -- | ||
2 | param 2 min | 3 | -32768 | 7393 , 6282 , 4894 | 3782 , 8923 , 1892 | -- | 3782 | -- | ||
3 | param 2 max | 3 | 32767 | -6489 , -2768 , -7589 | 3678 , 8303 , 2792 | -- | 2792 | -- | ||
4 | param 2 zero | 3 | 0 | 9373 , 2672 , 5789 | 4000 , 5000 , 6000 | -- | 4000 | -- | ||
5 | param 2 neg | 3 | -1234 | -7353 , -5839 , -1789 | 1000 , 2000 , 3000 | -- | 3000 | -- | ||
6 | param 2 pos | 3 | 234 | 6282 , 8494 , 2791 | 7894 , 6282 , 8022 | -- | 7894 | -- | ||
7 | I/p 3 min | 3 | -4332 | -32768 , -32768 , -32768 | 7289 , 9078 , 3782 | -- | 3782 | -- | ||
8 | I/p 3 max | 3 | 253 | 32767 , 32767 , 32767 | 1782 , 8393 , 8028 | -- | 1782 | -- | ||
9 | I/p 3 zero | 3 | -4562 | 0, 0, 0 | 5278 , 8940 , 2622 | -- | 5278 | -- | ||
10 | I/p 3 neg | 3 | 255 | -2345 , -5618 , -7891 | 2628 , 1829 , 8504 | -- | 8504 | -- | ||
11 | I/p 3 pos | 3 | -653 | 5278 , 1611 , 1789 | 7832 , 2628 , 8494 | -- | 7832 | -- | ||
12 | I/p 4 min | 3 | 3453 | 1267 , 2571 , 1791 | 0, 0, 0 | -- | 0 | -- | ||
13 | I/p 4 max | 3 | -653 | -1568 , -2629 , -3733 | 65535 , 65535 , 65535 | -- | 65535 | -- | ||
14 | I/p 4 pos | 3 | 2532 | 6393 , 3902 , 7383 | 1111 , 2222 , 3333 | -- | 1111 | -- | ||
15 | All min | 3 | -32768 | -32768 , -32768 , -32768 | 0, 0, 0 | -- | 0 | -- | ||
16 | All max | 3 | 32767 | 32767 , 32767 , 32767 | 65535 , 65535 , 65535 | -- | 65535 | -- | ||
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | 0 | ||||
Number Of Calibration Sets | 0 | ||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
IntplVarXY_s16_s16Xs16Y_Cnt | B | 18 | IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3] | ||
IntplVarXY_s16_s16Xs16Y_Cnt | P | 3 | IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3] |
IntplVarXY_s16_s16Xs16Y_Cnt | TS | -- | ||||||||
P | Param1 | Param2 | I/P3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | Size8 | input8 | IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3] | IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3] | IntplVarXY_s16_s16Xs16Y_Cnt | IntplVarXY_s16_s16Xs16Y_Cnt | P/F | CPU Cycles | |
1 | ( input <= TableX[0] )=False and ( input >= TableX[Size-1] )=True | 3 | 6543 | -7638 , -7494 , -9037 | -733 , -7683 , -8494 | -- | -8494 | -- | ||
2 | ( input <= TableX[0] )=True | 3 | -32768 | 6389 , 8037 , 6892 | 7399 , 7290 , 8044 | -- | 7399 | -- | ||
3 | ( input >= TableX[Size-1] )=False and ( TableX[index+1] < input )=True and ( TableX[index+1] < input )=False and (diffX == 0)=False | 3 | 443 | -6282 , -2920 , 500 | 8900 , 6920 , 2682 | -- | 2753 | -- | ||
IntplVarXY_s16_s16Xs16Y_Cnt | TS | -- | ||||||||
B | Param1 | Param2 | I/P3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | Size8 | input8 | IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3] | IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3] | IntplVarXY_s16_s16Xs16Y_Cnt | IntplVarXY_s16_s16Xs16Y_Cnt | P/F | CPU Cycles | |
1 | param 1 default | 3 | 6543 | -7638 , -7494 , -9037 | -733 , -7683 , -8494 | -- | -8494 | -- | ||
2 | param 2 min | 3 | -32768 | 6389 , 8037 , 6892 | 7399 , 7290 , 8044 | -- | 7399 | -- | ||
3 | param 2 max | 3 | 32767 | -5628 , -7892 , -8937 | 2783 , 7949 , 6389 | -- | 6389 | -- | ||
4 | param 2 zero | 3 | 0 | 5648 , 7037 , 8037 | -5628 , -7238 , -6289 | -- | -5628 | -- | ||
5 | param 2 neg | 3 | -1234 | -7383 , -6849 , -6839 | -6383 , -7289 , -4523 | -- | -4523 | -- | ||
6 | param 2 pos | 3 | 2422 | 6783 , 8003 , 6289 | -7638 , -7494 , -9037 | -- | -7638 | -- | ||
7 | I/p 3 min | 3 | -5544 | -32768 , -32768 , -32768 | 6389 , 8037 , 6892 | -- | 6892 | -- | ||
8 | I/p 3 max | 3 | 4235 | 32767 , 32767 , 32767 | -5628 , -7892 , -8937 | -- | -5628 | -- | ||
9 | I/p 3 zero | 3 | -7443 | 0 , 0, 0 | 5648 , 7037 , 8037 | -- | 5648 | -- | ||
10 | I/p 3 neg | 3 | 2342 | -4176 , -7282 , -6728 | -7383 , -6849 , -6839 | -- | -6839 | -- | ||
11 | I/p 3 pos | 3 | -6343 | 5373 , 4279 , 8037 | 6783 , 8003 , 6289 | -- | 6783 | -- | ||
12 | I/p 4 min | 3 | 3242 | -733 , -7683 , -8494 | -32768 , -32768 , -32768 | -- | -32768 | -- | ||
13 | I/p 4 max | 3 | -6743 | 7399 , 7290 , 8044 | 32767 , 32767 , 32767 | -- | 32767 | -- | ||
14 | I/p 4 zero | 3 | 4234 | 2783 , 7949 , 6389 | 0 , 0, 0 | -- | 0 | -- | ||
15 | I/p 4 neg | 3 | -8744 | -5628 , -7238 , -6289 | -4176 , -7282 , -6728 | -- | -4176 | -- | ||
16 | I/p 4 pos | 3 | 4123 | -6383 , -7289 , -4523 | 5373 , 4279 , 8037 | -- | 8037 | -- | ||
17 | All min | 3 | -32768 | -32768 , -32768 , -32768 | -32768 , -32768 , -32768 | -- | -32768 | -- | ||
18 | All max | 3 | 32767 | 32767 , 32767 , 32767 | 32767 , 32767 , 32767 | -- | 32767 | -- | ||
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | 0 | ||||
Number Of Calibration Sets | 0 | ||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
IntplVarXY_s16_u16Xs16Y_Cnt | B | 14 | IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3] | ||
IntplVarXY_s16_u16Xs16Y_Cnt | P | 3 | IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3] |
IntplVarXY_s16_u16Xs16Y_Cnt | TS | -- | ||||||||
P | Param1 | Param2 | I/P3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | Size9 | input9 | IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3] | IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3] | IntplVarXY_s16_u16Xs16Y_Cnt | IntplVarXY_s16_u16Xs16Y_Cnt | P/F | CPU Cycles | |
1 | ( input <= TableX[0] )=True | 3 | 6433 | 7037 , 7393 , 2890 | 7840 , 8904 , 5683 | -- | 7840 | -- | ||
2 | ( input <= TableX[0] )=False and ( input >= TableX[Size-1] )=True | 3 | 65535 | 2728 , 3893 , 4793 | 8936 , 7893 , 4728 | -- | 4728 | -- | ||
3 | ( input >= TableX[Size-1] )=False and ( TableX[index+1] < input )=True and ( TableX[index+1] < input )=False and (diffX == 0)=False | 3 | 4234 | 3333 , 4000 , 6389 | -6238 , -9628 , -1822 | -- | -8864 | -- | ||
IntplVarXY_s16_u16Xs16Y_Cnt | TS | -- | ||||||||
B | Param1 | Param2 | I/P3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | Size9 | input9 | IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3] | IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3] | IntplVarXY_s16_u16Xs16Y_Cnt | IntplVarXY_s16_u16Xs16Y_Cnt | P/F | CPU Cycles | |
1 | param 1 default | 3 | 6433 | 7037 , 7393 , 2890 | 7840 , 8904 , 5683 | -- | 7840 | -- | ||
2 | param 2 min | 3 | 0 | 8390 , 8037 , 1781 | -8036 , -5637 , -3738 | -- | -8036 | -- | ||
3 | param 2 max | 3 | 65535 | 2728 , 3893 , 4793 | 8936 , 7893 , 4728 | -- | 4728 | -- | ||
4 | param 2 pos | 3 | 6452 | 5729 , 8947 , 3683 | -7937 , -5738 , -7933 | -- | -7933 | -- | ||
5 | I/p 3 min | 3 | 7653 | 0 , 0, 0 | 6830 , 8903 , 5827 | -- | 5827 | -- | ||
6 | I/p 3 max | 3 | 9787 | 65535 , 65535 , 65535 | -7944 , -5683 , -6829 | -- | -7944 | -- | ||
7 | I/p 3 pos | 3 | 3436 | 8356 , 5623 , 8307 | 5782 , 7936 , 2682 | -- | 5782 | -- | ||
8 | I/p 4 min | 3 | 7565 | 9078 , 6383 , 8047 | -32768 , -32768 , -32768 | -- | -32768 | -- | ||
9 | I/p 4 max | 3 | 3423 | 5279 , 8037 , 4894 | 32767 , 32767 , 32767 | -- | 32767 | -- | ||
10 | I/p 4 zero | 3 | 5444 | 7292 , 8037 , 1892 | 0, 0, 0 | -- | 0 | -- | ||
11 | I/p 4 neg | 3 | 4234 | 3333 , 8047 , 6389 | -6238 , -9628 , -1822 | -- | -6885 | -- | ||
12 | I/p 4 pos | 3 | 1231 | 5555 , 6666 , 7777 | 6399 , 7803 , 5893 | -- | 6399 | -- | ||
13 | All min | 3 | 0 | 0 , 0, 0 | -32768 , -32768 , -32768 | -- | -32768 | -- | ||
14 | All max | 3 | 65535 | 65535 , 65535 , 65535 | 32767 , 32767 , 32767 | -- | 32767 | -- | ||
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | 0 | ||||
Number Of Calibration Sets | 0 | ||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
IntplFxdX_u16_u16Xu16Y_Cnt | B | 12 | IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3] | ||
IntplFxdX_u16_u16Xu16Y_Cnt | P | 4 |
IntplFxdX_u16_u16Xu16Y_Cnt | TS | -- | ||||||||
P | Param1 | Param2 | Param3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | DeltaX10 | Size10 | input10 | IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3] | IntplFxdX_u16_u16Xu16Y_Cnt | IntplFxdX_u16_u16Xu16Y_Cnt | P/F | CPU Cycles | |
1 | (DeltaX == 0)=True | 0 | 3 | 24534 | 7917 , 6193 , 8044 | -- | 7917 | -- | ||
2 | (DeltaX == 0)=False and ( input <= 0 )=False and ( input >= DeltaX * (Size-1) )=False | 65535 | 3 | 365 | 100 , 100, 100 | -- | 100 | -- | ||
3 | ( input <= 0 )=True | 564 | 3 | 0 | 7892 , 1682 , 8027 | -- | 7892 | -- | ||
4 | ( input >= DeltaX * (Size-1) )=True | 634 | 3 | 47534 | 6829 , 7936 , 6926 | -- | 6926 | -- | ||
IntplFxdX_u16_u16Xu16Y_Cnt | TS | -- | ||||||||
B | Param1 | Param2 | Param3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | DeltaX10 | Size10 | input10 | IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3] | IntplFxdX_u16_u16Xu16Y_Cnt | IntplFxdX_u16_u16Xu16Y_Cnt | P/F | CPU Cycles | |
1 | param 1 min | 0 | 3 | 24534 | 7917 , 6193 , 8044 | -- | 7917 | -- | ||
2 | param 1 max | 65535 | 3 | 365 | 100 , 100, 100 | -- | 100 | -- | ||
3 | param 1 pos | 3435 | 3 | 544 | 800 , 900 , 1000 | -- | 815 | -- | ||
4 | param 2 default | 634 | 3 | 47534 | 6829 , 7936 , 6926 | -- | 6926 | -- | ||
5 | param 3 min | 564 | 3 | 0 | 7892 , 1682 , 8027 | -- | 7892 | -- | ||
6 | param 3 max | 4324 | 3 | 65535 | 6822 , 7922 , 8027 | -- | 8027 | -- | ||
7 | param 3 pos | 6756 | 3 | 4232 | 111 , 6778 , 7681 | -- | 4287 | -- | ||
8 | I/p 4 min | 4234 | 3 | 6767 | 0 , 0, 0 | -- | 0 | -- | ||
9 | I/p 4 max | 7955 | 3 | 4234 | 65535 , 65535 , 65535 | -- | 65535 | -- | ||
10 | I/p 4 pos | 2643 | 3 | 6456 | 6784 , 7943 , 7689 | -- | 7689 | -- | ||
11 | All min | 0 | 3 | 0 | 0 , 0, 0 | -- | 0 | -- | ||
12 | All max | 65535 | 3 | 65535 | 65535 , 65535 , 65535 | -- | 65535 | -- | ||
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | 0 | ||||
Number Of Calibration Sets | 0 | ||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
IntplFxdX_u16_s16Xu16Y_Cnt | B | 16 | IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3] | ||
IntplFxdX_u16_s16Xu16Y_Cnt | P | 4 |
IntplFxdX_u16_s16Xu16Y_Cnt | TS | -- | ||||||||
P | Param1 | Param2 | Param3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | DeltaX11 | Size11 | input11 | IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3] | IntplFxdX_u16_s16Xu16Y_Cnt | IntplFxdX_u16_s16Xu16Y_Cnt | P/F | CPU Cycles | |
1 | (DeltaX == 0)=False and ( input <= 0 )=False and ( input >= DeltaX * (Size-1) )=True | -32768 | 3 | 4903 | 573 , 7037 , 3789 | -- | 3789 | -- | ||
2 | ( input <= 0 )=True | 32767 | 3 | -5789 | 789 , 7017 , 782 | -- | 789 | -- | ||
3 | (DeltaX == 0)=True | 0 | 3 | -6896 | 68 , 806 , 29 | -- | 68 | -- | ||
4 | ( input >= DeltaX * (Size-1) )=False | 8950 | 3 | 8003 | 1682 , 378 , 793 | -- | 515 | -- | ||
IntplFxdX_u16_s16Xu16Y_Cnt | TS | -- | ||||||||
B | Param1 | Param2 | Param3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | DeltaX11 | Size11 | input11 | IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3] | IntplFxdX_u16_s16Xu16Y_Cnt | IntplFxdX_u16_s16Xu16Y_Cnt | P/F | CPU Cycles | |
1 | param 1 min | -32768 | 3 | 4903 | 573 , 7037 , 3789 | -- | 3789 | -- | ||
2 | param 1 max | 32767 | 3 | -5789 | 789 , 7017 , 782 | -- | 789 | -- | ||
3 | param 1 zero | 0 | 3 | -6896 | 68 , 806 , 29 | -- | 68 | -- | ||
4 | param 1 neg | -6738 | 3 | 1789 | 38 , 89 , 792 | -- | 792 | -- | ||
5 | param 1 pos | 7922 | 3 | -8923 | 783 , 8037 , 783 | -- | 783 | -- | ||
6 | param 2 default | 8950 | 3 | 8003 | 1682 , 378 , 793 | -- | 515 | -- | ||
7 | param 3 min | -7839 | 3 | -32768 | 5793 , 2990 , 8074 | -- | 5793 | -- | ||
8 | param 3 max | 6738 | 3 | 32767 | 7923 , 8036 , 2782 | -- | 2782 | -- | ||
9 | param 3 zero | -6829 | 3 | 0 | 5728 , 8932 , 7937 | -- | 5728 | -- | ||
10 | param 3 neg | 4389 | 3 | -26819 | 5729 , 8037 , 5728 | -- | 5729 | -- | ||
11 | param 3 pos | -7939 | 3 | 7939 | 8593 , 7893 , 8027 | -- | 8027 | -- | ||
12 | I/p 4 min | 2782 | 3 | -5829 | 0, 0, 0 | -- | 0 | -- | ||
13 | I/p 4 max | -5829 | 3 | 1671 | 65535 , 65535 , 65535 | -- | 65535 | -- | ||
14 | I/p 4 pos | 1789 | 3 | -7923 | 7839 , 5738 , 9043 | -- | 7839 | -- | ||
15 | All min | -32768 | 3 | -32768 | 0, 0, 0 | -- | 0 | -- | ||
16 | All max | 32767 | 3 | 32767 | 65535 , 65535 , 65535 | -- | 65535 | -- | ||
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | 0 | ||||
Number Of Calibration Sets | 0 | ||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
IntplFxdX_s16_s16Xs16Y_Cnt | B | 18 | IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3] | ||
IntplFxdX_s16_s16Xs16Y_Cnt | P | 4 |
IntplFxdX_s16_s16Xs16Y_Cnt | TS | -- | ||||||||
P | Param1 | Param2 | Param3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | DeltaX12 | Size12 | input12 | IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3] | IntplFxdX_s16_s16Xs16Y_Cnt | IntplFxdX_s16_s16Xs16Y_Cnt | P/F | CPU Cycles | |
1 | (DeltaX == 0)=False and ( input <= 0 )=True | -32768 | 3 | -1111 | 6833 , 8027 , 5782 | -- | 6833 | -- | ||
2 | ( input <= 0 )=False and ( input >= DeltaX * (Size-1) )=False | 32767 | 3 | 2222 | -5672 , -6821 , -782 | -- | -5749 | -- | ||
3 | (DeltaX == 0)=True | 0 | 3 | -3333 | 3792 , 8090 , 7892 | -- | 3792 | -- | ||
4 | ( input >= DeltaX * (Size-1) )=True | -6839 | 3 | 4444 | -8027 , -6922 , -7020 | -- | -7020 | -- | ||
IntplFxdX_s16_s16Xs16Y_Cnt | TS | -- | ||||||||
B | Param1 | Param2 | Param3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | DeltaX12 | Size12 | input12 | IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3] | IntplFxdX_s16_s16Xs16Y_Cnt | IntplFxdX_s16_s16Xs16Y_Cnt | P/F | CPU Cycles | |
1 | param 1 min | -32768 | 3 | -1111 | 6833 , 8027 , 5782 | -- | 6833 | -- | ||
2 | param 1 max | 32767 | 3 | 2222 | -5672 , -6821 , -782 | -- | -5749 | -- | ||
3 | param 1 zero | 0 | 3 | -3333 | 3792 , 8090 , 7892 | -- | 3792 | -- | ||
4 | param 1 neg | -6839 | 3 | 4444 | -8027 , -6922 , -7020 | -- | -7020 | -- | ||
5 | param 1 pos | 7839 | 3 | -5555 | 5829 , 8027 , 5783 | -- | 5829 | -- | ||
6 | param 2 default | -7484 | 3 | 6666 | -8027 , -7027 , -4027 | -- | -4027 | -- | ||
7 | param 3 min | 6839 | 3 | -32768 | 5892 , 2789 , 1781 | -- | 5892 | -- | ||
8 | param 3 max | -2728 | 3 | 32767 | -7922 , -6811 , -5702 | -- | -5702 | -- | ||
9 | param 3 zero | 1000 | 3 | 0 | 5729 , 8027 , 1671 | -- | 5729 | -- | ||
10 | param 3 neg | -2000 | 3 | -5839 | -5729 , -7922 , -1678 | -- | -5729 | -- | ||
11 | param 3 pos | 3000 | 3 | 8926 | 6829 , 2782 , 7027 | -- | 7027 | -- | ||
12 | I/p 4 min | -4000 | 3 | -7777 | -32768 , -32768 , -32768 | -- | -32768 | -- | ||
13 | I/p 4 max | 5000 | 3 | 8888 | 32767 , 32767 , 32767 | -- | 32767 | -- | ||
14 | I/p 4 zero | -6000 | 3 | -9999 | 0, 0, 0 | -- | 0 | -- | ||
15 | I/p 4 neg | 7000 | 3 | 6545 | -7683 , -3527 , -8936 | -- | -3798 | -- | ||
16 | I/p 4 pos | -8000 | 3 | -5764 | 4763 , 6822 , 8903 | -- | 4763 | -- | ||
17 | All min | -32768 | 3 | -32768 | -32768 , -32768 , -32768 | -- | -32768 | -- | ||
18 | All max | 32767 | 3 | 32767 | 32767 , 32767 , 32767 | -- | 32767 | -- | ||
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | 0 | ||||
Number Of Calibration Sets | 0 | ||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
IntplFxdX_s16_u16Xs16Y_Cnt | B | 14 | IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3] | ||
IntplFxdX_s16_u16Xs16Y_Cnt | P | 4 |
IntplFxdX_s16_u16Xs16Y_Cnt | TS | -- | ||||||||
P | Param1 | Param2 | Param3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | DeltaX13 | Size13 | input13 | IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3] | IntplFxdX_s16_u16Xs16Y_Cnt | IntplFxdX_s16_u16Xs16Y_Cnt | P/F | CPU Cycles | |
1 | (DeltaX == 0)=True | 0 | 3 | 4444 | 6782 , 8027 , 2682 | -- | 6782 | -- | ||
2 | (DeltaX == 0)=False and ( input <= 0 )=False and ( input >= DeltaX * (Size-1) )=False | 65535 | 3 | 65533 | 32765 , 32765 , 32765 | -- | 32765 | -- | ||
3 | ( input <= 0 )=True | 1344 | 3 | 0 | 15761 , 6789 , 2892 | -- | 15761 | -- | ||
4 | ( input >= DeltaX * (Size-1) )=True | 645 | 3 | 65535 | -6822 , -2682 , -7802 | -- | -7802 | -- | ||
IntplFxdX_s16_u16Xs16Y_Cnt | TS | -- | ||||||||
B | Param1 | Param2 | Param3 | I/P4 | Function Return Val | Expected Return Val | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | DeltaX13 | Size13 | input13 | IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3] | IntplFxdX_s16_u16Xs16Y_Cnt | IntplFxdX_s16_u16Xs16Y_Cnt | P/F | CPU Cycles | |
1 | param 1 min | 0 | 3 | 4444 | 6782 , 8027 , 2682 | -- | 6782 | -- | ||
2 | param 1 max | 65535 | 3 | 65533 | 32765 , 32765 , 32765 | -- | 32765 | -- | ||
3 | param 1 pos | 4553 | 3 | 2222 | 5785 , 7899 , 9047 | -- | 6816 | -- | ||
4 | param 2 default | 123 | 3 | 111 | -600 , -600 , -600 | -- | -600 | -- | ||
5 | param 3 min | 1344 | 3 | 0 | 15761 , 6789 , 2892 | -- | 15761 | -- | ||
6 | param 3 max | 645 | 3 | 65535 | -6822 , -2682 , -7802 | -- | -7802 | -- | ||
7 | param 3 pos | 4234 | 3 | 6342 | 8853 , 8027 , 3728 | -- | 5887 | -- | ||
8 | I/p 4 min | 9780 | 3 | 100 | -32768 , -32768 , -32768 | -- | -32768 | -- | ||
9 | I/p 4 max | 5345 | 3 | 200 | 32767 , 32767 , 32767 | -- | 32767 | -- | ||
10 | I/p 4 zero | 6435 | 3 | 300 | 0, 0, 0 | -- | 0 | -- | ||
11 | I/p 4 neg | 4123 | 3 | 400 | -7282 , -6822 , -6922 | -- | -7238 | -- | ||
12 | I/p 4 pos | 9890 | 3 | 500 | 6238 , 8903 , 2562 | -- | 6372 | -- | ||
13 | All min | 0 | 3 | 0 | -32768 , -32768 , -32768 | -- | -32768 | -- | ||
14 | All max | 65535 | 3 | 65535 | 32767 , 32767 , 32767 | -- | 32767 | -- | ||