Documentation

Model Advisor Checks for High-Integrity Modeling Guidelines

Simulink® Check™ includes Model Advisor checks for compliance with safety standards referenced in the high-integrity guidelines, including:

The high-integrity guidelines and corresponding Model Advisor checks are summarized in the table. For the guidelines that do not have Model Advisor checks, it is not possible to automate checking of the guideline. Guidelines without a corresponding check are noted as not applicable.

Run the checks from these Model Advisor folders:

  • Modeling Standards for DO-178C/DO-331 > High-Integrity Systems

  • Modeling Standards for IEC 61508 > High-Integrity Systems

  • Modeling Standards for IEC 62304 > High-Integrity Systems

  • Modeling Standards for EN 50128 > High-Integrity Systems

  • Modeling Standards for ISO 26262 > High-Integrity Systems

For information on using the Model Advisor, see Run Model Checks.

High-Integrity Modeling Guideline Model Advisor Checks
hisl_0001: Usage of Abs block

DO-178C/DO-331: Check usage of Math Operations blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Math Operations blocks

hisl_0002: Usage of Math Function blocks (rem and reciprocal)

DO-178C/DO-331: Check usage of Math Operations blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Math Operations blocks

hisl_0003: Usage of Square Root blocksNot applicable
hisl_0004: Usage of Math Function blocks (natural logarithm and base 10 logarithm)

DO-178C/DO-331: Check usage of Math Operations blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262:Check usage of Math Operations blocks

hisl_0005: Usage of Product blocks

DO-178C/DO-331: Check safety-related diagnostic settings for signal data

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for signal data

hisl_0006: Usage of While Iterator blocks

DO-178C/DO-331: Check usage of Ports and Subsystems blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Ports and Subsystems blocks

hisl_0007: Usage of While Iterator subsystems

DO-178C/DO-331: Check usage of Ports and Subsystems blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Ports and Subsystems blocks

hisl_0008: Usage of For Iterator Blocks

DO-178C/DO-331: Check usage of Ports and Subsystems blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Ports and Subsystems blocks

hisl_0009: Usage of For Iterator Subsystem blocks

DO-178C/DO-331: Check usage of Ports and Subsystems blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Ports and Subsystems blocks

hisl_0010: Usage of If blocks and If Action Subsystem blocks

DO-178C/DO-331: Check usage of Ports and Subsystems blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Ports and Subsystems blocks

hisl_0011: Usage of Switch Case blocks and Action Subsystem blocks

DO-178C/DO-331: Check usage of Ports and Subsystems blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Ports and Subsystems blocks

hisl_0012: Usage of conditionally executed subsystemsNot applicable
hisl_0013: Usage of data store blocks

DO-178C/DO-331: Check safety-related diagnostic settings for data store memory

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for data store memory

hisl_0015: Usage of Merge blocksNot applicable
hisl_0016: Usage of blocks that compute relational operators

DO-178C/DO-331: Check usage of Logic and Bit Operations blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Logic and Bit Operations blocks

hisl_0017: Usage of blocks that compute relational operators (2)

DO-178C/DO-331: Check usage of Logic and Bit Operations blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Logic and Bit Operations blocks

hisl_0018: Usage of Logical Operator block

DO-178C/DO-331: Check usage of Logic and Bit Operations blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Logic and Bit Operations blocks

hisl_0019: Usage of Bitwise Operator blockNot applicable
hisl_0020: Blocks not recommended for MISRA C:2012 compliance

DO-178C/DO-331: Check for blocks not recommended for MISRA C:2012

DO-178C/DO-331: Check for blocks not recommended for C/C++ production code deployment

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check for blocks not recommended for MISRA C:2012

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check for blocks not recommended for C/C++ production code deployment

hisl_0021: Consistent vector indexing method

DO-178C/DO-331: Check for inconsistent vector indexing methods

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check for inconsistent vector indexing methods

hisl_0022: Data type selection for index signalsNot applicable
hisl_0023: Verification of model and subsystem variants

DO-178C/DO-331: Check for variant blocks with 'Generate preprocessor conditionals' active

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check for variant blocks with 'Generate preprocessor conditionals' active

hisl_0024: Inport interface definition

DO-178C/DO-331: Check for root Inports with missing properties

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check for root Inports with missing properties

hisl_0025: Design min/max specification of input interfaces

DO-178C/DO-331: Check for root Inports with missing range definitions

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check for root Inports with missing range definitions

hisl_0026: Design min/max specification of output interfaces

DO-178C/DO-331: Check for root Outports with missing range definitions

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check for root Outports with missing range definitions

hisl_0028: Usage of Reciprocal Square Root blocksNot applicable
hisl_0029: Usage of Assignment blocks

DO-178C/DO-331: Check usage of Math Operations blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Math Operations blocks

hisl_0031: File and folder namesNot applicable
hisl_0032: Model object names

DO-178C/DO-331: Check model object names

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check model object names

hisl_0033: Usage of Lookup Table blocks

DO-178C/DO-331: Check usage of lookup table blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of lookup table blocks

