1.1 - Data Dictionary


Overview

Change Log
Variable Dictionary
Calibration Dictionary
Global Constants
Template
Help


Sheet 1: Change Log

Metrics - Rev 2<- Global Program / Module Name


RevisionAuthorDateChange Description

Data Dictionary Type:Component
1JJW1-Feb-12Initial version



2BWL1-Jul-12Modified variables changed with PMU integration, and filled out existing information.




















































































































































































































































































































































Sheet 2: Variable Dictionary

Metrics - Rev 2

IOMDN
Variable Information

YN










Range










Software Variable NameStandard Reference NameFDD ReferenceDescription[I]nput [O]uput [M]oduleInternal [D]isplay [N]onVolatileMemory UsageOEM1X, 1Y, 1Z, 1I, 1BS 2X, 2Y, 2Z, 2I, 2BS etc Graph SettingsInitalization ValueMinMaxResolutionUnit Test Tolerance (+/-)UnitsType






Variables



















CDD_MetricsTraceIdx_Cnt_G_u16NoneNoneFirst unused index in MetricsTrace array.MN
00D_MAXTRACEEVT_CNT_U16


uint16






CDD_MetricsTraceOffset_uS_G_u32NoneNoneTime taken for system to reach GPT init.MN
D_HWSTARTUP_US_U160


uSuint32






CDD_MetricsTrace_Cnt_G_Str[D_MAXTRACEEVT_CNT_U16]NoneNoneList of time to reach trace points.MN
00



MetricTrace_Str[]






Metrics_CpuUse_Pct_M_f32NoneNoneOverall CPU utilization.DN
1000100

%float32






Metrics_StackUse_Cnt_M_u16[osdNumberOfAllTasks]NoneNoneMax used stack space.DN
0065536

Bytesuint16






Metrics_StackSize_Cnt_M_u16[osdNumberOfAllTasks]NoneNoneSize of each task stackDN
0065536

Bytesuint16






Metrics_ActiveTask_Cnt_M_u16NoneNoneCurrently executing task.MN
Task_Bkgnd0d_NumberofTasks_Cnt_u16


uint16






Metrics_ActiveRunnable_Cnt_M_u16NoneNoneRunnable currently exectuing in active task.MN
d_NumberofRunnables_Cnt_u160d_NumberofRunnables_Cnt_u16


uint16






Metrics_TaskTimes_Str[d_NumberofTasks_Cnt_u16]NoneNoneArray structure containing task metrics.DN
0




TaskMetric_Type*






Metrics_RunnableTimes_Str[d_NumberofTasks_Cnt_u16]NoneNoneArray structure containing runnable metrics.DN
0




RunnableMetric_Type*






Metrics_BkgndLoopTimeMax_Cnt_M_u32NoneNoneLongest period of time spent in the background.DN
004294967296


uint32






Metrics_LastStackUseCalc_uS_M_u32NoneNoneTime of last stack use calculation.MN
004294967296


uint32


































































































































































































































































































































Sheet 3: Calibration Dictionary

Metrics - Rev 2


N
Calibration Information

Achieved in Software Design


Y








Range




P
Software Calibration NameStandard Reference NameFDD ReferenceDescriptionTuning SetOEM1X, 1Y, 1Z, 1I, 1BS 2X, 2Y, 2Z, 2I, 2BS etc Graph SettingsDefault ValueMinMaxUnitsType



Calibrations














k_CpuUseUpdateInterval_uS_u32NoneNoneTime between normalized metrics calculation.NN
1000000026843545uSuint32



k_StackUseUpdateInterval_uS_u32NoneNoneTime between stack use check.NN
1000000026843545uSuint32



k_CpuUseProcessMask_Cnt_b32[d_NumberofTasks_Cnt_u16/32+1]NoneNoneEnable/Disable normalized time calculation for a task.NN
0xFFFFFFFF

Cntuint32



k_MetricsTestEnable_Cnt_lgcNoneNone
NN
FALSE

lgcboolean



k_TaskTimeFilterK_Uls_f32[d_NumberofTasks_Cnt_u16]NoneNone
NN
0

Ulsfloat32




Sheet 4: Global Constants

Metrics - Rev 2








































































Variable Information (Global Variables Only)

Achieved in Software DesignUsed in Module List





Layer 2Layer 3Layer 4Layer 5
Constant NameDescriptionUintsTypeEngineering ValueADCADC DiagnosticsData Memory VerificationDC Link Power ControlDSP Computational IntegrityDSP SPI driverEvent Manager DriverExternal Memory DriverFlash Programming ExecGPIOIllegal OpCode HandlerInterrupt HandlerMotor Current DriverMotor Driver DiagnosticsMotor Position DriverPhase Feedback CapturePowerdown ControlPrimary Shutdown ControlProgram FlowProgram Memory DiagnosticPWM Duty CycleRedundant Memory CheckRedundant Rapid ShutdownSchedulerStack MonitorState Dependent Task ListSystem Boot & StartupSystem ControlTemperature Sensor DiagnosticUnused Interrupt HandlerUtilization MonitorWatchdog DirverSmithBattery VoltageBattery Voltage DiagnosticsDiagnostic CTC ManagerDiagnostic ManagerDiagnostics Application ServicesEOL TorqueTestFlash Boot LoaderFlight RecorderHandwheel PositionHandwheel TorqueMotor Control Output ConversionMotor Position DiagnosticsMotor Position InitializationMotor VelocityMotor Velocity TachometerSerial Communications I/OSerial Communications ServicesStates and ModesTuning SelectVehicle Power ModeVehicle SpeedController PolarityCurrent EstimationHandwheel VelocityInverse Motor ModelMotor Temperature EstimationMotor Torque LimitOutput Reasonableness DianosticParameter EstimationQuadrant and rate DetectionActive Pull CompensationAssistDampingDuty CycleKinematic Integrity DiagnosticLong Term Vehicle Speed DiagnosticMax Assist LimitReturnState Output ControlTorque Output























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Sheet 5: Template

2.2aData File:












Header:extern <TYPE><TAB><NAME>;









Source:#pragma DATA_SECTION(<ROOTNAME>, "<SEGMENT>");
<TYPE> <NAME>;










EOL Constants:












Header:extern <TYPE><TAB><NAME>;









Source:#pragma DATA_SECTION(<ROOTNAME>, "<SEGMENT>");
<TYPE> <NAME>;










Global (Embedded) Constants:












Header:#define <NAME><COL40><VALUE>









A2L Name












Measurement:rte_<SWC>_<NAME>









Calibration Constants:












Tuning ID:



















Tuning:NIndex Range:










Header:extern CONST(<AUTOSAR_TYPE>, CAL_CONST) <NAME>;









Source:#pragma DATA_SECTION(<ROOTNAME>, ".<SEGMENT>");
CONST(<AUTOSAR_TYPE>, CAL_CONST) <NAME> = <VALUE>;










eCal:<NAME>























Tuning:YIndex Range:










Header:<NONCRITICAL>
#define <ROOTNAME><TAB>k_N_CalNC_Cnt_Str.<ROOTNAME>
<NONCRITICAL>
<SAFETYCRITICAL>
#define <ROOTNAME><TAB>k_S_CalSC_Cnt_Str.<ROOTNAME>
<SAFETYCRITICAL>










Source:










eCal:<NONCRITICAL>
k_N_CalNC_Cnt_Str.<ROOTNAME>
<NONCRITICAL>
<SAFETYCRITICAL>
k_S_CalSC_Cnt_Str.<ROOTNAME>
<SAFETYCRITICAL>
























Tuning:PIndex Range:










Header:<NONCRITICAL>
#define <ROOTNAME><TAB>k_N_CalNC_Cnt_Str.Personality[L3_S_CalPersSelect_Cnt_G_u16].<ROOTNAME>
<NONCRITICAL>
<SAFETYCRITICAL>
#define <ROOTNAME><TAB>k_S_CalSC_Cnt_Str.SC_Personality[L3_S_CalPersSelect_Cnt_G_u16].<ROOTNAME>
<SAFETYCRITICAL>










Source:










eCal:<NONCRITICAL>
k_N_CalNC_Cnt_Str.Personality[L3_S_CalPersSelect_Cnt_G_u16].<ROOTNAME>
<NONCRITICAL>
<SAFETYCRITICAL>
k_S_CalSC_Cnt_Str.SC_Personality[L3_S_CalPersSelect_Cnt_G_u16].<ROOTNAME>
<SAFETYCRITICAL>

















Sheet 6: Help

Short cutMacroSescription
Ctrl-qClearDataDictFilterWill clear all autofilters on the Global Data Dictionary




DFD_CreateCreates a Series of Data Flow Worksheet Pages from the information in the data dictionary. If Data Flow Worksheet pages already exist, they will be deleted first.

DFD_DeleteWill clear all Data Flow Diagram pages from the Data Dictionary. This will make the file smaller for archiving.

DFD_PrintFormate and prepares to print the Data Flow Worksheet pages.

1.2 - Metrics_Integration_Manual

Contents

1 Dependencies 1

2 Configuration 1

2.1 Build Time Config 1

2.2 Generator Config 2

3 Memory Mapping 2

3.1 Mapping 2

3.2 Usage 2

Dependencies

ModuleRequired Feature
Rte

Rte_Task_Dispatch() hooks

VFB Trace hooks

DioDio_WriteChannel()
PortPort_SetPinDirection()
NxtrLib

DtrmnElapsedTime_uS_u32()

GetSystemTime_uS_u32()

Os

osdNumberOfAllTasks constant value

osGetStackUsage

oskTcbStackTop

oskTcbStackBottom

Configuration

Build Time Config

ConstantNotesSWC
BC_METRICS_TASKCPUUSEMASKSTD_ON enables build of the task use masking functionality to excluded a user defined set of task CPU use times from the CPU use calculation.
BC_METRICS_STACKUSESTD_ON enables build of the Stack Use monitoringMetrics
BC_METRICS_CPUUSEDIOSTD_ON enables build of the CPU Use digital output based monitoringMetrics
BC_METRICS_CPUUSETMRSTD_ON enables build of the CPU Use timer based monitoringMetrics
ENABLE_CPUUSE_DIOIf defined then CPU usage is output via a DIO where the DIO is high while the CPU is not in the background task.Metrics
RTE_VFB_TRACE=1Enable Rte’s VFB trace functionality to support Rte_Task_Dispatch() hooksRte
Rte_Task_DispatchEnable Rte’s Rte_Task_Dispatch() hooksRte

Generator Config

ConstantNotesSWC
Dio Channel Name: “Metrics”Required when ENABLE_CPUUSE_DIO is definedDio
RTE VFB Trace Hooks
  1. Enable the option “Enable VFB Tracing” under Generation Parameters.

  2. Define/Import task wait event, and wait event return hooks. Insert task start into the wait event return hook, and task end into wait the wait event hook.

  3. Define/Import all desired runnable Start and Return hooks in the “Trace function“ dialog.

Caveats:

  • The runnable runtime metrics methodology requires all preemption entry and exit points are instrumented with Metrics_TaskStart/End to provide the ability to measure and subsequently account for preemption time in the preempted entity.

    • Basic Tasks do not provide an Rte Exit hook, therefore the Metrics_TaskEnd( Id ) must be integrated in the return hook of the last runnable in the Task list.

    • Extended Tasks do provide start and end hooks and therefore do not require the integrator to place the Metrics_TaskEnd( Id ) in any runnable end hook.

  • Tracking all runnables is likely to impact task run times significantly. It may make more sense to enable runnable trace hooks only as necessary.

MPU Global Read AccessGetSystemTime and Dio_WriteChannel Metrics Channel accessed registers must be readable across all application and ISR contexts.Os
MPU Global Read/Write Access

Metrics data structures must be R/W across all application and ISR contexts.

ATTENTION! The metrics data structures are very large, so ensure that adequate memory is allocated to the Global Shared region

OS

Integration Project Changes

  1. Modify the required BSW Irq source functions to place the Metrics_TaskStart and Metrics_TaskEnd hooks around the ISR’s. The recommended practice is to make a copy of the delivered source file renamed to *_NxtrMetrics.c and conditionaly build the altered file in place of the delivered file for Metrics builds.

  2. Modify SchM.c to place the Metrics_TaskStart hook and Metrics_TaskEnd calls appropriately at around the tasks. Note that it might be necessary to place the hooks at a point in the task that will be overwritten when the SchM.c is generated. Diligence will need to used after generation to ensure that the hooks are not inadvertently removed.

  3. Modify ApplCallbacks.c to place Metrics_TaskStart and Metrics_TaskEnd calls appropriately around tasks. Dilligence will be required to ensure the hooks are not removed.

Memory Mapping

Mapping

ConstantNotes
METRICS_START_SEC_VAR_CLEARED_UNSPECIFIEDWritable across all applications

* Each …START_SEC… constant is terminated by a …STOP_SEC… constant as specified in the AUTOSAR Memory Mapping requirements.

Usage

: ARM Cortex R4 Memory Usage
Revision Control Log

FeatureRAMROM
Software task time stamping of task execution
Stack usage monitoring
Item #Rev #Change DescriptionDateAuthor Initials
1

1.3 - Metrics_MDD

Module --

(Above name of the module is a “Field” that can be updated. It should be set by going to File Properties – Custom and then modifying the Document name, this name will be the same one used for the filename also, refer design guidelines document, Once name modified, do a select all – and update entire document, so that this field will be updated everywhere it is used in the template, Remove this comment in the actual document)

High-Level Description

(Description must be within 8-10 lines.)

Figures

Diagram – Function Data Sharing

This diagram shows all data that is shared between functions within the module.

(Note – If no data is shared between functions, the Text “No Shared Data” can be used in place of a graphic. Also note that init functions need not be shown unless they compute non-zero data to be used by other functions in the module).

Diagram – Function (Name)

This diagram describes the functional characteristics and data flow of a given function.

