Model Advisor Checks for High-Integrity Modeling Guidelines

The Simulink® Check™ Model Advisor provides High-Integrity System Modelling checks that you can use to verify compliance with safety standards, including:

The high-integrity guidelines and their corresponding 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.

To check compliance with High Integrity System Model standards, run the high-integrity checks from these Model Advisor folders:

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

  • By Task > Modeling Standards for IEC 61508 > High-Integrity Systems

  • By Task > Modeling Standards for IEC 62304 > High-Integrity Systems

  • By Task > Modeling Standards for EN 50128 > High-Integrity Systems

  • By Task > Modeling Standards for ISO 26262 > High-Integrity Systems

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

High-Integrity Modeling Guideline Model Advisor Checks
hisl_0001: Usage of Abs blockCheck usage of Abs blocks (Simulink Check)
hisl_0002: Usage of Math Function blocks (rem and reciprocal)Check usage of Math Function blocks (rem and reciprocal functions) (Simulink Check)
hisl_0003: Usage of Square Root blocksNot applicable
hisl_0004: Usage of Math Function blocks (natural logarithm and base 10 logarithm)Check usage of Math Function blocks (log and log10 functions) (Simulink Check)
hisl_0005: Usage of Product blocksNot applicable
hisl_0006: Usage of While Iterator blocksCheck usage of While Iterator blocks (Simulink Check)
hisl_0007: Usage of For Iterator or While Iterator subsystemsCheck usage of For and While Iterator subsystems (Simulink Check)
hisl_0008: Usage of For Iterator BlocksCheck usage of For Iterator blocks (Simulink Check)
hisl_0010: Usage of If blocks and If Action Subsystem blocksCheck usage of If blocks and If Action Subsystem blocks (Simulink Check)
hisl_0011: Usage of Switch Case blocks and Action Subsystem blocksCheck usage of Switch Case blocks and Switch Case Action Subsystem blocks (Simulink Check)
hisl_0012: Usage of conditionally executed subsystemsCheck usage of conditionally executed subsystems (Simulink Check)
hisl_0013: Usage of data store blocksCheck safety-related diagnostic settings for data store memory (Simulink Check)
hisl_0015: Usage of Merge blocksCheck usage of Merge blocks (Simulink Check)
hisl_0016: Usage of blocks that compute relational operatorsCheck for Relational Operator blocks that equate floating-point types (Simulink Check)
hisl_0017: Usage of blocks that compute relational operators (2)Check usage of Relational Operator blocks (Simulink Check)
hisl_0018: Usage of Logical Operator blockCheck usage of Logical Operator blocks (Simulink Check)
hisl_0019: Usage of bitwise operationsCheck usage of bit operation blocks (Simulink Check)
hisl_0020: Blocks not recommended for MISRA C:2012 compliance

Check for blocks not recommended for C/C++ production code deployment (Simulink Check)

Check for blocks not recommended for MISRA C:2012 (Simulink Check)