hisl_0034: Usage of Signal Routing blocks

DO-178C/DO-331: Check usage of Signal Routing blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Signal Routing blocks

hisl_0036: Configuration Parameters > Diagnostics > Saving

DO-178C/DO-331: Check safety-related diagnostic settings for saving

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for saving

hisl_0037: Configuration Parameters > Model Referencing

DO-178C/DO-331: Check safety-related model referencing settings

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related model referencing settings

hisl_0038: Configuration Parameters > Code Generation > Comments

DO-178C/DO-331: Check safety-related code generation settings

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related code generation settings

hisl_0039: Configuration Parameters > Code Generation > Interface

DO-178C/DO-331: Check safety-related code generation settings

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related code generation settings

hisl_0040: Configuration Parameters > Solver > Simulation time

DO-178C/DO-331: Check safety-related solver settings for simulation time

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related solver settings for simulation time

hisl_0041: Configuration Parameters > Solver > Solver options

DO-178C/DO-331: Check safety-related solver settings for solver options

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related solver settings for solver options

hisl_0042: Configuration Parameters > Solver > Tasking and sample time options

DO-178C/DO-331: Check safety-related solver settings for tasking and sample-time

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related solver settings for tasking and sample-time

hisl_0043: Configuration Parameters > Diagnostics > Solver

DO-178C/DO-331: Check safety-related diagnostic settings for solvers

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for solvers

hisl_0044: Configuration Parameters > Diagnostics > Sample Time

DO-178C/DO-331: Check safety-related diagnostic settings for sample time

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for sample time

hisl_0045: Configuration Parameters > Optimization > Implement logic signals as Boolean data (vs. double)

DO-178C/DO-331: Check safety-related optimization settings

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related optimization settings

hisl_0046: Configuration Parameters > Optimization > Block reduction

DO-178C/DO-331: Check safety-related optimization settings

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related optimization settings

hisl_0047: Configuration Parameters > Code Generation > Code Style

DO-178C/DO-331: Check safety-related code generation settings

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related code generation settings

hisl_0048: Configuration Parameters > Optimization > Application lifespan (days)

DO-178C/DO-331: Check safety-related optimization settings

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related optimization settings

hisl_0049: Configuration Parameters > Code Generation > Symbols

DO-178C/DO-331: Check safety-related code generation settings

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related code generation settings

hisl_0051: Configuration Parameters > Optimization > Signals and Parameters > Loop unrolling threshold

DO-178C/DO-331: Check safety-related optimization settings for Loop unrolling threshold

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related optimization settings for Loop unrolling threshold

hisl_0052: Configuration Parameters > Optimization > Data initialization

DO-178C/DO-331: Check safety-related optimization settings

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related optimization settings

hisl_0053: Configuration Parameters > Optimization > Remove code from floating-point to integer conversions that wraps out-of-range values

DO-178C/DO-331: Check safety-related optimization settings

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related optimization settings

hisl_0054: Configuration Parameters > Optimization > Remove code that protects against division arithmetic exceptions

DO-178C/DO-331: Check safety-related optimization settings

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related optimization settings

hisl_0055: Prioritization of code generation objectives for high-integrity systemsNot applicable
hisl_0060: Configuration parameters that improve MISRA C:2012 compliance

DO-178C/DO-331: Check configuration parameters for MISRA C:2012

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check configuration parameters for MISRA C:2012

In Modeling Standards for MISRA C:2012 folder: Check for bitwise operations on signed integers

hisl_0061: Unique identifiers for clarity

DO-178C/DO-331: Check Stateflow charts for uniquely defined data objects

DO-178C/DO-331: Check usage of Stateflow constructs

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check Stateflow charts for uniquely defined data objects

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Stateflow constructs

hisl_0062: Global variables in graphical functionsNot applicable
hisl_0063: Length of user-defined object names to improve MISRA C:2012 complianceNot applicable
hisl_0070: Placement of requirement links in a model

DO-178C/DO-331: Check for model elements that do not link to requirements

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check for model elements that do not link to requirements

hisl_0101: Avoid invariant comparison operations to improve MISRA C:2012 complianceNot applicable
hisl_0102: Data type of loop control variables to improve MISRA C:2012 complianceNot applicable
hisl_0201: Define reserved keywords to improve MISRA C:2012 complianceNot applicable
hisl_0202: Use of data conversion blocks to improve MISRA C:2012 complianceNot applicable
hisl_0301: Configuration Parameters > Diagnostics > Compatibility

DO-178C/DO-331: Check safety-related diagnostic settings for compatibility

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for compatibility

hisl_0302: Configuration Parameters > Diagnostics > Data Validity > Parameters

DO-178C/DO-331: Check safety-related diagnostic settings for parameters

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for parameters

hisl_0303: Configuration Parameters > Diagnostics > Merge block

DO-178C/DO-331: Check safety-related diagnostic settings for Merge blocks

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for Merge blocks

hisl_0304: Configuration Parameters > Diagnostics > Model initialization