(Note – This is not mandatory, only used where a graphical representation helps explain the function. It is left to the author’s discretion. New headers of this level (Level 3) should be created for each function.


Variable Data Dictionary

For details on module input / output variable, refer to the Data Dictionary for the application. Input / output variable names are listed here for reference.

(Note: Full variable names required in table.)

(Note: All global variables including End Of Line data used should be shown here)

Module InputsModule Outputs
<VarName_Units_Type><VarName_Units_Type>

Module Internal Variables

This section identifies the name, range and resolutions for module specific data created by this module. If there are no range restrictions on the variable, the term “FULL” is placed into the table for legal range.

Variable NameResolution

Legal Range

(min)

Legal Range

(max)

Software Segment
<None>

User defined typedef definition/declaration

This section documents any user types uniquely used for the module.

Typedef NameElement NameUser Defined Type

Legal Range

(min)

Legal Range

(max)

(Name given for the user defined typdef of type struct/union)

(Variable name qualified similar to all other variables)

(Variable name qualified similar to all other variables)as other variables
(Variable name qualified similar to all other variables)

Constant Data Dictionary

Calibration Constants

This section lists the calibrations used by the module. For details on calibration constants, refer to the Data Dictionary for the application.

Constant Name
<None>

Program(fixed) Constants

Embedded Constants

All embedded constants whose values are provided in Eng units will be evaluated to the equivalent counts by using the FPM_InitFixedPoint_m() macro within the #define statement.

Local

Constant NameResolutionUnitsValue
<None>

Global

This section lists the global constants used by the module. For details on global constants, refer to the Data Dictionary for the application.

Constant Name
<None>

Module specific Lookup Tables Constants

(This is for lookup tables (arrays) with fixed values, same name as other tables)

Constant NameResolutionValueSoftware Segment
None


Functions/Macros used by the Sub-Modules

Library Functions / Macros

The library and functions / Macros that are called by the various sub modules are identified below,

  1. <None>

Data Hiding Functions

  1. <None>

Global Functions/Macros Defined by this Module

Global Function #1

Function Name(Exact name used)TypeMinMaxUTP Tol.
Arguments Passed(if none, write None)
(Insert more rows for additional passed arguments)
Return Value(if no value returned, write N/A)

Description

(Place flowchart/design for local function)

Local Functions/Macros Used by this MDD only

Local Function #1

Function Name(Exact name used)TypeMinMaxUTP Tol.
Arguments Passed(if none, write None)
(Insert more rows for additional passed arguments)
Return Value(if no value returned, write N/A)

Description

(Place flowchart/design for local function)

Software Module Implementation

Runtime Environment (RTE) Initial Values

This section lists the initial values of data written by this module but controlled by the RTE. After RTE initialization, the data in this table will contain these values.

DataValue
<None>

Initialization Functions

(Note: For multiple init functions, insert new headers at the “Header 2” level – subset of “5.1 Initialization Functions” and follow the same sub-section design shown below)

Init: _L_Init(n)

Design Rationale

(Add design rationale specifically related to this FUNCTION. If none required, place the text “None”)

Module Outputs

(Initialize all module outputs in this section)

Module Internal

(Initialize all module internal variables in this section)


Periodic Functions

(Note: For multiple periodic functions, insert new headers at the “Header 2” level – subset of “5.2 Periodic Functions” and follow the same sub-section design shown below)

Per: _L_Per(n)

Design Rationale

(Add design rationale specifically related to this FUNCTION. If none required, place the text “None”)

Program Flow Start

(If program flow is required by the module, the function to store the unique identifier to a temporary variable is done here – start of the function)

Store Module Inputs to Local copies

(If not required based on design, insert text “None”)

(Processing of function)………

(Breakdown the function into smaller sections to add clarity to the design).

Store Local copy of outputs into Module Outputs

(If not required based on design, insert text “None”)

Program Flow End

(If program flow is required by the module, the function to add the temporary variable to the global accumulator is done here)


Fault Recovery Functions

(Note: For multiple functions, insert new headers at the “Header 2” level – subset of “5.3 Fault Recovery Functions” and follow the same sub-section design shown below)

FaultRec: _L_FaultRec(n)

Design Rationale

(Add design rationale specifically related to this FUNCTION. If none required, place the text “None”)

Program Flow Start

(If program flow is required by the module, the function to store the unique identifier to a temporary variable is done here – start of the function)

Store Module Inputs to Local copies

(If not required based on design, insert text “None”)

(Processing of function)………

(Breakdown the function into smaller sections to add clarity to the design).

Store Local copy of outputs into Module Outputs

(If not required based on design, insert text “None”)

Program Flow End

(If program flow is required by the module, the function to add the temporary variable to the global accumulator is done here)


Shutdown Functions

(Note: For multiple functions, insert new headers at the “Header 2” level – subset of “5.4 Shutdown Functions” and follow the same sub-section design shown below)

Shtdn: _L_Shtdn(n)

Design Rationale

(Add design rationale specifically related to this FUNCTION. If none required, place the text “None”)

Program Flow Start

(If program flow is required by the module, the function to store the unique identifier to a temporary variable is done here – start of the function)

Store Module Inputs to Local copies

(If not required based on design, insert text “None”)

(Processing of function)………

(Breakdown the function into smaller sections to add clarity to the design).

Store Local copy of outputs into Module Outputs

(If not required based on design, insert text “None”)

Program Flow End

(If program flow is required by the module, the function to add the temporary variable to the global accumulator is done here)


Interrupt Functions

(Note: For multiple functions, insert new headers at the “Header 2” level – subset of “5.5 Interrupt Functions” and follow the same sub-section design shown below)

Isr: _L_Isr(n)

Design Rationale

(Add design rationale specifically related to this FUNCTION. If none required, place the text “None”)

(Processing of the ISR function)…..

(Note: Multiple headings can be used to break apart the functionality)


Serial Communication Functions

(Note: For multiple functions, insert new headers at the “Header 2” level – subset of “5.6 Serial Communication Functions” and follow the same sub-section design shown below)

SComm: _L_SComm(n)

Design Rationale

(Add design rationale specifically related to this FUNCTION. If none required, place the text “None”)

Program Flow Start

(If program flow is required by the module, the function to store the unique identifier to a temporary variable is done here – start of the function)

Store Module Inputs to Local copies

(If not required based on design, insert text “None”)

(Processing of function)………

(Breakdown the function into smaller sections to add clarity to the design).

Store Local copy of outputs into Module Outputs

(If not required based on design, insert text “None”)

Program Flow End

(If program flow is required by the module, the function to add the temporary variable to the global accumulator is done here)


Execution Requirements

Execution Sequence of the Module

(Describe in words relevant details about the execution sequence of the different sub modules.)

Execution Rates for sub-modules called by the Scheduler

This table serves as reference for the Scheduler design

Function NameCalling FrequencySystem State(s) in which the function is called
<None>

Execution Requirements for Serial Communication Functions

Function NameSub-Module called by (Serial Comm Function Name)
<None>


Memory Map Definition Requirements

Sub Modules (Functions)

This table identifies the software segments for functions identified in this module.

Name of Sub ModuleSoftware Segment

Local Functions

This table identifies the software segments for local functions identified in this module.

Name of Sub ModuleSoftware Segment


Known Issues / Limitations With Design

  1. (Item #1)


Revision Control Log

Item #Rev #Change DescriptionDateAuthor Initials
1

2.1 - Filter_Library_Design_Document

1 Partial Notch Filter 3

1.1 Filter Equations 3

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 Library Routines Design 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

1.4 Usage 6

2 1st Order Low Pass Filter, 1 Pole- coefficient 7

2.1 Topology 1 – 1LP1-C 7

2.1.1 Filter Equations 8

2.1.2 Library Routines Design 8

2.1.2.1 Unity Gain, No Dead band Compensation, Fixed K – calibratable Kn, fixed 16 bit Kd, 32 Bit State Variable, Truncate divide, Unsigned 16 bit Input 8

2.1.2.2 Unity Gain, No Dead band Compensation, Fixed K – calibratable Kn, fixed 16 bit Kd, 32 Bit State Variable, Truncate divide, Signed 16 bit Input 11

2.2 Topology 2 – 1LP1-B 14

2.2.1 Filter Equations 14

2.2.2 Library Routines Design 15

2.2.2.1 Variable Gain, Variable D, Variable K – calibratable 16 bit Kn, variable Kd, 32 Bit State Variable, Truncate divide, Unsigned 16 bit Input 15

2.2.2.2 Variable Gain, Variable D, Variable K - calibratable 16 bit Kn, variable Kd, 32 Bit State Variable, Truncate divide, Signed 16 bit Input 17

2.3 Topology 3 – 1LP1-CF (Floating Point Implementation) 20

2.3.1 Filter Equations 20

2.3.1.1 Coefficient K Calculation and State Variable Initialization 20

2.3.1.2 Coefficient K Recalculation 20

2.3.1.3 Normal Operation 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 Filter Equations 23

3.1.1.1 Coefficient K Calculation and State Variable Initialization 23

3.1.1.2 Coefficient K Recalculation 23

3.1.1.3 Normal Operation 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

4 Revision Control Log 26

Partial Notch Filter

Filter Equations

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.

Node b State Variable Initialization

SV2 = In * (B2 - A2);

Node d State Variable Initialization

SV1 = In * (B1 + B2 - A1 - A2);

Filter Output Calculation

Out = In;

Node b State Variable Calculation

SV2 = (B2 * In) - (Out * A2);

Node d State Variable Calculation

SV1 = (SV2 + (In * B1)) - (Out * A1);

Filter Output Calculation

Out = SV1 + (B0 * In);

Library Routines Design

Notch Filter Initialization Function

Function NameNF_Init_f32TypeMinMaxUTP Tol.
Arguments PassedIn_Uls_T_f32 – Initial input to the filterFloat 32
SVPtr_Cnt_T_Str – Pointer to state variable structNotchFiltSV_Str
FiltK_Cnt_T_Str – Pointer to coefficient structureNotchFiltK_Str**See 1.3
Return ValueN/A

Pseudo Code:

KPtr_Cnt_Str = FiltK_Cnt_T_Str;

Out = In;

SV1 = In * (B1 + B2 - A1 - A2);

SV2 = In * (B2 - A2);

Notch Filter State Variable Update Function

Function NameNF_SvUpdate_f32TypeMinMaxUTP Tol.
Arguments PassedIn_Uls_T_f32 – Input to notch filterFloat 32
SVPtr_T_Cnt_Str – Pointer to state variable structNotchFiltSV_Str**See 1.3
FiltK_Cnt_T_Str – Pointer to filter cal structNotchFiltK_Str**See 1.3
Return ValueN/A

Pseudo Code: KPtr_Cnt_Str = FiltK_Cnt_T_Str

SV1 = (SV2 + (In * B1)) - (Out * A1);

SV2 = (B2 * In) - (Out * A2);

Notch Filter Output Update Function

Function NameNF_OpUpdate_f32TypeMinMaxUTP Tol.
Arguments PassedIn_Uls_T_f32 – Input to the notch filterFloat 32
SVPtr_T_Cnt_Str – Pointer to state variable structNotchFiltSV_Str**See 1.3
Return ValueFiltered Output, SV Structure UpdatedFloat 32

Pseudo Code:

Out = SV1 + (B0 * In);

Notch Filter Full Update Function

Function NameNF_FullUpdate_f32TypeMinMaxUTP Tol.
Arguments PassedIn_Uls_T_f32 – Input to notch filterFloat 32
SVPtr_Cnt_T_Str – Pointer to state variable structNotchFiltSV_Str**See 1.3
FiltK_Cnt_T_Str – Pointer to filter cal structNotchFiltK_Str**See 1.3
Return ValueFiltered outputFloat 32

Pseudo Code:

Full Update simply calls OpUpdate followed by SvUpdate as a convenient alternative to calling each of the functions individually.

Notch Filter Structure Acceptable Ranges

Structure NameNotchFiltSV_StrTypeMinMaxUTP Tol.
MembersSV1_Uls_f32Float 32FULLFULL
SV2_Uls_f32Float 32FULLFULL
Out_Uls_f32Float 32FULLFULL
KPtr_Cnt_StrKPtr_Cnt_Str**See Below
Structure NameNotchFiltK_StrTypeMinMaxUTP Tol.
MembersA1_Uls_f32Float 32
A2_Uls_f32Float 32
B0_Uls_f32Float 32
B1_Uls_f32Float 32
B2_Uls_f32Float 32

Usage

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>);

1st Order Low Pass Filter, 1 Pole- coefficient

Topology 1 – 1LP1-C

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

SymbolDescriptionConstant Classification
KnNumerator of Filter CoefficientThis may be defined as a calibration constant or an embedded local constant based on the usage.
KdDenominator of Filter CoefficientBased 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 SymbolDescription
IInput
eState Variable (filt_SV)
OOutput (filt_O)

Filter Equations

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.

Library Routines Design

Unity Gain, No Dead band Compensation, Fixed K – calibratable Kn, fixed 16 bit Kd, 32 Bit State Variable, Truncate divide, Unsigned 16 bit Input

There will be four macros defined for this implementation:- state variable initialization, filter output initialization, state variable update and filter output update.

Node SymbolDescriptionData Type
IInputUINT 16
cUINT16
dUINT32
eState Variable (filt_SV)UINT 32
fUINT16
OOutput (filt_O)UINT 16
State Variable Initialization Macro
Function NameLPF_SvInit_u16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterUINT16
Return ValueInitialized value of node eUINT32

Pseudo Code:

Lvalue = Input << Kd

where Kd is pre-defined for a fixed16 bit filter coefficient = 16 bits

Filter Output Initialization Macro
Function NameLPF_OpInit_u16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterUINT16
Filt_SV – Initialized value of the state variableUINT32
Kn - Numerator of the filter coefficientUINT16
Return ValueInitialized output of the low pass filterUINT32

Pseudo Code:

Lvalue = (((Input – (Filt_SV >> Kd)) * Kn ), + Filt_SV)>>Kd

where Kd is pre-defined for a fixed16 bit filter coefficient = 16 bits

Filter State Variable Update Macro
Function NameLPF_SvUpdate_u16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterUINT16
Filt_SV – Calculated value of the state variableUINT32
Kn - Numerator of the filter coefficientUINT16
Return ValueOutput of the low pass filterUINT32

Pseudo code:

<Lvalue> = ( ( Input – (filt_SV >> Kd) ) * Kn ) + filt_SV

where Kd is pre-defined for a fixed16 bit filter coefficient = 16 bits

Output Update Macro
Function NameLPF_OpUpdate_u16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedFilt_SV – Calculated value of the state variableUINT32
Return ValueOutput of the low pass filterUINT16

Pseudo code:

<Lvalue> = filt_SV >> Kd

where Kd is pre-defined for a 16 bit filter coefficient = 16 bits

Usage

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>)

