Model Checks for IEC 61508, IEC 62304, ISO 26262, ISO 25119, and EN 50128/EN 50657 Standard Compliance

You can check that your model or subsystem complies with selected aspects of the following standards by running the Model Advisor:

  • ISO 26262:2018 Road vehicles — Functional safety

  • ISO 25119:2018 Tractors And Machinery For Agriculture And Forestry — Safety-Related Parts Of Control Systems

  • IEC 61508:2010 Functional Safety of Electrical/Electronic/Programmable Electronic Safety Related Systems

  • EN 50128:2011 Railway applications - Communication, Signalling and Processing Systems - Software for Railway Control and Protection Systems

  • EN 50657: 2017 Railways Applications. Rolling stock applications. Software on Board Rolling Stock

  • IEC 62304:2015 Medical Device Software – Software Life Cycle Processes

  • MISRA C:2012 Guidelines for the Use of the C Language in Critical Systems

To check compliance with these standards, open the Model Advisor and run the checks in these folders.

  • By Task > Modeling Standards for ISO 26262

  • By Task > Modeling Standards for ISO 25119

  • By Task > Modeling Standards for IEC 61508

  • By Task > Modeling Standards for EN 50128/EN 50657

  • By Task > Modeling Standards for IEC 62304

The table lists the IEC 61508, IEC 62304, ISO 26262, ISO 25119, and EN 50128/EN 50657 checks.

SubfolderModel Advisor Checks
N/ADisplay configuration management data
Display model metrics and complexity report
Check for unconnected objects
MISRACheck for missing error ports for AUTOSAR receiver interfaces
Check for unsupported block names
Check bus object names that are used as bus element names
Check for equality and inequality operations on floating-point values
Check for bitwise operations on signed integers
Check integer word length
Check for missing const qualifiers in model functions
Check for recursive function calls
Check for switch case expressions without a default case
Bug ReportsDisplay bug reports for IEC Certification Kit (IEC Certification Kit)
Display bug reports for Simulink Check (IEC Certification Kit)
Display bug reports for Simulink Coverage (IEC Certification Kit)
Display bug reports for Simulink Requirements (IEC Certification Kit)
Display bug reports for Simulink Design Verifier (IEC Certification Kit)
Display bug reports for Simulink Test (IEC Certification Kit)
Display bug reports for Embedded Coder (IEC Certification Kit)
Display bug reports for AUTOSAR Blockset (IEC Certification Kit)
Display bug reports for Simulink PLC Coder (IEC Certification Kit)
Display bug reports for HDL Coder (IEC Certification Kit)
Display bug reports for Polyspace Bug Finder (IEC Certification Kit)
Display bug reports for Polyspace Bug Finder Server (IEC Certification Kit)
Display bug reports for Polyspace Code Prover (IEC Certification Kit)
Display bug reports for Polyspace Code Prover Server (IEC Certification Kit)

Following are the High-Integrity System Modeling checks that are applicable for the IEC 61508, IEC 62304, ISO 26262, ISO 25119, EN 50128, and EN 50657 standards.

Model Checks for High Integrity Systems Modeling

You can check that your model or subsystem complies with selected aspects of the High Integrity System Model safety standard by running the Model Advisor.

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/EN 50657 > High-Integrity Systems

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

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

For information on the High Integrity System Model Software Considerations in Airborne Systems and Equipment Certification and related standards, see Radio Technical Commission for Aeronautics (RTCA).

The table lists the High Integrity System Model checks and their corresponding modeling guidelines. For more information about the High-Integrity Modeling Guidelines, see High-Integrity System Modeling.

High Integrity Systems Modeling Checks