DO-178C/DO-331: Check safety-related diagnostic settings for model initialization

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for model initialization

hisl_0305: Configuration Parameters > Diagnostics > Debugging

DO-178C/DO-331: Check safety-related diagnostic settings for data used for debugging

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for data used for debugging

hisl_0306: Configuration Parameters > Diagnostics > Connectivity > Signals

DO-178C/DO-331: Check safety-related diagnostic settings for signal connectivity

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for signal connectivity

hisl_0307: Configuration Parameters > Diagnostics > Connectivity > Buses

DO-178C/DO-331: Check safety-related diagnostic settings for bus connectivity

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for bus connectivity

hisl_0308: Configuration Parameters > Diagnostics > Connectivity > Function calls

DO-178C/DO-331: Check safety-related diagnostic settings that apply to function-call connectivity

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings that apply to function-call connectivity

hisl_0309: Configuration Parameters > Diagnostics > Type Conversion

DO-178C/DO-331: Check safety-related diagnostic settings for type conversions

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for type conversions

hisl_0310: Configuration Parameters > Diagnostics > Model Referencing

DO-178C/DO-331: Check safety-related diagnostic settings for model referencing

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for model referencing

hisl_0311: Configuration Parameters > Diagnostics > Stateflow

DO-178C/DO-331: Check safety-related diagnostic settings for Stateflow

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check safety-related diagnostic settings for Stateflow

hisl_0401: Encapsulation of code to improve MISRA C:2012 complianceNot applicable
hisl_0402: Use of custom #pragma to improve MISRA C:2012 complianceNot applicable
hisl_0403: Use of char data type to improve MISRA C:2012 complianceNot applicable
hisf_0001: Mealy and Moore semantics

DO-178C/DO-331: Check state machine type of Stateflow charts

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check state machine type of Stateflow charts

hisf_0002: User-specified state/transition execution order

DO-178C/DO-331: Check Stateflow charts for ordering of states and transitions

DO-178C/DO-331: Check usage of Stateflow constructs

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check Stateflow charts for ordering of states and transitions

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Stateflow constructs

hisf_0003: Usage of bitwise operations

In Modeling Standards for MAAB > Stateflow folder: Check for bitwise operations in Stateflow charts

hisf_0004: Usage of recursive behaviorNot applicable
hisf_0007: Usage of junction conditions (maintaining mutual exclusion)Not applicable
hisf_0009: Strong data typing (Simulink and Stateflow boundary)

DO-178C/DO-331: Check usage of Stateflow constructs

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Stateflow constructs

hisf_0011: Stateflow debugging settings

DO-178C/DO-331: Check Stateflow debugging options

DO-178C/DO-331: Check usage of Stateflow constructs

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check Stateflow debugging options

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of Stateflow constructs

hisf_0013: Usage of transition paths (crossing parallel state boundaries)

DO-178C/DO-331: Check Stateflow charts for transition paths that cross parallel state boundaries

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check Stateflow charts for transition paths that cross parallel state boundaries

hisf_0014: Usage of transition paths (passing through states)Not applicable
hisf_0015: Strong data typing (casting variables and parameters in expressions)

DO-178C/DO-331: Check Stateflow charts for strong data typing

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check Stateflow charts for strong data typing

hisf_0064: Shift operations for Stateflow data to improve code compliance

DO-178C/DO-331: Check usage of shift operations for Stateflow data

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check usage of shift operations for Stateflow data

hisf_0065: Type cast operations in Stateflow to improve code compliance

DO-178C/DO-331: Check assignment operations in Stateflow charts

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check assignment operations in Stateflow charts

hisf_0211: Protect against use of unary operators in Stateflow Charts to improve code compliance

DO-178C/DO-331: Check Stateflow charts for unary operators

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check Stateflow charts for unary operators

hisf_0213: Protect against divide-by-zero calculations in Stateflow charts to improve MISRA C:2012 complianceNot applicable
himl_0001: Usage of standardized MATLAB function headersNot applicable
himl_0002: Strong data typing at MATLAB function boundaries

DO-178C/DO-331: Check for MATLAB Function interfaces with inherited properties

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check for MATLAB Function interfaces with inherited properties

himl_0003: Limitation of MATLAB function complexity

DO-178C/DO-331: Check MATLAB Function metrics

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check MATLAB Function metrics

himl_0004: MATLAB Code Analyzer recommendations for code generation

DO-178C/DO-331: Check MATLAB Code Analyzer messages

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check MATLAB Code Analyzer messages

himl_0005: Usage of global variables in MATLAB functions

DO-178C/DO-331: Check MATLAB code for global variables

IEC 61508, IEC 62304, EN 50128, and ISO 26262: Check MATLAB code for global variables

himl_0006: MATLAB code if / elseif / else patternsNot applicable
himl_0007: MATLAB code switch / case / otherwise patternsNot applicable
himl_0008: MATLAB code relational operator data typesNot applicable
himl_0009: MATLAB code with equal / not equal relational operatorsNot applicable
himl_0010: MATLAB code with logical operators and functionsNot applicable
Was this topic helpful?