Unity Gain, No Dead band Compensation, Fixed K – calibratable Kn, fixed 16 bit Kd, 32 Bit State Variable, Truncate divide, Signed 16 bit Input

There will be three macros defined for this implementation:- state variable initialization, state variable update and filter output update.

Node SymbolDescriptionData Type
IInputSINT 16
cSINT 16
dSINT 32
eState Variable (filt_SV)SINT 32
fSINT 16
OOutput (filt_O)SINT 16
State Variable Initialization Macro
Function NameLPF_SvInit_s16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterSINT16
Return ValueInitilized value of Node eSINT32

Pseudo Code:

Lvalue = Input << Kd

where Kd is pre-defined for a 16 bit filter coefficient as 16 bits

Filter Output Initialization Macro
Function NameLPF_OpInit_s16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterSINT16
Filt_SV – Initialized value of the state variableSINT32
Kn – Numerator of the filter coefficientSINT16
Return ValueInitialized value of filter outputSINT32

Pseudo Code:

Lvalue = (((Input – (Filt_SV >> Kd)) * Kn ), + Filt_SV)>>Kd

where Kd is pre-defined for a fixed16 bit filter coefficient = 16 bits

Filter State Variable Update Macro
Function NameLPF_SvUpdate_s16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterSINT16
Filt_SV – Initialized value of the state variableSINT32
Kn – Numerator of the filter coefficientSINT16
Return ValueCalculated value of filt_SVSINT32

Pseudo code:

<Lvalue> = ( ( Input – (filt_SV >> Kd) ) * Kn ) + filt_SV

where Kd is pre-defined for a 16 bit filter coefficient = 16 bits

Output Update Macro
Function NameLPF_OpUpdate_s16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedFilt_SV – calculated value of filter state variableSINT32
Return ValueOutput of the low pass filterSINT16

Pseudo code:

<Lvalue> = filt_O >> Kd

where Kd is pre-defined for a 16 bit filter coefficient = 16

Usage

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>)


Topology 2 – 1LP1-B

The filter topology 1LP1-B is as given,

Filter Equations

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.

Library Routines Design

Variable Gain, Variable D, Variable K – calibratable 16 bit Kn, variable Kd, 32 Bit State Variable, Truncate divide, Unsigned 16 bit Input

Node SymbolDescriptionData Type
IInputUINT 16
aUINT 16
bUINT 16
cUINT 16
dUINT 32
eState Variable (filt_SV)UINT 32
fUINT 16
gUINT 16
OOutput (filt_O)UINT 16
State Variable Initialization Macro
Function NameLPF_SvInit_u16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterUINT16
Kd – Denominator bits of filter coefficientUINT16
D – Deadband factorUINT16
Return ValueInitialized value of Node eUINT32

Pseudo Code:

Lvalue = (Input << Kd) << D

Note:- The multiplication by D shall not be performed for D = 0.

Filter Output Initialization Macro
Function NameLPF_OpInit_u16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterUINT16
Filt_SV – Initialized value of state variableUINT32
Kn – Numerator of coefficientUINT16
Kd – Denominator bits of filter coefficientUINT16
D – Deadband factorUINT16
Return ValueLow pass filter outputUINT32

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.

Filter State Variable Update Macro
Function NameLPF_SvUpdate_u16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterUINT16
Filt_SV – Calculated value of filter state variableUINT32
Kn – Numerator of coefficientUINT16
Kd – Denominator bits of filter coefficientUINT16
D – Deadband factorUINT16
Return ValueLow pass filter outputUINT32

Pseudo code:

<Lvalue> = ( ( (Input << D) – (filt_SV >> Kd) ) * Kn ) + filt_SV

Note:- The multiplication by D shall not be performed for D = 0.

Output Update Macro
Function NameLPF_OpUpdate_u16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedFilt_SV – Calculated value of filter state variableUINT32
Kd – Denominator bits of filter coefficientUINT16
D – Deadband factorUINT16
Return ValueLow pass filter outputUINT32

Pseudo code:

<Lvalue> = (filt_SV >> Kd ) >>D

Note:- The division by D shall not be performed for D = 0.

Usage

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>)

Variable Gain, Variable D, Variable K - calibratable 16 bit Kn, variable Kd, 32 Bit State Variable, Truncate divide, Signed 16 bit Input

Node SymbolDescriptionData Type
IInputSINT 16
aSINT 16
bSINT 16
cSINT 16
dSINT 32
eState Variable (filt_SV)SINT 32
fSINT 16
gSINT 16
OOutput (filt_O)SINT 16
State Variable Initialization Macro
Function NameLPF_SvInit_s16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterSINT16
Kd – Denominator bits of filter coefficientSINT16
D – Deadband factorSINT16
Return ValueInitialized value of Node eSINT32

Pseudo Code:

Lvalue = (Input << Kd) << D

Note:- The multiplication by D shall not be performed for D = 0.

Filter Output Initialization Macro
Function NameLPF_OpInit_s16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterSINT16
Filt_SV – Initialized value of filter state variableSINT32
Kn – Numerator of filter coefficientSINT16
Kd – Denominator bits of filter coefficientSINT16
D – Deadband factorSINT16
Return ValueInitialized value of filter outputSINT32

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.

Filter State Variable Update Macro
Function NameLPF_SvUpdate_s16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterSINT16
Filt_SV – Calculated value of filter state variableSINT32
Kn – Numerator of filter coefficientSINT16
Kd – Denominator bits of filter coefficientSINT16
D – Deadband factorSINT16
Return ValueCalculated value of filt_SV as given belowSINT32

Pseudo code:

<Lvalue> = ( ( (Input << D) – (filt_SV >> Kd) ) * Kn ) + filt_SV

Note:- The multiplication by D shall not be performed for D = 0.

Output Update Macro
Function NameLPF_OpUpdate_s16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedFilt_SV – Calculated value of filter state variableSINT32
Kd – Denominator bits of filter coefficientSINT16
D – Deadband factorSINT16
Return ValueLow pass filter outputSINT32

Pseudo code:

<Lvalue> = (filt_SV >> Kd ) >>D

Note:- The division by D shall not be performed for D = 0.

Usage

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>)

Topology 3 – 1LP1-CF (Floating Point Implementation)

The filter topology 1LP1-CF is as given,

Filter Equations

The filter equations are given below. Each equation shall be implemented as a library macro.

Coefficient K Calculation and State Variable Initialization

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

Coefficient K Recalculation

The equation for recalculation of the filter coefficient K is exactly the same as that defined in the initialization function above.

Normal Operation

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.

Library Routines Design

Unity Gain, No Dead band Compensation, calibratable K, Single-Precision Float Input

There will be three macros defined for this implementation:- state variable and coefficient initialization, coefficient calculation, and filter output update.

Coefficient and State Variable Initialization Macro
Function NameLPF_Init_f32_mTypeMinMaxUTP Tol.
Arguments PassedInput – Initial input to filterFloat 32FULLFULL
Fp – Pole cutoff frequency in hertzFloat 320.1% 1/T50% 1/T
T – Sampling interval in secondsFloat 320.0000510
SV_Str – Pointer to the state variable structureLPF32KSV_Str*See 2.3.2.1.4
Return ValueInitial output, node OFloat 32FULLFULL

Pseudo Code:

<SV_Str-> SV_Uls_f32> = Input

<Lvalue> = Input

LPF_KUpdate_f32_m(Fp, T, SV_Str)

Coefficient Recalculation Macro
Function NameLPF_KUpdate_f32_mTypeMinMaxUTP Tol.
Arguments PassedFp – Pole cutoff frequency in hertzFloat 320.1% 1/T50% 1/T
T – Sampling interval in secondsFloat 320.0000510
SV_Str – Pointer to the state variable structureLPF32KSV_Str*See 2.3.2.1.4
Return ValueNew value of K stored in state variable structureFloat 320.01.0

Pseudo Code:

<SV_Str-> K_Uls_f32> = 1 – expf(-2π * Fp * T)

Output Update Macro
Function NameLPF_OpUpdate_f32_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to low pass filterFloat 32FULLFULL
SV_Str – Pointer to the state variable structureLPF32KSV_Str*See 2.3.2.1.4
Return ValueOutput of low pass filterFloat 32FULLFULL

Pseudo code:

<Lvalue> = <SV_Str->SV_Uls_f32> =

(Input – <SV_Str->SV_Uls_f32>) * <SV_Str->K_Uls_f32> + <SV_Str->SV_Uls_f32>

Usable ranges for LPF32KSV_Str Structure
LPF32KSV_StrTypeMinMaxUTP Tol.
K_Uls_f32Float 320.01.0
SV_Uls_f32Float 32FULLFULL
Usage

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>)

1st Order High Pass Filter, 1 Pole- coefficient

Topology 1 – HP-CF (Floating Point Implementation)

The filter topology HP-CF is as given:

Filter Equations

The filter equations are given below. Each equation shall be implemented as a library macro.

Low Pass Filter

The low-pass filter aspect of the design uses the 1LP1-CF implementation as described in section 2.3.

CF Calculation

The CF (correction factor) is calculated as follows:

CF = (1 + exp(2PI * Fp * T)) / (2 * sqrt(1 + ((2 * Fp * T)^2)))

Normal Operation

The equation for the output is as follows:

filt_Out = ( Input – LPF_Output ) * CF

Library Routine Design

Unity Gain, No Dead band Compensation, calibratable K, Single-Precision Float Input

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.

Coefficient and State Variable Initialization Macro
Function NameHPF_Init_f32_mTypeMinMaxUTP Tol.
Arguments PassedInput – Initial input to filterFloat 32FULLFULL
Fp – Pole cutoff frequency in hertzFloat 320.1% 1/T50% 1/T
T – Sampling interval in secondsFloat 320.0000510
SV_Ptr – Pointer to the state variable structureHPF32KSV_Str*See 3.1.2.1.4
Return ValueAssignment returns initial output

Pseudo Code:

LPF_Init_f32_m(Input, Fp, T, &(SV_Ptr->LPF_Str))

HPF_KUpdate_f32_m(Fp, T, SV_Ptr)

Coefficient Recalculation Macro
Function NameHPF_KUpdate_f32_mTypeMinMaxUTP Tol.
Arguments PassedFp – Pole cutoff frequency in hertzFloat 320.1% 1/T50% 1/T
T – Sampling interval in secondsFloat 320.0000510
SV_Ptr – Pointer to the state variable structureHPF32KSV_Str*See 3.1.2.1.4
Return ValueAssignment 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))

Output Update Macro
Function NameHPF_OpUpdate_f32_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to low pass filterFloat 32FULLFULL
SV_Ptr – Pointer to the state variable structureHPF32KSV_Str*See 3.1.2.1.4
Return ValueAssignment returns filter output

Pseudo code:

(Input - LPF_OpUpdate_f32_m(input_f32, &(SV_Ptr->LPF_Str))) * SV_Ptr->CF_Uls_f32

Usable ranges for HPF32KSV_Str Structure
HPF32KSV_StrTypeMinMaxUTP Tol.
LPF_StrLPF32KSV_Str*See 2.3.2.1.4
CF_Uls_f32Float 320.0FULL
Usage

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>)

Revision Control Log

#RevChangeDateAuthor
11.0Added floating point low-pass filter09FEB12Jared Julien
22.0Added floating point high-pass filter, fixed issues in FP LPF26-Apr-12Owen Tosh
33.0Correct output types for some filters (32 bits output instead of 16bits) – no code change25-Jan-13D. Djena
44.0Added new parameter to functions NF_FullUpdate_f32 and NF_SvUpdate_f3205-Dec-13VT

2.2 - Interpolation_Design_MDD

1 Variable X Variable Y 2D Table Lookup function (with interpolation) 2

1.1 Requirement 2

1.2 Implementation: 2

1.2.1 Unsigned X, Unsigned Y 4

1.2.2 Signed X, Unsigned Y 5

1.2.3 Signed X, Signed Y 7

1.2.4 Unsigned X, Signed Y 8

2 Fixed X Variable Y 2D Table Lookup function (with interpolation) 11

2.1 Requirement 11

2.2 Implementation: 11

2.2.1 Unsigned X, Unsigned Y 11

2.2.2 Signed X, Unsigned Y 13

2.2.3 Signed X, Signed Y 14

2.2.4 Unsigned X, Signed Y 16

3 Single X Multiple Y (Bilinear Interpolation) 17

3.1 Implementation: 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 Implementation 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

6 Revision Control Log 44

Variable X Variable Y 2D Table Lookup function (with interpolation)

Requirement

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.

Implementation:

Note: Straight Forward Search method is used for calculating the index n.

Unsigned X, Unsigned Y

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

Signed X, Unsigned Y

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

Signed X, Signed Y

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

Unsigned X, Signed Y

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

Fixed X Variable Y 2D Table Lookup function (with interpolation)

Requirement

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.

Implementation:

Unsigned X, Unsigned Y

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

Signed X, Unsigned Y

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

Signed X, Signed Y

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

Unsigned X, Signed Y

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

Single X Multiple Y (Bilinear Interpolation)

Implementation:

Syntax: BilinearXYM_s16_u16Xs16YM_Cnt (BS, input, *BSTbl, BSize, *XTbl, *YMTbl, Xsize)

Arguments:

  1. BS:- Bilinear Selector

  2. Input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X 2D

  6. YMTbl:- Table Y with MxN dimension

  7. 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

Syntax: BilinearXYM_u16_u16Xu16YM_Cnt(BS, input, *BSTbl, BSsize, *XTbl, *YMTbl, Xsize)

Arguments

  1. BS:- Bilinear Selector

  2. input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X 2D

  6. YMTbl:- Table Y with MxN dimension

  7. 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