hisl_0021: Consistent vector indexing methodCheck for inconsistent vector indexing methods (Simulink Check)
hisl_0022: Data type selection for index signalsCheck data types for blocks with index signals (Simulink Check)
hisl_0023: Verification of model and subsystem variantsCheck for variant blocks with 'Generate preprocessor conditionals' active (Simulink Check)
hisl_0024: Inport interface definitionCheck for root Inports with missing properties (Simulink Check)
hisl_0025: Design min/max specification of input interfacesCheck for root Inports with missing range definitions (Simulink Check)
hisl_0026: Design min/max specification of output interfacesCheck for root Outports with missing range definitions (Simulink Check)
hisl_0028: Usage of Reciprocal Square Root blocksNot applicable
hisl_0029: Usage of Assignment blocksCheck usage of Assignment blocks (Simulink Check)
hisl_0031: Model file namesCheck model file name (Simulink Check)
hisl_0032: Model object namesCheck model object names (Simulink Check)
hisl_0033: Usage of Lookup Table blocksCheck usage of lookup table blocks (Simulink Check)
hisl_0034: Usage of Signal Routing blocksCheck usage of Signal Routing blocks (Simulink Check)
hisl_0036: Configuration Parameters > Diagnostics > SavingCheck safety-related diagnostic settings for saving (Simulink Check)
hisl_0037: Configuration Parameters > Model ReferencingCheck safety-related model referencing settings (Simulink Check)
hisl_0038: Configuration Parameters > Code Generation > CommentsCheck safety-related code generation settings for comments (Simulink Check)
hisl_0039: Configuration Parameters > Code Generation > InterfaceCheck safety-related code generation interface settings (Simulink Check)
hisl_0040: Configuration Parameters > Solver > Simulation timeCheck safety-related solver settings for simulation time (Simulink Check)
hisl_0041: Configuration Parameters > Solver > Solver optionsCheck safety-related solver settings for solver options (Simulink Check)
hisl_0042: Configuration Parameters > Solver > Tasking and sample time optionsCheck safety-related solver settings for tasking and sample-time (Simulink Check)
hisl_0043: Configuration Parameters > Diagnostics > SolverCheck safety-related diagnostic settings for solvers (Simulink Check)
hisl_0044: Configuration Parameters > Diagnostics > Sample TimeCheck safety-related diagnostic settings for sample time (Simulink Check)
hisl_0045: Configuration Parameters > Math and Data Types > Implement logic signals as Boolean data (vs. double)Check safety-related optimization settings for logic signals (Simulink Check)
hisl_0046: Configuration Parameters > Simulation Target > Block reductionCheck safety-related block reduction optimization settings (Simulink Check)
hisl_0047: Configuration Parameters > Code Generation > Code StyleCheck safety-related code generation settings for code style (Simulink Check)
hisl_0048: Configuration Parameters > Math and Data Types > Application lifespan (days)Check safety-related optimization settings for application lifespan (Simulink Check)
hisl_0049: Configuration Parameters > Code Generation > IdentifiersCheck safety-related code generation identifier settings (Simulink Check)
hisl_0051: Configuration Parameters > Code Generation > Optimization > Loop unrolling thresholdCheck safety-related optimization settings for Loop unrolling threshold (Simulink Check)
hisl_0052: Configuration Parameters > Code Generation > Optimization > Data initializationCheck safety-related optimization settings for data initialization (Simulink Check)
hisl_0053: Configuration Parameters > Code Generation > Optimization > Remove code from floating-point to integer conversions that wraps out-of-range valuesCheck safety-related optimization settings for data type conversions (Simulink Check)
hisl_0054: Configuration Parameters > Code Generation > Optimization > Remove code that protects against division arithmetic exceptionsCheck safety-related optimization settings for division arithmetic exceptions (Simulink Check)
hisl_0056: Configuration Parameters > Code Generation > Optimization > Optimize using the specified minimum and maximum valuesCheck safety-related optimization settings for specified minimum and maximum values (Simulink Check)
hisl_0060: Configuration parameters that improve MISRA C:2012 complianceCheck configuration parameters for MISRA C:2012 (Simulink Check)
hisl_0061: Unique identifiers for clarityCheck Stateflow charts for uniquely defined data objects (Simulink Check)
hisl_0062: Global variables in graphical functionsCheck global variables in graphical functions (Simulink Check)
hisl_0063: Length of user-defined object names to improve MISRA C:2012 complianceCheck for length of user-defined object names (Simulink Check)
hisl_0066: Usage of Gain blocksCheck usage of Gain blocks (Simulink Check)
hisl_0070: Placement of requirement links in a modelCheck for model elements that do not link to requirements (Simulink Check)
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 complianceCheck data type of loop control variables (Simulink Check)
hisl_0301: Configuration Parameters > Diagnostics > CompatibilityCheck safety-related diagnostic settings for compatibility (Simulink Check)
hisl_0302: Configuration Parameters > Diagnostics > Data Validity > ParametersCheck safety-related diagnostic settings for parameters (Simulink Check)
hisl_0303: Configuration Parameters > Diagnostics > Data Validity > Merge blocksCheck safety-related diagnostic settings for Merge blocks (Simulink Check)
hisl_0304: Configuration Parameters > Diagnostics > Data Validity > Model initializationCheck safety-related diagnostic settings for model initialization (Simulink Check)
hisl_0305: Configuration Parameters > Diagnostics > Data Validity > DebuggingCheck safety-related diagnostic settings for data used for debugging (Simulink Check)
hisl_0306: Configuration Parameters > Diagnostics > Connectivity > SignalsCheck safety-related diagnostic settings for signal connectivity (Simulink Check)
hisl_0307: Configuration Parameters > Diagnostics > Connectivity > BusesCheck safety-related diagnostic settings for bus connectivity (Simulink Check)
hisl_0308: Configuration Parameters > Diagnostics > Connectivity > Function callsCheck safety-related diagnostic settings that apply to function-call connectivity (Simulink Check)
hisl_0309: Configuration Parameters > Diagnostics > Type ConversionCheck safety-related diagnostic settings for type conversions (Simulink Check)
hisl_0310: Configuration Parameters > Diagnostics > Model ReferencingCheck safety-related diagnostic settings for model referencing (Simulink Check)
hisl_0311: Configuration Parameters > Diagnostics > StateflowCheck safety-related diagnostic settings for Stateflow (Simulink Check)
hisl_0314: Configuration Parameters > Diagnostics > Data Validity > SignalsCheck safety-related diagnostic settings for signal data (Simulink Check)
hisf_0001: State Machine TypeCheck state machine type of Stateflow charts (Simulink Check)
hisf_0002: User-specified state/transition execution orderCheck Stateflow charts for ordering of states and transitions (Simulink Check)
hisf_0003: Usage of bitwise operationsCheck usage of bitwise operations in Stateflow charts (Simulink Check)
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)Check for Strong Data Typing with Simulink I/O (Simulink Check)
hisf_0011: Stateflow debugging settingsCheck Stateflow debugging options (Simulink Check)
hisf_0013: Usage of transition paths (crossing parallel state boundaries)Check Stateflow charts for transition paths that cross parallel state boundaries (Simulink Check)
hisf_0014: Usage of transition paths (passing through states)Check for inappropriate use of transition paths (Simulink Check)
hisf_0015: Strong data typing (casting variables and parameters in expressions)Check Stateflow charts for strong data typing (Simulink Check)
hisf_0016: Stateflow port namesCheck naming of ports in Stateflow charts (Simulink Check)
hisf_0017: Stateflow data object scopingCheck scoping of Stateflow data objects (Simulink Check)
hisf_0064: Shift operations for Stateflow data to improve code complianceCheck usage of shift operations for Stateflow data (Simulink Check)
hisf_0065: Type cast operations in Stateflow to improve code complianceCheck assignment operations in Stateflow Charts (Simulink Check)
hisf_0211: Protect against use of unary operators in Stateflow Charts to improve code complianceCheck Stateflow charts for unary operators (Simulink Check)
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 headersCheck usage of standardized MATLAB function headers (Simulink Check)
himl_0002: Strong data typing at MATLAB function boundariesCheck for MATLAB Function interfaces with inherited properties (Simulink Check)
himl_0003: Limitation of MATLAB function complexityCheck MATLAB Function metrics (Simulink Check)
himl_0004: MATLAB Code Analyzer recommendations for code generationCheck MATLAB Code Analyzer messages (Simulink Check)
himl_0006: MATLAB code if / elseif / else patternsCheck if/elseif/else patterns in MATLAB Function blocks (Simulink Check)
himl_0007: MATLAB code switch / case / otherwise patternsCheck switch statements in MATLAB Function blocks (Simulink Check)
himl_0008: MATLAB code relational operator data typesCheck usage of relational operators in MATLAB Function blocks (Simulink Check)
himl_0009: MATLAB code with equal / not equal relational operatorsCheck usage of equality operators in MATLAB Function blocks (Simulink Check)
himl_0010: MATLAB code with logical operators and functionsCheck usage of logical operators and functions in MATLAB Function blocks (Simulink Check)
himl_0011: Data type and size of condition expressionsCheck type and size of condition expressions (Simulink Check)