High Integrity System Model CheckApplicable High-Integrity System Modeling Guidelines
Check usage of lookup table blocks hisl_0033: Usage of Lookup Table blocks
Check for inconsistent vector indexing methodshisl_0021: Consistent vector indexing method
Check usage of variant blockshisl_0023: Verification of variant blocks
Check for root Inports with missing propertieshisl_0024: Inport interface definition
Check usage of Relational Operator blockshisl_0017: Usage of blocks that compute relational operators (2)
Check usage of Relational Operator blockshisl_0016: Usage of blocks that compute relational operators
Check usage of Logical Operator blockshisl_0018: Usage of Logical Operator block
Check usage of While Iterator blockshisl_0006: Usage of While Iterator blocks
Check usage of For and While Iterator subsystemshisl_0007: Usage of For Iterator or While Iterator subsystems
Check usage of For Iterator blockshisl_0008: Usage of For Iterator Blocks
Check usage of If blocks and If Action Subsystem blockshisl_0010: Usage of If blocks and If Action Subsystem blocks
Check usage Switch Case blocks and Switch Case Action Subsystem blockshisl_0011: Usage of Switch Case blocks and Action Subsystem blocks
Check safety-related optimization settings for logic signalshisl_0045: Configuration Parameters > Math and Data Types > Implement logic signals as Boolean data (vs. double)
Check safety-related block reduction optimization settingshisl_0046: Configuration Parameters > Simulation Target > Block reduction
Check safety-related optimization settings for application lifespanhisl_0048: Configuration Parameters > Math and Data Types > Application lifespan (days)
Check safety-related optimization settings for data initializationhisl_0052: Configuration Parameters > Code Generation > Optimization > Data initialization
Check safety-related optimization settings for data type conversionshisl_0053: Configuration Parameters > Code Generation > Optimization > Remove code from floating-point to integer conversions that wraps out-of-range values
Check safety-related optimization settings for division arithmetic exceptionshisl_0054: Configuration Parameters > Code Generation > Optimization > Remove code that protects against division arithmetic exceptions
Check safety-related code generation settings for commentshisl_0038: Configuration Parameters > Code Generation > Comments
Check safety-related code generation interface settingshisl_0039: Configuration Parameters > Code Generation > Interface
Check safety-related code generation settings for code stylehisl_0047: Configuration Parameters > Code Generation > Code Style
Check safety-related code generation identifier settingshisl_0049: Configuration Parameters > Code Generation > Identifiers
Check usage of Abs blockshisl_0001: Usage of Abs block
Check usage of Math Function blocks (rem and reciprocal functions)hisl_0002: Usage of Math Function blocks (rem and reciprocal)
Check usage of Math Function blocks (log and log10 functions)hisl_0004: Usage of Math Function blocks (natural logarithm and base 10 logarithm)
Check usage of Assignment blockshisl_0029: Usage of Assignment blocks
Check usage of Signal Routing blockshisl_0034: Usage of Signal Routing blocks
Check for root Inports with missing range definitionshisl_0025: Design min/max specification of input interfaces
Check for root Outports with missing range definitionshisl_0026: Design min/max specification of output interfaces
Check state machine type of Stateflow chartshisf_0001: State Machine Type
Check Stateflow charts for transition paths that cross parallel state boundarieshisf_0013: Usage of transition paths (crossing parallel state boundaries)
Check Stateflow charts for ordering of states and transitionshisf_0002: User-specified state/transition execution order
Check Stateflow debugging optionshisf_0011: Stateflow debugging settings
Check Stateflow charts for uniquely defined data objectshisl_0061: Unique identifiers for clarity
Check Stateflow charts for strong data typinghisf_0015: Strong data typing (casting variables and parameters in expressions)
Check usage of shift operations for Stateflow datahisf_0064: Shift operations for Stateflow data to improve code compliance
Check assignment operations in Stateflow chartshisf_0065: Type cast operations in Stateflow to improve code compliance
Check Stateflow charts for unary operatorshisf_0211: Protect against use of unary operators in Stateflow Charts to improve code compliance
Check for Strong Data Typing with Simulink I/Ohisf_0009: Strong data typing (Simulink and Stateflow boundary)
Check for MATLAB Function interfaces with inherited propertieshiml_0002: Strong data typing at MATLAB function boundaries
Check MATLAB Function metricshiml_0003: Limitation of MATLAB function complexity
Check MATLAB Code Analyzer messageshiml_0004: MATLAB Code Analyzer recommendations for code generation
Check safety-related model referencing settingshisl_0037: Configuration Parameters > Model Referencing
Check safety-related diagnostic settings for solvershisl_0043: Configuration Parameters > Diagnostics > Solver
Check safety-related solver settings for simulation timehisl_0040: Configuration Parameters > Solver > Simulation time
Check safety-related solver settings for solver optionshisl_0041: Configuration Parameters > Solver > Solver options
Check safety-related solver settings for tasking and sample-timehisl_0042: Configuration Parameters > Solver > Tasking and sample time options
Check safety-related diagnostic settings for sample timehisl_0044: Configuration Parameters > Diagnostics > Sample Time
Check safety-related diagnostic settings for parametershisl_0302: Configuration Parameters > Diagnostics > Data Validity > Parameters
Check safety-related diagnostic settings for data used for debugginghisl_0305: Configuration Parameters > Diagnostics > Data Validity > Debugging
Check safety-related diagnostic settings for data store memoryhisl_0013: Usage of data store blocks
Check safety-related diagnostic settings for type conversionshisl_0309: Configuration Parameters > Diagnostics > Type Conversion
Check safety-related diagnostic settings for signal connectivityhisl_0306: Configuration Parameters > Diagnostics > Connectivity > Signals
Check safety-related diagnostic settings for bus connectivityhisl_0307: Configuration Parameters > Diagnostics > Connectivity > Buses
Check safety-related diagnostic settings that apply to function-call connectivityhisl_0308: Configuration Parameters > Diagnostics > Connectivity > Function calls
Check safety-related diagnostic settings for compatibilityhisl_0301: Configuration Parameters > Diagnostics > Compatibility
Check safety-related diagnostic settings for model initializationhisl_0304: Configuration Parameters > Diagnostics > Data Validity > Model initialization
Check safety-related diagnostic settings for model referencinghisl_0310: Configuration Parameters > Diagnostics > Model Referencing
Check safety-related diagnostic settings for savinghisl_0036: Configuration Parameters > Diagnostics > Saving
Check safety-related diagnostic settings for Merge blockshisl_0303: Configuration Parameters > Diagnostics > Data Validity > Merge blocks
Check safety-related diagnostic settings for Stateflowhisl_0311: Configuration Parameters > Diagnostics > Stateflow
Check safety-related optimization settings for Loop unrolling thresholdhisl_0051: Configuration Parameters > Code Generation > Optimization > Loop unrolling threshold
Check model object nameshisl_0032: Model object names
Check for model elements that do not link to requirementshisl_0070: Placement of requirement links in a model
Check for inappropriate use of transition pathshisf_0014: Usage of transition paths (passing through states)
Check usage of Bitwise Operator blockhisl_0019: Usage of bitwise operations
Check data types for blocks with index signalshisl_0022: Data type selection for index signals
Check model file namehisl_0031: Model file names
Check if/elseif/else patterns in MATLAB Function blockshiml_0006: MATLAB code if / elseif / else patterns
Check switch statements in MATLAB Function blockshiml_0007: MATLAB code switch / case / otherwise patterns
Check global variables in graphical functionshisl_0062: Global variables in graphical functions
Check for length of user-defined object nameshisl_0063: Length of user-defined object names to improve MISRA C:2012 compliance
Check usage of Merge blockshisl_0015: Usage of Merge blocks
Check usage of conditionally executed subsystemshisl_0012: Usage of conditionally executed subsystems
Check usage of standardized MATLAB function headershiml_0001: Usage of standardized MATLAB function headers
Check usage of relational operators in MATLAB Function blockshiml_0008: MATLAB code relational operator data types
Check usage of equality operators in MATLAB Function blockshiml_0009: MATLAB code with equal / not equal relational operators
Check usage of logical operators and functions in MATLAB Function blockshiml_0010: MATLAB code with logical operators and functions
Check type and size of conditional expressionshiml_0011: Data type and size of condition expressions
Check naming of ports in Stateflow chartshisf_0016: Stateflow port names
Check scoping of Stateflow data objectshisf_0017: Stateflow data object scoping
Check usage of Gain blockshisl_0066: Usage of Gain blocks
Check usage of bitwise operations in Stateflow chartshisf_0003: Usage of bitwise operations
Check data type of loop control variableshisl_0102: Data type of loop control variables to improve MISRA C:2012 compliance
Check configuration parameters for MISRA C:2012hisl_0060: Configuration parameters that improve 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_0020: Blocks not recommended for MISRA C:2012 compliance

Check safety-related optimization settings for specified minimum and maximum values

hisl_0056: Configuration Parameters > Code Generation > Optimization > Optimize using the specified minimum and maximum values
Check usage of Math Function blocks (rem and reciprocal functions)hisl_0002: Usage of Math Function blocks (rem and reciprocal)
Check usage of Sqrt blockshisl_0003: Usage of Square Root blocks
Check usage of Math Function blocks (log and log10 functions)hisl_0004: Usage of Math Function blocks (natural logarithm and base 10 logarithm)
Check usage of Reciprocal Sqrt blockshisl_0028: Usage of Reciprocal Square Root blocks

Related Topics