Syntax: BilinearXYM_s16_s16Xs16YM_Cnt (BS, input, *BSTbl, BSize, *XTbl, *YMTbl, Xsize)

Arguments:

  1. BS:- Bilinear Selector

  2. Input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X 2D

  6. YMTbl:- Table Y with MxN dimension

  7. 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

Syntax: BilinearXYM_u16_s16Xu16YM_Cnt(BS, input, *BSTbl, BSsize, *XTbl, *YMTbl, Xsize)

Arguments

  1. BS:- Bilinear Selector

  2. input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X 2D

  6. YMTbl:- Table Y with MxN dimension

  7. 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

Multiple X Multiple Y (Bilinear Interpolation)

Implementation

Syntax: BilinearXMYM_u16_u16XMu16YM_Cnt( BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize)

Arguments:

  1. BS:- Bilinear Selector

  2. input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X with [MxN] dimension

  6. YMTbl:- Table Y with [MxN] dimension

  7. 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

Syntax: BilinearXMYM_s16_u16XMs16YM_Cnt(BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize)

Arguments:

  1. BS:- Bilinear Selector

  2. input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X with [MxN] dimension

  6. YMTbl:- Table Y with [MxN] dimension

  7. 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:

  1. BS:- Bilinear Selector

  2. input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X with [MxN] dimension

  6. YMTbl:- Table Y with [MxN] dimension

  7. 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

Syntax: BilinearXMYM_u16_s16XMu16YM_Cnt( BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize)

Arguments:

  1. BS:- Bilinear Selector

  2. input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X with [MxN] dimension

  6. YMTbl:- Table Y with [MxN] dimension

  7. 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

UnitTesting Range: Linear and Bilinear Interpolation

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.

Revision Control Log

Item #Rev #Change DescriptionDateAuthor Initials
1CBDInterpolation MDD13 April 12NRAR
22Added remaining bilinear interpolation functions28-Sep-12OT
33Changed divide by zero logic in bilinear interpolation to prevent floating point exceptions21-Mar-13LWW

2.3 - NxtrLib_Systemtime Integration_Manual

Contents

1 Dependencies 1

2 Configuration 1

2.1 Build Time Config 1

2.2 Generator Config 1

2.2.1 System 1

2.2.2 NvMProxyBlock 2

3 Integration 2

4 Runnable Scheduling 2

5 Memory Mapping 3

5.1 Mapping 3

5.2 Usage 3

6 Revision Control Log 4

Dependencies

ModuleRequired Feature

Configuration

Build Time Config

ConstantNotesSWC

Generator Config

System

ConstantNotesSWC

Integration

The following import steps must be completed:

  1. Place CBD project structure to appropriate integration folder

  2. Copy SystemTime_Cfg.h.tt into the Header folder and remove the .tt extension.

  3. Configure the constant D_TickRate_Cnt_u32 to the appropriate Os system tick time.

Runnable Scheduling

This section specifies the required runnable scheduling.

RunnableScheduling RequirementsTrigger

Memory Mapping

Mapping

ConstantNotes

* Each …START_SEC… constant is terminated by a …STOP_SEC… constant as specified in the AUTOSAR Memory Mapping requirements.

Usage

Table 1: ARM Cortex R4 Memory Usage

FeatureRAMROM
Full driver

Revision Control Log

Item #Rev #Change DescriptionDateAuthor Initials
1Initial version26Jul13SAH

2.4 - Interpolation_UnitTestResults


Overview

Unit Test Information
Module Definitions
Variable Range
BilinearXYM_s16_u16Xs16YM_Cnt
BilinearXYM_s16_u16Xs16YM_Cnt P
BilinearXYM_s16_u16Xs16YM_Cnt B
BilinearXYM_u16_u16Xu16YM_Cnt
BilinearXYM_u16_u16Xu16YM_Cnt P
BilinearXYM_u16_u16Xu16YM_Cnt B
BilinearXMYM_u16_u16XMu16YM_Cnt
BilinearXMYM_u16_u16XMu16YM_C P
BilinearXMYM_u16_u16XMu16YM_C B
BilinearXMYM_s16_u16XMs16YM_Cnt
BilinearXMYM_s16_u16XMs16YM_C P
BilinearXMYM_s16_u16XMs16YM_C B
BilinearXMYM_s16_s16XMs16YM_Cnt
BilinearXMYM_s16_s16XMs16YM_C P
BilinearXMYM_s16_s16XMs16YM_C B
IntplVarXY_u16_u16Xu16Y_Cnt
IntplVarXY_u16_u16Xu16Y_Cnt() P
IntplVarXY_u16_u16Xu16Y_Cnt() B
IntplVarXY_u16_s16Xu16Y_Cnt
IntplVarXY_u16_s16Xu16Y_Cnt() P
IntplVarXY_u16_s16Xu16Y_Cnt() B
IntplVarXY_s16_s16Xs16Y_Cnt
IntplVarXY_s16_s16Xs16Y_Cnt() P
IntplVarXY_s16_s16Xs16Y_Cnt() B
IntplVarXY_s16_u16Xs16Y_Cnt
IntplVarXY_s16_u16Xs16Y_Cnt() P
IntplVarXY_s16_u16Xs16Y_Cnt() B
IntplFxdX_u16_u16Xu16Y_Cnt
IntplFxdX_u16_u16Xu16Y_Cnt() P
IntplFxdX_u16_u16Xu16Y_Cnt() B
IntplFxdX_u16_s16Xu16Y_Cnt
IntplFxdX_u16_s16Xu16Y_Cnt() P
IntplFxdX_u16_s16Xu16Y_Cnt() B
IntplFxdX_s16_s16Xs16Y_Cnt
IntplFxdX_s16_s16Xs16Y_Cnt() P
IntplFxdX_s16_s16Xs16Y_Cnt() B
IntplFxdX_s16_u16Xs16Y_Cnt
IntplFxdX_s16_u16Xs16Y_Cnt() P
IntplFxdX_s16_u16Xs16Y_Cnt() B


Sheet 1: Unit Test Information

1.0a






















Nexteer EPS Unit Test Tool






Rev:2.7b












Name of Tester:Rajsi Tyagi
Source files to be added to the .pjt file Must include path from 'Source Code Directory' setting on the Unit Test Tool Options dialog Include Files:

Code File(s) Under Test:interpolation.c



Code File(s) Version:8



Module Design Document:Interpolation_Design_MDD.doc



Module Design Document Version:1



Unit Test Plan Version:1



Optimization Level:Level 2



Compiler (CodeGen) Version:TMS470_4.9.2



Model Type:Excel Macro



Model Version:1



Special Test Requirements:




Test Date:5/22/2012



Comments:NOTE1: Coverage is not 100% in IntplVarXY_u16_u16Xu16Y_Cnt,IntplVarXY_u16_s16Xu16Y_Cnt , IntplFxdX_u16_u16Xu16Y_Cnt ,IntplFxdX_u16_s16Xu16Y_Cnt ,IntplFxdX_s16_u16Xs16Y_Cnt function due to FPM_Fix_m macro.
NOTE2:In IntplVarXY_u16_u16Xu16Y_Cnt, IntplVarXY_u16_s16Xu16Y_Cnt, IntplVarXY_s16_s16Xs16Y_Cnt, IntplVarXY_s16_u16Xs16Y_Cnt function , (diffX == 0)=TRUE condition can not be covered.




Index of Tests:




Test Set upTest WorksheetsTest StatusRun TS

BilinearXYM_s16_u16Xs16YM_CntBilinearXYM_s16_u16Xs16YM_Cnt B----
21
7BilinearXYM_s16_u16Xs16YM_Cnt P----
7






BilinearXYM_u16_u16Xu16YM_CntBilinearXYM_u16_u16Xu16YM_Cnt B----
19
9BilinearXYM_u16_u16Xu16YM_Cnt P----
9






BilinearXMYM_u16_u16XMu16YM_CntBilinearXMYM_u16_u16XMu16YM_C B----
19
10BilinearXMYM_u16_u16XMu16YM_C P----
10






BilinearXMYM_s16_u16XMs16YM_CntBilinearXMYM_s16_u16XMs16YM_C B----
21
11BilinearXMYM_s16_u16XMs16YM_C P----
11






BilinearXMYM_s16_s16XMs16YM_CntBilinearXMYM_s16_s16XMs16YM_C B----
25
9BilinearXMYM_s16_s16XMs16YM_C P----
9






IntplVarXY_u16_u16Xu16Y_CntIntplVarXY_u16_u16Xu16Y_Cnt() B----
12
3IntplVarXY_u16_u16Xu16Y_Cnt() P----
3






IntplVarXY_u16_s16Xu16Y_CntIntplVarXY_u16_s16Xu16Y_Cnt() B----
16
3IntplVarXY_u16_s16Xu16Y_Cnt() P----
3






IntplVarXY_s16_s16Xs16Y_CntIntplVarXY_s16_s16Xs16Y_Cnt() B----
18
3IntplVarXY_s16_s16Xs16Y_Cnt() P----
3






IntplVarXY_s16_u16Xs16Y_CntIntplVarXY_s16_u16Xs16Y_Cnt() B----
14
3IntplVarXY_s16_u16Xs16Y_Cnt() P----
3






IntplFxdX_u16_u16Xu16Y_CntIntplFxdX_u16_u16Xu16Y_Cnt() B----
12
4IntplFxdX_u16_u16Xu16Y_Cnt() P----
4






IntplFxdX_u16_s16Xu16Y_CntIntplFxdX_u16_s16Xu16Y_Cnt() B----
16
4IntplFxdX_u16_s16Xu16Y_Cnt() P----
4






IntplFxdX_s16_s16Xs16Y_CntIntplFxdX_s16_s16Xs16Y_Cnt() B----
18
4IntplFxdX_s16_s16Xs16Y_Cnt() P----
4






IntplFxdX_s16_u16Xs16Y_CntIntplFxdX_s16_u16Xs16Y_Cnt() B----
14
4IntplFxdX_s16_u16Xs16Y_Cnt() P----
4


















































Sheet 2: Module Definitions












































Nexteer EPS Unit Test Tool












Rev:2.7b












Module Definitions
Module Test Functions
Module Set/Read Variables
Module Function Stubs
Return TypeNameParameter Prototype
ScopeTypeNameDefault Value
Return TypeNameParameter Prototype
sint16BilinearXYM_s16_u16Xs16YM_Cnt(uint16 BS1, uint16 input1, uint16 BSsize1, uint16 Xsize1)
Guint16BilinearXYM_s16_u16Xs16YM_Cnt_BSTbl[3]




uint16BilinearXYM_u16_u16Xu16YM_Cnt(uint16 BS2, uint16 input2, uint16 BSsize2, uint16 Xsize2)
Guint16BilinearXYM_s16_u16Xs16YM_Cnt_XTbl[3]




uint16BilinearXMYM_u16_u16XMu16YM_Cnt(uint16 BS3, uint16 input3, uint16 BSsize3, uint16 Xsize3)
Gsint16BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl1[3]




sint16BilinearXMYM_s16_u16XMs16YM_Cnt(uint16 BS4, uint16 input4, uint16 BSsize4, uint16 Xsize4)
Gsint16BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl2[3]




sint16BilinearXMYM_s16_s16XMs16YM_Cnt(uint16 BS5, sint16 input5, uint16 BSsize5, uint16 Xsize5)
Gsint16BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl3[3]




uint16IntplVarXY_u16_u16Xu16Y_Cnt(uint16 Size6, uint16 input6)
Guint16BilinearXYM_u16_u16Xu16YM_Cnt_BSTbl[3]




uint16IntplVarXY_u16_s16Xu16Y_Cnt(uint16 Size7, sint16 input7)
Guint16BilinearXYM_u16_u16Xu16YM_Cnt_XTbl[3]




sint16IntplVarXY_s16_s16Xs16Y_Cnt(uint16 Size8, sint16 input8)
Guint16BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl1[3]




sint16IntplVarXY_s16_u16Xs16Y_Cnt(uint16 Size9, uint16 input9)
Guint16BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl2[3]




uint16IntplFxdX_u16_u16Xu16Y_Cnt(uint16 DeltaX10, uint16 Size10, uint16 input10)
Guint16BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl3[3]




uint16IntplFxdX_u16_s16Xu16Y_Cnt(sint16 DeltaX11, uint16 Size11, sint16 input11)
Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_BSTbl[3]




sint16IntplFxdX_s16_s16Xs16Y_Cnt(sint16 DeltaX12, uint16 Size12, sint16 input12)
Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl1[3]




sint16IntplFxdX_s16_u16Xs16Y_Cnt(uint16 DeltaX13, uint16 Size13, uint16 input13)
Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl2[3]








Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl3[3]








Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl1[3]








Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl2[3]








Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl3[3]








Guint16BilinearXMYM_s16_u16XMs16YM_Cnt_BSTbl[3]








Guint16BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl1[3]








Guint16BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl2[3]








Guint16BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl3[3]








Gsint16BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl1[3]








Gsint16BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl2[3]








Gsint16BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl3[3]








Guint16BilinearXMYM_s16_s16XMs16YM_Cnt_BSTbl[3]








Gsint16BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl1[3]








Gsint16BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl2[3]








Gsint16BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl3[3]








Gsint16BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl1[3]








Gsint16BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl2[3]








Gsint16BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl3[3]








Guint16IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4]








Guint16IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4]








Gsint16IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3]








Guint16IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3]








Gsint16IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3]








Gsint16IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3]








Guint16IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3]








Gsint16IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3]








Guint16IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3]








Guint16IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3]








Gsint16IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3]








Gsint16IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3]





Sheet 3: Variable Range















































Nexteer EPS Unit Test Tool












Rev:2.7b
























Variable Range Definitions








Variable NameMax ValueMin 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]











Sheet 4: BilinearXYM_s16_u16Xs16YM_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
BilinearXYM_s16_u16Xs16YM_CntB21BilinearXYM_s16_u16Xs16YM_Cnt_BSTbl[3]

BilinearXYM_s16_u16Xs16YM_CntP7BilinearXYM_s16_u16Xs16YM_Cnt_XTbl[3]




BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl1[3]




BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl2[3]




BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl3[3]


Sheet 5: BilinearXYM_s16_u16Xs16YM_Cnt P

BilinearXYM_s16_u16Xs16YM_CntTS--











PParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS1input1BSsize1Xsize1BilinearXYM_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_CntBilinearXYM_s16_u16Xs16YM_CntP/FCPU 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
05645337432 , 7432 , 74322222 ,2222 ,2222-12345, -12345 , -12345-6459, -6459 ,-64594232, 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
6553586783326327 , 26327 ,263274633 , 4633 ,4633-2637, -2637 ,-26374232, 4232 ,42322521 , 2521 ,2521---2637--

3(input <= XTbl[0])=True
and
(Output_f32>=0)=True
100034533337382 , 37382 , 373826478 , 6478 ,64788546, 8546 ,85462521 , 2521 ,25211312 , 1312 ,1312--8546--

4(BS >= BSTbl[BSsize-1])=False
and
( BSTbl[BSindex+1] < BS )=True
and
( BSTbl[BSindex+1] < BS )=False
6553086783326327 , 26327 ,655314633 , 4633 ,4633-2637, -2637 ,-26374232, 4232 ,42322521 , 2521 ,2521--4232--

5((BSTbl[BSindex] == BSTbl[BSindex+1] = False&& (BSindex > 0)))6553086783326327 , 26327 ,655294633 , 4633 ,4633-2637, -2637 ,-26374232, 4232 ,42322521 , 2521 ,2521--4232--

6(input >= XTbl[Xsize-1])=False
and
( XTbl[Xindex+1] < input )=True
and
( XTbl[Xindex+1] < input )=False
05645337432 , 7432 , 74322222 ,2222 ,5646-12345, -12345 , -12345-6459, -6459 ,-64594232, 4232 ,4232---12345--

7((sint32)(Denominator_f32) == 0)=False05645337430 , 7432 , 74322222 ,2220 ,2222-12345, -12345 , -12345-6459, -6459 ,-64594232, 4232 ,4232---12345--


































































































































































Sheet 6: BilinearXYM_s16_u16Xs16YM_Cnt B

BilinearXYM_s16_u16Xs16YM_CntTS--











BParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS1input1BSsize1Xsize1BilinearXYM_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_CntBilinearXYM_s16_u16Xs16YM_CntP/FCPU Cycles
1param 1 min05645337432 , 7432 , 74322222 ,2222 ,2222-12345, -12345 , -12345-6459, -6459 ,-64594232, 4232 ,4232---12345--

2param 1 max6553586783326327 , 26327 ,263274633 , 4633 ,4633-2637, -2637 ,-26374232, 4232 ,42322521 , 2521 ,2521---2637--

3param 1 pos100034533337382 , 37382 , 373826478 , 6478 ,64788546, 8546 ,85462521 , 2521 ,25211312 , 1312 ,1312--8546--

4param 2 min123403342769 , 42769 ,427693333 , 3333 ,3333-9484, -9484 ,-94841312 , 1312 ,1312-2637, -2637 ,-2637---9484--

5param 2 max2345655353352636 , 52636 ,526364444 , 4444 ,4444-3744, -3744 , -3744-2637, -2637 ,-26378546, 8546 ,8546---3744--

6param 2 pos34562000335555 , 5555 ,55555555 , 5555 ,555517633, 17633 ,176338546, 8546 ,8546-9484, -9484 ,-9484--17633--

7param 3 default45674342333637 , 3637 ,36373637 , 3637 ,363726385, 26385 ,26384-9484, -9484 ,-9484-3744, -3744 ,-3744--26385--

8param 4 default56787764332754 , 2754 ,27542754 , 2754 ,2754-7236, -7236 ,-7236-3744, -3744 ,-374417633, 17633 ,17633---7236--

9I/p 5 min67891234330, 0 ,07432 , 7432 , 74325820, 5820 ,582017633, 17633 ,1763326385, 26385 ,26385--5820--

10I/p 5 max890878973365535 ,65535 ,6553526327 , 26327 ,2632717552, 17552 ,1755226385, 26385 ,26385-7236, -7236 ,-7236--17552--

11I/p 5 pos11112345331000, 1000 ,100037382 , 37382 , 3738227544, 27544 ,27544-7236, -7236 ,-72365820, 5820 ,5820--27544--

12I/p 6 min22223456332222 ,2222 ,22220, 0 ,0-6439, -6439 ,-64395820, 5820 ,582017552, 17552 ,17552---6439--

13I/p 6 max33334567334633 , 4633 ,463365535 ,65535 ,65535-6459, -6459 ,-645917552, 17552 ,1755227544, 27544 ,27544---6459--

14I/p 6 pos44445678336478 , 6478 ,64782000, 2000 ,20004232, 4232 ,423227544, 27544 ,27544-6439, -6439 ,-6439--4232--

15I/p 7 min55556789333333 , 3333 ,333342769 , 42769 ,42769-32768, -32768 ,-32768-6439, -6439 ,-6439-6459, -6459 ,-6459---32768--

16I/p 7 max66668908334444 , 4444 ,444452636 , 52636 ,5263632767, 32767 ,32767-6459, -6459 ,-64594232, 4232 ,4232--32767--

17I/p 7 zero77771111335555 , 5555 ,55555555 , 5555 ,55550, 0 ,04232, 4232 ,42322521 , 2521 ,2521--0--

18I/p 7 neg88882222333637 , 3637 ,36373637 , 3637 ,3637-1500, -1500 ,-15002521 , 2521 ,25211312 , 1312 ,1312---1500--

19I/p 7 pos99994234332754 , 2754 ,27542754 , 2754 ,27541800, 1800 ,18001312 , 1312 ,1312-6459, -6459 ,-6459--1800--

20All min00330, 0 ,00, 0 ,0-32768, -32768 ,-32768-32768, -32768 ,-32768-32768, -32768 ,-32768---32768--

21All max65535655353365535 ,65535 ,6553565535 ,65535 ,6553532767, 32767 ,3276732767, 32767 ,3276732767, 32767 ,32767--32767--


































































































































































Sheet 7: BilinearXYM_u16_u16Xu16YM_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
BilinearXYM_u16_u16Xu16YM_CntB19BilinearXYM_u16_u16Xu16YM_Cnt_BSTbl[3]

BilinearXYM_u16_u16Xu16YM_CntP9BilinearXYM_u16_u16Xu16YM_Cnt_XTbl[3]




BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl1[3]




BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl2[3]




BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl3[3]


Sheet 8: BilinearXYM_u16_u16Xu16YM_Cnt P

BilinearXYM_u16_u16Xu16YM_CntTS--











PParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS2input2BSsize2Xsize2BilinearXYM_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_CntBilinearXYM_u16_u16Xu16YM_CntP/FCPU Cycles
1(BS <= BSTbl[0])=True
and
(input <= XTbl[0])=True
and
((sint32)Denominator_f32 == 0)=True
07980332222 ,2222 ,222237382 , 37382 , 373822521 , 2521 ,25214232, 4232 ,423212345, 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
655355455334633 , 4633 ,463342769 , 42769 ,427694232, 4232 ,42322521 , 2521 ,25212637, 2637 ,2637--4232--

3(input <= XTbl[0])=False
and
(input >= XTbl[Xsize-1])=True
564565535334444 , 4444 ,44441000, 1000 ,10002637, 2637 ,26378546, 8546 ,85463744, 3744 , 3744--2637--

4(BS >= BSTbl[BSsize-1])=False
and
( BSTbl[BSindex+1] < BS )=False
33335455332222 , 4633 ,463342769 , 42769 ,427694232, 4232 ,42322521 , 2521 ,25212637, 2637 ,2637--4232--

5((BSTbl[BSindex] == BSTbl[BSindex+1] =False&& (BSindex > 0)))6553086783326327 , 26327 ,12344633 , 4633 ,46332637, 2637 ,26374232, 4232 ,42322521 , 2521 ,2521--4232--

6( BSTbl[BSindex+1] < BS )=True33335455332222 , 2222 ,463342769 , 42769 ,427694232, 4232 ,42322521 , 2521 ,25212637, 2637 ,2637--2521--

7(input >= XTbl[Xsize-1])=False
and
( XTbl[Xindex+1] < input )=False
5645800334444 , 4444 ,4444500, 1000 ,10002637, 2637 ,26378546, 8546 ,85463744, 3744 , 3744--2637--

8( XTbl[Xindex+1] < input )=True5645800334444 , 4444 ,4444500, 500 ,10002637, 2637 ,26378546, 8546 ,85463744, 3744 , 3744--2637--

9((sint32)Denominator_f32 == 0)=False07980332220 ,2222 ,222237380 , 37382 , 373822521 , 2521 ,25214232, 4232 ,423212345, 12345 , 12345--2521--


































































































































































Sheet 9: BilinearXYM_u16_u16Xu16YM_Cnt B

BilinearXYM_u16_u16Xu16YM_CntTS--











BParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS2input2BSsize2Xsize2BilinearXYM_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_CntBilinearXYM_u16_u16Xu16YM_CntP/FCPU Cycles
1param 1 min07980332222 ,2222 ,222237382 , 37382 , 373822521 , 2521 ,25214232, 4232 ,423212345, 12345 , 12345--2521--

2param 1 max655355455334633 , 4633 ,463342769 , 42769 ,427694232, 4232 ,42322521 , 2521 ,25212637, 2637 ,2637--4232--

3param 1 pos123453123336478 , 6478 ,647852636 , 52636 ,526362521 , 2521 ,25211312 , 1312 ,13128546, 8546 ,8546--2521--

4param 2 min23420333333 , 3333 ,33335555 , 5555 ,55551312 , 1312 ,13122637, 2637 ,26379484, 9484 ,9484--1312--

5param 2 max564565535334444 , 4444 ,44441000, 1000 ,10002637, 2637 ,26378546, 8546 ,85463744, 3744 , 3744--2637--

6param 2 pos42324357335555 , 5555 ,55551432 , 1432, 14328546, 8546 ,85469484, 9484 ,948417633, 17633 ,17633--8546--

7param 3 default11116784333637 , 3637 ,36372525, 2525, 25259484, 9484 ,94843744, 3744 ,374426385, 26385 ,26384--9484--

8param 4 default22225467332754 , 2754 ,27541122, 1122, 11223744, 3744 ,374417633, 17633 ,176337236, 7236 ,7236--3744--

9I/p 5 min33333536330, 0 ,04633 , 4633 ,463317633, 17633 ,1763326385, 26385 ,263855820, 5820 ,5820--17633--

10I/p 5 max444497893365535 ,65535 ,655356478 , 6478 ,647826385, 26385 ,263857236, 7236 ,723617552, 17552 ,17552--26385--

11I/p 5 pos55554234332754 , 2754 ,27543333 , 3333 ,33337236, 7236 ,72365820, 5820 ,582027544, 27544 ,27544--7236--

12I/p 6 min666678893337382 , 37382 , 373820, 0 ,05820, 5820 ,582017552, 17552 ,175526439, 6439 ,6439--5820--

13I/p 6 max777742343342769 , 42769 ,4276965535 ,65535 ,6553517552, 17552 ,1755227544, 27544 ,275446459, 6459 ,6459--17552--

14I/p 6 pos888876563352636 , 52636 ,526365555 , 5555 ,555527544, 27544 ,275446439, 6439 ,64394232, 4232 ,4232--27544--

15I/p 7 min99998073335555 , 5555 ,55554444 , 4444 ,44440, 0 ,06459, 6459 ,64596439, 6439 ,6439--0--

16I/p 7 max64342436331000, 1000 ,10005555 , 5555 ,555565535 ,65535 ,655354232, 4232 ,42326459, 6459 ,6459--65535--

17I/p 7 pos85648674331432 , 1432, 14323637 , 3637 ,36375820, 5820 ,58202521 , 2521 ,25214232, 4232 ,4232--5820--

18All min00330, 0 ,00, 0 ,00, 0 ,00, 0 ,00, 0 ,0--0--

19All max65535655353365535 ,65535 ,6553565535 ,65535 ,6553565535 ,65535 ,6553565535 ,65535 ,6553565535 ,65535 ,65535--65535--


































































































































































Sheet 10: BilinearXMYM_u16_u16XMu16YM_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
BilinearXMYM_u16_u16XMu16YM_CntB19BilinearXMYM_u16_u16XMu16YM_Cnt_BSTbl[3]

BilinearXMYM_u16_u16XMu16YM_CntP10BilinearXMYM_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]


Sheet 11: BilinearXMYM_u16_u16XMu16YM_C P

BilinearXMYM_u16_u16XMu16YM_CntTS--













PParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9I/P10I/P11Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS3input3BSsize3Xsize3BilinearXMYM_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_CntBilinearXMYM_u16_u16XMu16YM_CntP/FCPU 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
09054332563 , 4739 , 69601628 , 4628 , 35372648 , 6895 , 28932839 , 5894 , 29203849 , 6960 , 23722728 , 5859 , 27386278 , 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
655353534332685 , 5689 , 68902764 , 4739 , 48941628 , 4628 , 35373849 , 6960 , 23721628 , 4628 , 35372648 , 6895 , 28932522 , 6960 , 26238--2522--

3(input <= XMTbl[BSindex*Xsize])=True64560333829 , 6893 , 23034527 , 6869 , 36386448 , 2376 , 69602764 , 4739 , 48946448 , 2376 , 69602764 , 4739 , 48942839 , 5894 , 2920--2839--

4( XMTbl[(BSindex*Xsize)+X1index+1] < input )=True354765343338660 , 6950 , 36382685 , 5689 , 68902563 , 4739 , 69602638 , 3628 , 37822563 , 4739 , 69602638 , 3628 , 37826448 , 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
464326896330,0,04173 , 4580 , 48902685 , 5689 , 68902563 , 4739 , 69602685 , 5689 , 68902563 , 4739 , 69604527 , 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
25343335331628 , 4628 , 35370,0,07850 , 2783 , 59053829 , 6893 , 23037850 , 2783 , 59053829 , 6893 , 23032563 , 4739 , 6960--7850--

