This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

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.

Run the high-integrity 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

Check usage of Abs blocks

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

Check usage of Math Function blocks (rem and reciprocal functions)

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)
hisl_0005: Usage of Product blocksNot applicable
hisl_0006: Usage of While Iterator blocks

Check usage of While Iterator blocks

hisl_0007: Usage of For Iterator or While Iterator subsystemsCheck sample time-dependent blocks
hisl_0008: Usage of For Iterator Blocks

Check usage of For Iterator blocks

hisl_0010: Usage of If blocks and If Action Subsystem blocks

Check usage of If blocks and If Action Subsystem blocks

hisl_0011: Usage of Switch Case blocks and Action Subsystem blocks

Check usage Switch Case blocks and Switch Case Action Subsystem blocks

hisl_0012: Usage of conditionally executed subsystemsCheck usage of conditionally executed subsystems
hisl_0013: Usage of data store blocksCheck safety-related diagnostic settings for data store memory
hisl_0015: Usage of Merge blocksCheck usage of Merge blocks
hisl_0016: Usage of blocks that compute relational operatorsCheck for Relational Operator blocks that equate floating-point types
hisl_0017: Usage of blocks that compute relational operators (2)Check usage of Relational Operator blocks
hisl_0018: Usage of Logical Operator blockCheck usage of Logical Operator blocks
hisl_0019: Usage of bitwise operationsCheck for bitwise operations in Simulink blocks.
hisl_0020: Blocks not recommended for MISRA C:2012 compliance

Check for blocks not recommended for C/C++ production code deployment

Check for blocks not recommended for MISRA C:2012

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