7( BSTbl[BSindex+1] < BS )=True25343335331628 , 2000 , 35370,0,07850 , 2783 , 59053829 , 6893 , 23037850 , 2783 , 59053829 , 6893 , 23032563 , 4739 , 6960--3389--

8(input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=false
and
( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=False
09054332563 , 4739 , 69601628 , 4628 , 35372648 , 6895 , 100002839 , 5894 , 29203849 , 6960 , 23722728 , 5859 , 27386278 , 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
09054332563 , 4739 , 69601628 , 4628 , 35376895 , 6895 , 68952839 , 5894 , 29203849 , 6960 , 23722728 , 5859 , 27386278 , 4849 , 6960--6960--

10( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=True09054332563 , 4739 , 69601628 , 4628 , 69002648 , 6895 , 100002839 , 5894 , 29203849 , 6960 , 23722728 , 5859 , 27386278 , 4849 , 6960--2372--






















































































































































































Sheet 12: BilinearXMYM_u16_u16XMu16YM_C B

BilinearXMYM_u16_u16XMu16YM_CntTS--













BParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9I/P10I/P11Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS3input3BSsize3Xsize3BilinearXMYM_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_CntBilinearXMYM_u16_u16XMu16YM_CntP/FCPU Cycles
1param 1 min09054332563 , 4739 , 69601628 , 4628 , 35372648 , 6895 , 28932839 , 5894 , 29203849 , 6960 , 23722728 , 5859 , 27386278 , 4849 , 6960--2372--

2param 1 max655353534332685 , 5689 , 68902764 , 4739 , 48941628 , 4628 , 35373849 , 6960 , 23721628 , 4628 , 35372648 , 6895 , 28932522 , 6960 , 26238--2522--

3param 1 pos65628064334173 , 4580 , 48906448 , 2376 , 69602764 , 4739 , 48941628 , 4628 , 35372764 , 4739 , 48941628 , 4628 , 353712637 , 4748 , 5850--5850--

4param 2 min64560333829 , 6893 , 23034527 , 6869 , 36386448 , 2376 , 69602764 , 4739 , 48946448 , 2376 , 69602764 , 4739 , 48942839 , 5894 , 2920--2839--

5param 2 max573365535337850 , 2783 , 59051528 , 3628 , 28204527 , 6869 , 36386448 , 2376 , 69604527 , 6869 , 36386448 , 2376 , 69603849 , 6960 , 2372--3638--

6param 2 pos79648087331839 , 2789 , 48402638 , 3628 , 37821528 , 3628 , 28204527 , 6869 , 36381528 , 3628 , 28204527 , 6869 , 36381628 , 4628 , 3537--3537--

7param 3 deafult25336978333895 , 6899 , 59052563 , 4739 , 69602638 , 3628 , 37821528 , 3628 , 28202638 , 3628 , 37821528 , 3628 , 28202764 , 4739 , 4894--3782--

8param 4 default354765343338660 , 6950 , 36382685 , 5689 , 68902563 , 4739 , 69602638 , 3628 , 37822563 , 4739 , 69602638 , 3628 , 37826448 , 2376 , 6960--6960--

9I/p 5 min464326896330,0,04173 , 4580 , 48902685 , 5689 , 68902563 , 4739 , 69602685 , 5689 , 68902563 , 4739 , 69604527 , 6869 , 3638--5689--

10I/p 5 max5354312343365535 , 65535, 655353829 , 6893 , 23034173 , 4580 , 48902685 , 5689 , 68904173 , 4580 , 48902685 , 5689 , 68901528 , 3628 , 2820--4173--

11I/p 5 pos614562534331234 , 2345 , 34567850 , 2783 , 59053829 , 6893 , 23034173 , 4580 , 48903829 , 6893 , 23034173 , 4580 , 48902638 , 3628 , 3782--2638--

12I/p 6 min25343335331628 , 4628 , 35370,0,07850 , 2783 , 59053829 , 6893 , 23037850 , 2783 , 59053829 , 6893 , 23032563 , 4739 , 6960--7850--

13I/p 6 max64334647332764 , 4739 , 489465535 , 65535, 655351839 , 2789 , 48407850 , 2783 , 59051839 , 2789 , 48407850 , 2783 , 59052685 , 5689 , 6890--2685--

14I/p 6 pos86545785336448 , 2376 , 69601111 , 2222 , 33333895 , 6899 , 59051839 , 2789 , 48403895 , 6899 , 59051839 , 2789 , 48404173 , 4580 , 4890--4890--

15I/p 9 min36456633334527 , 6869 , 36381839 , 2789 , 48408660 , 6950 , 36383895 , 6899 , 59050,0,03895 , 6899 , 59053829 , 6893 , 2303--0--

16I/p 9 max87077532331528 , 3628 , 28203895 , 6899 , 59056383 , 5690 , 28398660 , 6950 , 363865535 , 65535, 655358660 , 6950 , 36386484 , 2639 , 4849--6484--

17I/p 9 pos47458573332638 , 3628 , 37828660 , 6950 , 36386585 , 1920 , 58504683 , 2829 , 58954567 , 5678 , 67836383 , 5690 , 283932648 , 7494 , 2829--2829--

18All min00330,0,00,0,00,0,00,0,00,0,00,0,00,0,0--0--

19All max65535655353365535 , 65535, 6553565535 , 65535, 6553565535 , 65535, 6553565535 , 65535, 6553565535 , 65535, 6553565535 , 65535, 6553565535 , 65535, 65535--65535--






















































































































































































Sheet 13: BilinearXMYM_s16_u16XMs16YM_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
BilinearXMYM_s16_u16XMs16YM_CntB21BilinearXMYM_s16_u16XMs16YM_Cnt_BSTbl[3]

BilinearXMYM_s16_u16XMs16YM_CntP11BilinearXMYM_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]


Sheet 14: BilinearXMYM_s16_u16XMs16YM_C P

BilinearXMYM_s16_u16XMs16YM_CntTS--













PParamParamParamParamI/P5I/P6I/P7I/P8I/P9I/P10I/P11Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS4input4BSsize4Xsize4BilinearXMYM_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_CntBilinearXMYM_s16_u16XMs16YM_CntP/FCPU 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
01231332563 , 4739 , 69604444 , 4444 ,44443333 , 3333 ,33331628 , 2839 , 3839-6459, -6459 ,-64594683 , 5894 , 28292627 , 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
655354342332685 , 5689 , 68905555 , 5555 ,55553422 , 4728 , 12728494 , 2782 , 58944232, 4232 ,42324232, 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))
32165535337850 , 2783 , 59055555 , 5555 ,55555262 , 7283 , 89501629 , 7849 , 3840-2637, -2637 ,-2637-2637, -2637 ,-26378546, 8546 ,8546---2637--

4(BS >= BSTbl[BSsize-1])=False
and
( BSTbl[BSindex+1] < BS )=False
42348769333895 , 6899 , 59051432 , 1432, 14321628 , 2839 , 38392738 , 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
42342266330 , 0, 01122, 1122, 11229505 , 6950 , 37392733 , 5990 , 283917633, 17633 ,1763317633, 17633 ,1763326385, 26385 ,26384--17633--

6( BSTbl[BSindex+1] < BS )=True31237567331111 , 2222 , 33336478 , 6478 ,64781629 , 7849 , 38408934 , 4984 , 2849-7236, -7236 ,-7236-7236, -7236 ,-72365820, 5820 ,5820--3352--

7(input >= XMTbl[(BSindex*Xsize)+Xsize-1])=False
and
( XMTbl[(BSindex*Xsize)+X1index+1] < input )=False
655354342332685 , 5689 , 68905555 , 5555 ,55553422 , 4728 , 50008494 , 2782 , 58944232, 4232 ,42324232, 4232 ,4232-6282 , -2892 , -2829---6282--

8( XMTbl[(BSindex*Xsize)+X1index+1] < input )=True655354342332685 , 5689 , 68905555 , 5555 ,55553422 , 4000 , 50008494 , 2782 , 58944232, 4232 ,42324232, 4232 ,4232-6282 , -2892 , -2829---6282--

9(input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=False
and
( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=False
3211500337850 , 2783 , 59055555 , 5555 ,55551000 , 7283 , 20001629 , 7849 , 3840-2637, -2637 ,-2637-2637, -2637 ,-26378546, 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
32165535337850 , 2783 , 59055555 , 5555 ,55557283 , 7283 , 72831629 , 7849 , 3840-2637, -2637 ,-2637-2637, -2637 ,-26378546, 8546 ,8546---2637--

11( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=True3211500337850 , 2783 , 59055555 , 5555 ,55551000 , 5000 , 20001629 , 7849 , 3840-2637, -2637 ,-2637-2637, -2637 ,-26378546, 8546 ,8546---2637--






















































































































































































Sheet 15: BilinearXMYM_s16_u16XMs16YM_C B

BilinearXMYM_s16_u16XMs16YM_CntTS--













BParamParamParamParamI/P5I/P6I/P7I/P8I/P9I/P10I/P11Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS4input4BSsize4Xsize4BilinearXMYM_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_CntBilinearXMYM_s16_u16XMs16YM_CntP/FCPU Cycles
1param 1 min01231332563 , 4739 , 69604444 , 4444 ,44443333 , 3333 ,33331628 , 2839 , 3839-6459, -6459 ,-64594683 , 5894 , 28292627 , 8942 , 2782---6459--

2param 1 max655354342332685 , 5689 , 68905555 , 5555 ,55553422 , 4728 , 12728494 , 2782 , 58944232, 4232 ,42324232, 4232 ,4232-6282 , -2892 , -2829---6282--

3param 1 pos55257885334173 , 4580 , 48903637 , 3637 ,36376890 , 2839 , 68959505 , 6950 , 37392521 , 2521 ,25212521 , 2521 ,2521-12345, -12345 , -12345---12345--

4param 2 min42440333829 , 6893 , 230352636 , 52636 ,526365172 , 5899 , 17836749 , 2839 , 78491312 , 1312 ,13121312 , 1312 ,1312-2637, -2637 ,-2637---2637--

5param 2 max32165535337850 , 2783 , 59055555 , 5555 ,55555262 , 7283 , 89501629 , 7849 , 3840-2637, -2637 ,-2637-2637, -2637 ,-26378546, 8546 ,8546---2637--

6param 2 pos75674233331839 , 2789 , 48401000, 1000 ,10004234 , 3783 , 26288590 , 2834 , 69508546, 8546 ,85468546, 8546 ,8546-9484, -9484 ,-9484---9484--

7param 3 default42348769333895 , 6899 , 59051432 , 1432, 14321628 , 2839 , 38392738 , 6956 , 2784-9484, -9484 ,-9484-9484, -9484 ,-9484-3744, -3744 , -3744---9484--

8param 4 deafult7874323338660 , 6950 , 36382525, 2525, 25258494 , 2782 , 58948595 , 2849 , 6956-3744, -3744 ,-3744-3744, -3744 ,-374417633, 17633 ,17633---3744--

9I/p 5 min42342266330 , 0, 01122, 1122, 11229505 , 6950 , 37392733 , 5990 , 283917633, 17633 ,1763317633, 17633 ,1763326385, 26385 ,26384--17633--

10I/p 5 max645624233365535 , 65535 , 655354633 , 4633 ,46336749 , 2839 , 78499505 , 2849 , 690526385, 26385 ,2638526385, 26385 ,26385-7236, -7236 ,-7236--26385--

11I/p 5 pos31237567331111 , 2222 , 33336478 , 6478 ,64781629 , 7849 , 38408934 , 4984 , 2849-7236, -7236 ,-7236-7236, -7236 ,-72365820, 5820 ,5820--3352--

12I/p 6 min78978678337432 , 7432 , 74320 , 0, 08590 , 2834 , 69502839 , 5895 ,29335820, 5820 ,58205820, 5820 ,582017552, 17552 ,17552--5820--

13I/p 6 max523490873326327 , 26327 ,2632765535 , 65535 , 655352738 , 6956 , 27844849 , 128 , 282917552, 17552 ,1755217552, 17552 ,1755227544, 27544 ,27544--17552--

14I/p 6 pos89794233337382 , 37382 , 373822345 , 3456 , 45678595 , 2849 , 69563333 , 3333 ,333327544, 27544 ,2754427544, 27544 ,27544-6439, -6439 ,-6439--27544--

15I/p 9 min535325223342769 , 42769 ,427693333 , 3333 ,33332733 , 5990 , 28393422 , 4728 , 1272-32768 , -32768 , -32768-6439, -6439 ,-6439-6459, -6459 ,-6459---32768--

16I/p 9 max907552223352636 , 52636 ,526363422 , 4728 , 12729505 , 2849 , 69056890 , 2839 , 689532767 , 32767 , 32767-6459, -6459 ,-64594232, 4232 ,4232--32767--

17I/p 9 zero425624523335555 , 5555 ,55556890 , 2839 , 68958934 , 4984 , 28495172 , 5899 , 17830 , 0 , 04232, 4232 ,4232-6282 , -2627 , -2782--0--

18I/p 9 neg45547564333637 , 3637 ,36375172 , 5899 , 17832839 , 5895 ,29335262 , 7283 , 8950-1111 , -2222 , -33332521 , 2521 ,25217239 , 4893 , 1282---2222--

19I/p 9 pos41284211332754 , 2754 ,27545262 , 7283 , 89504849 , 128 , 28294234 , 3783 , 26282345 , 4567 , 56431312 , 1312 ,1312-7292 , -2789 , -2829--2345--

20All min00330 , 0, 00 , 0, 00 , 0, 00 , 0, 0-32768 , -32768 , -32768-32768 , -32768 , -32768-32768 , -32768 , -32768---32768--

21All max65535655353365535 , 65535 , 6553565535 , 65535 , 6553565535 , 65535 , 6553565535 , 65535 , 6553532767 , 32767 , 3276732767 , 32767 , 3276732767 , 32767 , 32767--32767--






















































































































































































Sheet 16: BilinearXMYM_s16_s16XMs16YM_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
BilinearXMYM_s16_s16XMs16YM_CntB25BilinearXMYM_s16_s16XMs16YM_Cnt_BSTbl[3]

BilinearXMYM_s16_s16XMs16YM_CntP9BilinearXMYM_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]


Sheet 17: BilinearXMYM_s16_s16XMs16YM_C P

BilinearXMYM_s16_s16XMs16YM_CntTS--













PParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9I/P10I/P11Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS5input5BSsize5Xsize5BilinearXMYM_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_CntBilinearXMYM_s16_s16XMs16YM_CntP/FCPU 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
02000333441 , 5552 , 5252-12345, -12345 , -123451567 , 8922 , 1781-6292 , -1278 , -1681562 , 7191 , 1781-618 , -178 , -7295712 , 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-2000336363 , 8349 , 3834-2637, -2637 ,-2637-6459, -6459 ,-6459-571 , -1781 , -17811567 , 8922 , 1781-6292 , -1278 , -1681-6188 , -1671 , -8292---6292--

3(input <= XMTbl[BSindex*Xsize])=True12343000336383 , 2782 , 2828546, 8546 ,85464232, 4232 ,42324232, 4232 ,4232-6459, -6459 ,-6459-571 , -1781 , -1781378 , 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
42343276733480 , 378 , 282-3744, -3744 , -37441312 , 1312 ,13121312 , 1312 ,13122521 , 2521 ,25212521 , 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-4000330, 0 , 027544, 27544 ,2754426385, 26385 ,2638526385, 26385 ,2638517633, 17633 ,1763317633, 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-5000332345 , 3456 , 4567-6459, -6459 ,-64595820, 5820 ,58205820, 5820 ,5820-7236, -7236 ,-7236-7236, -7236 ,-723617633, 17633 ,17633---7236--

7((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1]) =False&& (X1index > 0))
and
((sint32)Denominator_f32 == 0)=False
42345228337292 , 4279 , 2678-1581 , -2683 , -1270-6282 , -2782 , -27682628 , 1819 , 3782-2222 , -3333 , -4444-6459, -6459 ,-64592521 , 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
02000333441 , 5552 , 5252-12345, -12345 , 21001567 , 8922 , 1781-6292 , -1278 , -1681562 , 7191 , 1781-618 , -178 , -7295712 , 7189 , 1718--1818--

9( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=True02000333441 , 5552 , 5252-12345, -12345 , 21001567 , 1900 , 2100-6292 , -1278 , -1681562 , 7191 , 1781-618 , -178 , -7295712 , 7189 , 1718--1818--






















































































































































































Sheet 18: BilinearXMYM_s16_s16XMs16YM_C B

BilinearXMYM_s16_s16XMs16YM_CntTS--













BParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9I/P10I/P11Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS5input5BSsize5Xsize5BilinearXMYM_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_CntBilinearXMYM_s16_s16XMs16YM_CntP/FCPU Cycles
1param 1 min02000333441 , 5552 , 5252-12345, -12345 , -123451567 , 8922 , 1781-6292 , -1278 , -1681562 , 7191 , 1781-618 , -178 , -7295712 , 7189 , 1718--562--

2param 1 max65535-2000336363 , 8349 , 3834-2637, -2637 ,-2637-6459, -6459 ,-6459-571 , -1781 , -17811567 , 8922 , 1781-6292 , -1278 , -1681-6188 , -1671 , -8292---6292--

3param 1 pos12343000336383 , 2782 , 2828546, 8546 ,85464232, 4232 ,42324232, 4232 ,4232-6459, -6459 ,-6459-571 , -1781 , -1781378 , 783 , 580---6459--

4param 2 min6336-32768334939 , 2782 , 1829-9484, -9484 ,-94842521 , 2521 ,25212521 , 2521 ,25214232, 4232 ,42324232, 4232 ,4232-6292 , -1278 , -1681--4232--

5param 2 max42343276733480 , 378 , 282-3744, -3744 , -37441312 , 1312 ,13121312 , 1312 ,13122521 , 2521 ,25212521 , 2521 ,2521-571 , -1781 , -1781--2521--

6param 2 zero7567033719 , 378 , 27817633, 17633 ,17633-2637, -2637 ,-2637-2637, -2637 ,-26371312 , 1312 ,13121312 , 1312 ,13124232, 4232 ,4232--1312--

7param 2 neg5234-100033719 , 182 , 49926385, 26385 ,263848546, 8546 ,85468546, 8546 ,8546-2637, -2637 ,-2637-2637, -2637 ,-26372521 , 2521 ,2521---2637--

8param 2 pos8567100033571 , 2379 , 7892-7236, -7236 ,-7236-9484, -9484 ,-9484-9484, -9484 ,-94848546, 8546 ,85468546, 8546 ,85461312 , 1312 ,1312--8546--

9param 3 default4234-2300336128 , 1781 , 37895820, 5820 ,5820-3744, -3744 ,-3744-3744, -3744 ,-3744-9484, -9484 ,-9484-9484, -9484 ,-9484-2637, -2637 ,-2637---9484--

10param 4 default66224000332280 , 1729 , 389117552, 17552 ,1755217633, 17633 ,1763317633, 17633 ,17633-3744, -3744 ,-3744-3744, -3744 ,-37448546, 8546 ,8546---3744--

11I/p 5 min5345-4000330, 0 , 027544, 27544 ,2754426385, 26385 ,2638526385, 26385 ,2638517633, 17633 ,1763317633, 17633 ,17633-9484, -9484 ,-9484--17633--

12I/p 5 max756750003365535 , 65535 , 65535-6439, -6439 ,-6439-7236, -7236 ,-7236-7236, -7236 ,-723626385, 26385 ,2638526385, 26385 ,26385-3744, -3744 ,-3744--26385--

13I/p 5 pos4234-5000332345 , 3456 , 4567-6459, -6459 ,-64595820, 5820 ,58205820, 5820 ,5820-7236, -7236 ,-7236-7236, -7236 ,-723617633, 17633 ,17633---7236--

14I/p 6 min67566000331512 , 3939 , 2923-32768 , -32768 , -3276817552, 17552 ,1755217552, 17552 ,175525820, 5820 ,58205820, 5820 ,582026385, 26385 ,26385--5820--

15I/p 6 max5256-6000337383 , 3930 , 272832767 , 32767 , 3276727544, 27544 ,2754427544, 27544 ,2754417552, 17552 ,1755217552, 17552 ,17552-7236, -7236 ,-7236--17552--

16I/p 6 zero24127000336383 , 2930 , 49040 , 0, 0-6439, -6439 ,-6439-6439, -6439 ,-643927544, 27544 ,2754427544, 27544 ,275445820, 5820 ,5820--27544--

17I/p 6 neg6789-7000336289 , 9402 , 4789-2222 , -3333 , -4444-6459, -6459 ,-6459-6459, -6459 ,-6459-6439, -6439 ,-6439-6439, -6439 ,-643917552, 17552 ,17552---6439--

18I/p 6 pos90868000332799 , 4789, 37834839 , 3812 , 48944232, 4232 ,42324232, 4232 ,4232-6459, -6459 ,-6459-6459, -6459 ,-645927544, 27544 ,27544---6459--

19I/p 9 min1242-8000331638 , 3489 , 47896282 , 1782 , 38392521 , 2521 ,25212521 , 2521 ,2521-32768 , -32768 , -327684232, 4232 ,4232-6439, -6439 ,-6439---32768--

20I/p 9 max64679000331792 , 4893 , 27899-1581 , -1278 , -17811312 , 1312 ,13121312 , 1312 ,131232767 , 32767 , 327672521 , 2521 ,2521-6459, -6459 ,-6459--2521--

21I/p 9 zero7809-9000331638 , 7493 , 78495282 , 1819 , 38204232 , 729, 8292-6459, -6459 ,-64590 , 0, 01312 , 1312 ,13124232, 4232 ,4232--1312--

22I/p 9 neg42345228337292 , 4279 , 2678-1581 , -2683 , -1270-6282 , -2782 , -27682628 , 1819 , 3782-2222 , -3333 , -4444-6459, -6459 ,-64592521 , 2521 ,2521---4444--

23I/p 9 pos3454-3478334794 , 7830 , 2782618 , 178 , 389681 , 168 , 1891-1576 , -2782 , -12784839 , 3812 , 48942628 , 1819 , 3782-618 , -5618 , -1781--4839--

24All min0-32768330, 0 , 0-32768 , -32768 , -32768-32768 , -32768 , -32768-32768 , -32768 , -32768-32768 , -32768 , -32768-32768 , -32768 , -32768-32768 , -32768 , -32768---32768--

25All max65535327673365535 , 65535 , 6553532767 , 32767 , 3276732767 , 32767 , 3276732767 , 32767 , 3276732767 , 32767 , 3276732767 , 32767 , 3276732767 , 32767 , 32767--32767--






















































































































































































Sheet 19: IntplVarXY_u16_u16Xu16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplVarXY_u16_u16Xu16Y_CntB12IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4]

IntplVarXY_u16_u16Xu16Y_CntP3IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4]


Sheet 20: IntplVarXY_u16_u16Xu16Y_Cnt() P

IntplVarXY_u16_u16Xu16Y_CntTS--






PParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize6input6IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4]IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4]IntplVarXY_u16_u16Xu16Y_CntIntplVarXY_u16_u16Xu16Y_CntP/FCPU Cycles
1( input <= TableX[0] )=True4536289 , 1801 , 3489 , 63836282 , 1829 , 8904 , 6171--6282--

2( input <= TableX[0] )=False
and
( input >= TableX[Size-1] )=True
4655358393 , 1781 , 3479 , 83931839 , 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
430002500 , 1781 , 3479 , 35001839 , 4903 , 2789 ,1811--3386--
















































































































Sheet 21: IntplVarXY_u16_u16Xu16Y_Cnt() B

IntplVarXY_u16_u16Xu16Y_CntTS--






BParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize6input6IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4]IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4]IntplVarXY_u16_u16Xu16Y_CntIntplVarXY_u16_u16Xu16Y_CntP/FCPU Cycles
1param 1 default4536289 , 1801 , 3489 , 63836282 , 1829 , 8904 , 6171--6282--

2param 2 min402379 , 3789 , 2892 , 83907292 , 2380 , 2892 , 7111--7292--

3param 2 max4655358393 , 1781 , 3479 , 83931839 , 4903 , 2789 ,3782--3782--

4param 2 pos412341738 , 805 , 12791 , 89334890 , 2892 , 3905 , 7128--4890--

5I/p 3 min434240 , 0, 0 ,08022 , 2902 , 1289 ,1781--1781--

6I/p 3 max4423165535 , 65535 , 65535 ,655356283 , 1902 , 1890 , 8129--6283--

7I/p 3 pos4651111 , 2222, 3333 , 62897292 , 3890 , 2892 ,7282--7292--

8I/p 4 min43432345 , 56212 , 2782 , 78930 , 0, 0 ,0--0--

9I/p 4 max486791671 , 3893 , 189 , 782265535 , 65535 , 65535 ,65535--65535--

10I/p 4 pos421112682 , 1891 , 3893 , 78294444 , 5555, 6666 ,7829--4444--

11All min400 , 0, 0 , 00 , 0, 0 , 0--0--

12All max46553565535 , 65535 , 65535 ,6553565535 , 65535 , 65535 ,65535--65535--
















































































































Sheet 22: IntplVarXY_u16_s16Xu16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplVarXY_u16_s16Xu16Y_CntB16IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3]

IntplVarXY_u16_s16Xu16Y_CntP3IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3]


Sheet 23: IntplVarXY_u16_s16Xu16Y_Cnt() P

IntplVarXY_u16_s16Xu16Y_CntTS--






PParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize7input7IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3]IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3]IntplVarXY_u16_s16Xu16Y_CntIntplVarXY_u16_s16Xu16Y_CntP/FCPU Cycles
1( input <= TableX[0] )=False
and
( input >= TableX[Size-1] )=True
3443-6282 , -2920 , -57388900 , 6920 , 2682--2682--

2( input <= TableX[0] )=True3-327687393 , 6282 , 48943782 , 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
3443-6282 , -2920 , 5008900 , 6920 , 2682--2753--
















































































































Sheet 24: IntplVarXY_u16_s16Xu16Y_Cnt() B

IntplVarXY_u16_s16Xu16Y_CntTS--






BParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize7input7IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3]IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3]IntplVarXY_u16_s16Xu16Y_CntIntplVarXY_u16_s16Xu16Y_CntP/FCPU Cycles
1param 1 default3443-6282 , -2920 , -57388900 , 6920 , 2682--2682--

2param 2 min3-327687393 , 6282 , 48943782 , 8923 , 1892--3782--

3param 2 max332767-6489 , -2768 , -75893678 , 8303 , 2792--2792--

4param 2 zero309373 , 2672 , 57894000 , 5000 , 6000--4000--

5param 2 neg3-1234-7353 , -5839 , -17891000 , 2000 , 3000--3000--

6param 2 pos32346282 , 8494 , 27917894 , 6282 , 8022--7894--

7I/p 3 min3-4332-32768 , -32768 , -327687289 , 9078 , 3782--3782--

8I/p 3 max325332767 , 32767 , 327671782 , 8393 , 8028--1782--

9I/p 3 zero3-45620, 0, 05278 , 8940 , 2622--5278--

10I/p 3 neg3255-2345 , -5618 , -78912628 , 1829 , 8504--8504--

11I/p 3 pos3-6535278 , 1611 , 17897832 , 2628 , 8494--7832--

12I/p 4 min334531267 , 2571 , 17910, 0, 0--0--

13I/p 4 max3-653-1568 , -2629 , -373365535 , 65535 , 65535--65535--

14I/p 4 pos325326393 , 3902 , 73831111 , 2222 , 3333--1111--

15All min3-32768-32768 , -32768 , -327680, 0, 0--0--

16All max33276732767 , 32767 , 3276765535 , 65535 , 65535--65535--
















































































































Sheet 25: IntplVarXY_s16_s16Xs16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplVarXY_s16_s16Xs16Y_CntB18IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3]

IntplVarXY_s16_s16Xs16Y_CntP3IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3]


Sheet 26: IntplVarXY_s16_s16Xs16Y_Cnt() P

IntplVarXY_s16_s16Xs16Y_CntTS--






PParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize8input8IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3]IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3]IntplVarXY_s16_s16Xs16Y_CntIntplVarXY_s16_s16Xs16Y_CntP/FCPU Cycles
1( input <= TableX[0] )=False
and
( input >= TableX[Size-1] )=True
36543-7638 , -7494 , -9037-733 , -7683 , -8494---8494--

2( input <= TableX[0] )=True3-327686389 , 8037 , 68927399 , 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
3443-6282 , -2920 , 5008900 , 6920 , 2682--2753--
















































































































Sheet 27: IntplVarXY_s16_s16Xs16Y_Cnt() B

IntplVarXY_s16_s16Xs16Y_CntTS--






BParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize8input8IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3]IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3]IntplVarXY_s16_s16Xs16Y_CntIntplVarXY_s16_s16Xs16Y_CntP/FCPU Cycles
1param 1 default36543-7638 , -7494 , -9037-733 , -7683 , -8494---8494--

2param 2 min3-327686389 , 8037 , 68927399 , 7290 , 8044--7399--

3param 2 max332767-5628 , -7892 , -89372783 , 7949 , 6389--6389--

4param 2 zero305648 , 7037 , 8037-5628 , -7238 , -6289---5628--

5param 2 neg3-1234-7383 , -6849 , -6839-6383 , -7289 , -4523---4523--

6param 2 pos324226783 , 8003 , 6289-7638 , -7494 , -9037---7638--

7I/p 3 min3-5544-32768 , -32768 , -327686389 , 8037 , 6892--6892--

8I/p 3 max3423532767 , 32767 , 32767-5628 , -7892 , -8937---5628--

9I/p 3 zero3-74430 , 0, 05648 , 7037 , 8037--5648--

10I/p 3 neg32342-4176 , -7282 , -6728-7383 , -6849 , -6839---6839--

11I/p 3 pos3-63435373 , 4279 , 80376783 , 8003 , 6289--6783--

12I/p 4 min33242-733 , -7683 , -8494-32768 , -32768 , -32768---32768--

13I/p 4 max3-67437399 , 7290 , 804432767 , 32767 , 32767--32767--

14I/p 4 zero342342783 , 7949 , 63890 , 0, 0--0--

15I/p 4 neg3-8744-5628 , -7238 , -6289-4176 , -7282 , -6728---4176--

16I/p 4 pos34123-6383 , -7289 , -45235373 , 4279 , 8037--8037--

17All min3-32768-32768 , -32768 , -32768-32768 , -32768 , -32768---32768--

18All max33276732767 , 32767 , 3276732767 , 32767 , 32767--32767--
















































































































Sheet 28: IntplVarXY_s16_u16Xs16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplVarXY_s16_u16Xs16Y_CntB14IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3]

IntplVarXY_s16_u16Xs16Y_CntP3IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3]


Sheet 29: IntplVarXY_s16_u16Xs16Y_Cnt() P

IntplVarXY_s16_u16Xs16Y_CntTS--






PParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize9input9IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3]IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3]IntplVarXY_s16_u16Xs16Y_CntIntplVarXY_s16_u16Xs16Y_CntP/FCPU Cycles
1( input <= TableX[0] )=True364337037 , 7393 , 28907840 , 8904 , 5683--7840--

2( input <= TableX[0] )=False
and
( input >= TableX[Size-1] )=True
3655352728 , 3893 , 47938936 , 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
342343333 , 4000 , 6389-6238 , -9628 , -1822---8864--
















































































































Sheet 30: IntplVarXY_s16_u16Xs16Y_Cnt() B

IntplVarXY_s16_u16Xs16Y_CntTS--






BParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize9input9IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3]IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3]IntplVarXY_s16_u16Xs16Y_CntIntplVarXY_s16_u16Xs16Y_CntP/FCPU Cycles
1param 1 default364337037 , 7393 , 28907840 , 8904 , 5683--7840--

2param 2 min308390 , 8037 , 1781-8036 , -5637 , -3738---8036--

3param 2 max3655352728 , 3893 , 47938936 , 7893 , 4728--4728--

4param 2 pos364525729 , 8947 , 3683-7937 , -5738 , -7933---7933--

5I/p 3 min376530 , 0, 06830 , 8903 , 5827--5827--

6I/p 3 max3978765535 , 65535 , 65535-7944 , -5683 , -6829---7944--

7I/p 3 pos334368356 , 5623 , 83075782 , 7936 , 2682--5782--

8I/p 4 min375659078 , 6383 , 8047-32768 , -32768 , -32768---32768--

9I/p 4 max334235279 , 8037 , 489432767 , 32767 , 32767--32767--

10I/p 4 zero354447292 , 8037 , 18920, 0, 0--0--

11I/p 4 neg342343333 , 8047 , 6389-6238 , -9628 , -1822---6885--

12I/p 4 pos312315555 , 6666 , 77776399 , 7803 , 5893--6399--

13All min300 , 0, 0-32768 , -32768 , -32768---32768--

14All max36553565535 , 65535 , 6553532767 , 32767 , 32767--32767--
















































































































Sheet 31: IntplFxdX_u16_u16Xu16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplFxdX_u16_u16Xu16Y_CntB12IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3]

IntplFxdX_u16_u16Xu16Y_CntP4



Sheet 32: IntplFxdX_u16_u16Xu16Y_Cnt() P

IntplFxdX_u16_u16Xu16Y_CntTS--






PParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX10Size10input10IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3]IntplFxdX_u16_u16Xu16Y_CntIntplFxdX_u16_u16Xu16Y_CntP/FCPU Cycles
1(DeltaX == 0)=True03245347917 , 6193 , 8044--7917--

2(DeltaX == 0)=False
and
( input <= 0 )=False
and
( input >= DeltaX * (Size-1) )=False
655353365100 , 100, 100--100--

3( input <= 0 )=True564307892 , 1682 , 8027--7892--

4( input >= DeltaX * (Size-1) )=True6343475346829 , 7936 , 6926--6926--
















































































































Sheet 33: IntplFxdX_u16_u16Xu16Y_Cnt() B

IntplFxdX_u16_u16Xu16Y_CntTS--






BParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX10Size10input10IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3]IntplFxdX_u16_u16Xu16Y_CntIntplFxdX_u16_u16Xu16Y_CntP/FCPU Cycles
1param 1 min03245347917 , 6193 , 8044--7917--

2param 1 max655353365100 , 100, 100--100--

3param 1 pos34353544800 , 900 , 1000--815--

4param 2 default6343475346829 , 7936 , 6926--6926--

5param 3 min564307892 , 1682 , 8027--7892--

6param 3 max43243655356822 , 7922 , 8027--8027--

7param 3 pos675634232111 , 6778 , 7681--4287--

8I/p 4 min4234367670 , 0, 0--0--

9I/p 4 max79553423465535 , 65535 , 65535--65535--

10I/p 4 pos2643364566784 , 7943 , 7689--7689--

11All min0300 , 0, 0--0--

12All max6553536553565535 , 65535 , 65535--65535--
















































































































Sheet 34: IntplFxdX_u16_s16Xu16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplFxdX_u16_s16Xu16Y_CntB16IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3]

IntplFxdX_u16_s16Xu16Y_CntP4



Sheet 35: IntplFxdX_u16_s16Xu16Y_Cnt() P

IntplFxdX_u16_s16Xu16Y_CntTS--






PParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX11Size11input11IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3]IntplFxdX_u16_s16Xu16Y_CntIntplFxdX_u16_s16Xu16Y_CntP/FCPU Cycles
1(DeltaX == 0)=False
and
( input <= 0 )=False
and
( input >= DeltaX * (Size-1) )=True
-3276834903573 , 7037 , 3789--3789--

2( input <= 0 )=True327673-5789789 , 7017 , 782--789--

3(DeltaX == 0)=True03-689668 , 806 , 29--68--

4( input >= DeltaX * (Size-1) )=False8950380031682 , 378 , 793--515--
















































































































Sheet 36: IntplFxdX_u16_s16Xu16Y_Cnt() B

IntplFxdX_u16_s16Xu16Y_CntTS--






BParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX11Size11input11IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3]IntplFxdX_u16_s16Xu16Y_CntIntplFxdX_u16_s16Xu16Y_CntP/FCPU Cycles
1param 1 min-3276834903573 , 7037 , 3789--3789--

2param 1 max327673-5789789 , 7017 , 782--789--

3param 1 zero03-689668 , 806 , 29--68--

4param 1 neg-67383178938 , 89 , 792--792--

5param 1 pos79223-8923783 , 8037 , 783--783--

6param 2 default8950380031682 , 378 , 793--515--

7param 3 min-78393-327685793 , 2990 , 8074--5793--

8param 3 max67383327677923 , 8036 , 2782--2782--

9param 3 zero-6829305728 , 8932 , 7937--5728--

10param 3 neg43893-268195729 , 8037 , 5728--5729--

11param 3 pos-7939379398593 , 7893 , 8027--8027--

12I/p 4 min27823-58290, 0, 0--0--

13I/p 4 max-58293167165535 , 65535 , 65535--65535--

14I/p 4 pos17893-79237839 , 5738 , 9043--7839--

15All min-327683-327680, 0, 0--0--

16All max3276733276765535 , 65535 , 65535--65535--
















































































































Sheet 37: IntplFxdX_s16_s16Xs16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplFxdX_s16_s16Xs16Y_CntB18IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3]

IntplFxdX_s16_s16Xs16Y_CntP4



Sheet 38: IntplFxdX_s16_s16Xs16Y_Cnt() P

IntplFxdX_s16_s16Xs16Y_CntTS--






PParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX12Size12input12IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3]IntplFxdX_s16_s16Xs16Y_CntIntplFxdX_s16_s16Xs16Y_CntP/FCPU Cycles
1(DeltaX == 0)=False
and
( input <= 0 )=True
-327683-11116833 , 8027 , 5782--6833--

2( input <= 0 )=False
and
( input >= DeltaX * (Size-1) )=False
3276732222-5672 , -6821 , -782---5749--

3(DeltaX == 0)=True03-33333792 , 8090 , 7892--3792--

4( input >= DeltaX * (Size-1) )=True-683934444-8027 , -6922 , -7020---7020--
















































































































Sheet 39: IntplFxdX_s16_s16Xs16Y_Cnt() B

IntplFxdX_s16_s16Xs16Y_CntTS--






BParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX12Size12input12IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3]IntplFxdX_s16_s16Xs16Y_CntIntplFxdX_s16_s16Xs16Y_CntP/FCPU Cycles
1param 1 min-327683-11116833 , 8027 , 5782--6833--

2param 1 max3276732222-5672 , -6821 , -782---5749--

3param 1 zero03-33333792 , 8090 , 7892--3792--

4param 1 neg-683934444-8027 , -6922 , -7020---7020--

5param 1 pos78393-55555829 , 8027 , 5783--5829--

6param 2 default-748436666-8027 , -7027 , -4027---4027--

7param 3 min68393-327685892 , 2789 , 1781--5892--

8param 3 max-2728332767-7922 , -6811 , -5702---5702--

9param 3 zero1000305729 , 8027 , 1671--5729--

10param 3 neg-20003-5839-5729 , -7922 , -1678---5729--

11param 3 pos3000389266829 , 2782 , 7027--7027--

12I/p 4 min-40003-7777-32768 , -32768 , -32768---32768--

13I/p 4 max50003888832767 , 32767 , 32767--32767--

14I/p 4 zero-60003-99990, 0, 0--0--

15I/p 4 neg700036545-7683 , -3527 , -8936---3798--

16I/p 4 pos-80003-57644763 , 6822 , 8903--4763--

17All min-327683-32768-32768 , -32768 , -32768---32768--

18All max3276733276732767 , 32767 , 32767--32767--
















































































































Sheet 40: IntplFxdX_s16_u16Xs16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplFxdX_s16_u16Xs16Y_CntB14IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3]

IntplFxdX_s16_u16Xs16Y_CntP4



Sheet 41: IntplFxdX_s16_u16Xs16Y_Cnt() P

IntplFxdX_s16_u16Xs16Y_CntTS--






PParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX13Size13input13IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3]IntplFxdX_s16_u16Xs16Y_CntIntplFxdX_s16_u16Xs16Y_CntP/FCPU Cycles
1(DeltaX == 0)=True0344446782 , 8027 , 2682--6782--

2(DeltaX == 0)=False
and
( input <= 0 )=False
and
( input >= DeltaX * (Size-1) )=False
6553536553332765 , 32765 , 32765--32765--

3( input <= 0 )=True13443015761 , 6789 , 2892--15761--

4( input >= DeltaX * (Size-1) )=True645365535-6822 , -2682 , -7802---7802--
















































































































Sheet 42: IntplFxdX_s16_u16Xs16Y_Cnt() B

IntplFxdX_s16_u16Xs16Y_CntTS--






BParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX13Size13input13IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3]IntplFxdX_s16_u16Xs16Y_CntIntplFxdX_s16_u16Xs16Y_CntP/FCPU Cycles
1param 1 min0344446782 , 8027 , 2682--6782--

2param 1 max6553536553332765 , 32765 , 32765--32765--

3param 1 pos4553322225785 , 7899 , 9047--6816--

4param 2 default1233111-600 , -600 , -600---600--

5param 3 min13443015761 , 6789 , 2892--15761--

6param 3 max645365535-6822 , -2682 , -7802---7802--

7param 3 pos4234363428853 , 8027 , 3728--5887--

8I/p 4 min97803100-32768 , -32768 , -32768---32768--

9I/p 4 max5345320032767 , 32767 , 32767--32767--

10I/p 4 zero643533000, 0, 0--0--

11I/p 4 neg41233400-7282 , -6822 , -6922---7238--

12I/p 4 pos989035006238 , 8903 , 2562--6372--

13All min030-32768 , -32768 , -32768---32768--

14All max6553536553532767 , 32767 , 32767--32767--















































































































3 - Standard Definitions

Standard Definitions