Main Content

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 Requirements Toolbox (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

Model Advisor Checks for High-Integrity Systems Modeling Guidelines

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

The high-integrity system modeling guidelines and their corresponding checks are summarized in this 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.

Model Advisor CheckCheck IDHigh-Integrity System Modeling Guidelines
Check usage of lookup table blocksmathworks.hism.hisl_0033hisl_0033: Usage of Lookup Table blocks
Check for inconsistent vector indexing methodsmathworks.hism.hisl_0021hisl_0021: Consistent vector indexing method
Check usage of variant blocksmathworks.hism.hisl_0021hisl_0023: Verification of variant blocks
Check for root Inports with missing propertiesmathworks.hism.hisl_0024hisl_0024: Inport interface definition
Check usage of Relational Operator blocksmathworks.hism.hisl_0017hisl_0017: Usage of blocks that compute relational operators (2)
Check relational comparisons on floating-point signalsmathworks.hism.hisl_0016hisl_0016: Usage of blocks that compute relational operators
Check usage of Logical Operator blocksmathworks.hism.hisl_0018hisl_0018: Usage of Logical Operator block
Check usage of While Iterator blocksmathworks.hism.hisl_0006hisl_0006: Usage of While Iterator blocks
Check usage of For and While Iterator subsystemsmathworks.hism.hisl_0007hisl_0007: Usage of For Iterator or While Iterator subsystems
Check usage of For Iterator blocksmathworks.hism.hisl_0008hisl_0008: Usage of For Iterator Blocks
Check usage of If blocks and If Action Subsystem blocksmathworks.hism.hisl_0010hisl_0010: Usage of If blocks and If Action Subsystem blocks
Check usage of Switch Case blocks and Switch Case Action Subsystem blocksmathworks.hism.hisl_0011hisl_0011: Usage of Switch Case blocks and Action Subsystem blocks
Check safety-related optimization settings for logic signalsmathworks.hism.hisl_0045hisl_0045: Configuration Parameters > Math and Data Types > Implement logic signals as Boolean data (vs. double)
Check safety-related block reduction optimization settingsmathworks.hism.hisl_0046hisl_0046: Configuration Parameters > Simulation Target > Block reduction
Check safety-related optimization settings for application lifespanmathworks.hism.hisl_0048hisl_0048: Configuration Parameters > Math and Data Types > Application lifespan (days)
Check safety-related optimization settings for data initializationmathworks.hism.hisl_0052hisl_0052: Configuration Parameters > Code Generation > Optimization > Data initialization
Check safety-related optimization settings for data type conversionsmathworks.hism.hisl_0053hisl_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 exceptionsmathworks.hism.hisl_0054hisl_0054: Configuration Parameters > Code Generation > Optimization > Remove code that protects against division arithmetic exceptions
Check safety-related code generation settings for commentsmathworks.hism.hisl_0038hisl_0038: Configuration Parameters > Code Generation > Comments
Check safety-related code generation interface settingsmathworks.hism.hisl_0039hisl_0039: Configuration Parameters > Code Generation > Interface
Check safety-related code generation settings for code stylemathworks.hism.hisl_0047hisl_0047: Configuration Parameters > Code Generation > Code Style
Check safety-related code generation identifier settingsmathworks.hism.hisl_0049hisl_0049: Configuration Parameters > Code Generation > Identifiers
Check usage of Abs blocksmathworks.hism.hisl_0001hisl_0001: Usage of Abs block
Check usage of remainder and reciprocal operationsmathworks.sldv.hism.hisl_0002hisl_0002: Usage of remainder and reciprocal operations
Check usage of square root operationsmathworks.hism.hisl_0003hisl_0003: Usage of square root operations
Check usage of log and log10 operationsmathworks.sldv.hism.hisl_0004hisl_0004: Usage of natural logarithm and base 10 logarithm operations
Check usage of Assignment blocksmathworks.hism.hisl_0029hisl_0029: Usage of Assignment blocks
Check usage of Signal Routing blocksmathworks.hism.hisl_0034hisl_0034: Usage of Signal Routing blocks
Check for root Inports with missing range definitionsmathworks.hism.hisl_0025hisl_0025: Design min/max specification of input interfaces
Check for root Outports with missing range definitionsmathworks.hism.hisl_0026hisl_0026: Design min/max specification of output interfaces
Check state machine type of Stateflow chartsmathworks.hism.hisf_0001hisf_0001: State Machine Type
Check Stateflow charts for transition paths that cross parallel state boundariesmathworks.hism.hisf_0013hisf_0013: Usage of transition paths (crossing parallel state boundaries)
Check Stateflow charts for ordering of states and transitionsmathworks.hism.hisf_0002hisf_0002: User-specified state/transition execution order
Check Stateflow debugging optionsmathworks.hism.hisf_0011hisf_0011: Stateflow debugging settings
Check Stateflow charts for uniquely defined data objectsmathworks.hism.hisl_0061hisl_0061: Unique identifiers for clarity
Check Stateflow charts for strong data typingmathworks.hism.hisf_0015hisf_0015: Strong data typing (casting variables and parameters in expressions)
Check assignment operations in Stateflow Chartsmathworks.hism.hisf_0065hisf_0065: Type cast operations in Stateflow to improve code compliance
Check Stateflow charts for unary operatorsmathworks.hism.hisf_0211hisf_0211: Protect against use of unary operators in Stateflow Charts to improve code compliance
Check for MATLAB Function interfaces with inherited propertiesmathworks.hism.himl_0002himl_0002: Strong data typing at MATLAB function boundaries
Check MATLAB Function metricsmathworks.hism.himl_0003himl_0003: Complexity of user-defined MATLAB Functions
Check MATLAB Code Analyzer messagesmathworks.hism.himl_0004himl_0004: MATLAB Code Analyzer recommendations for code generation
Check safety-related model referencing settingsmathworks.hism.hisl_0037hisl_0037: Configuration Parameters > Model Referencing
Check safety-related diagnostic settings for solversmathworks.hism.hisl_0043hisl_0043: Configuration Parameters > Diagnostics > Solver
Check safety-related solver settings for simulation timemathworks.hism.hisl_0040hisl_0040: Configuration Parameters > Solver > Simulation time
Check safety-related solver settings for solver optionsmathworks.hism.hisl_0041hisl_0041: Configuration Parameters > Solver > Solver options
Check safety-related solver settings for tasking and sample-timemathworks.hism.hisl_0042hisl_0042: Configuration Parameters > Solver > Tasking and sample time options
Check safety-related diagnostic settings for sample timemathworks.hism.hisl_0044hisl_0044: Configuration Parameters > Diagnostics > Sample Time
Check safety-related diagnostic settings for parametersmathworks.hism.hisl_0302hisl_0302: Configuration Parameters > Diagnostics > Data Validity > Parameters
Check safety-related diagnostic settings for data used for debuggingmathworks.hism.hisl_0305hisl_0305: Configuration Parameters > Diagnostics > Data Validity > Debugging
Check safety-related diagnostic settings for data store memorymathworks.hism.hisl_0013hisl_0013: Usage of data store blocks
Check safety-related diagnostic settings for type conversionsmathworks.hism.hisl_0309hisl_0309: Configuration Parameters > Diagnostics > Type Conversion
Check safety-related diagnostic settings for signal connectivitymathworks.hism.hisl_0306hisl_0306: Configuration Parameters > Diagnostics > Connectivity > Signals
Check safety-related diagnostic settings for bus connectivitymathworks.hism.hisl_0307hisl_0307: Configuration Parameters > Diagnostics > Connectivity > Buses
Check safety-related diagnostic settings that apply to function-call connectivitymathworks.hism.hisl_0308hisl_0308: Configuration Parameters > Diagnostics > Connectivity > Function calls
Check safety-related diagnostic settings for compatibilitymathworks.hism.hisl_0301hisl_0301: Configuration Parameters > Diagnostics > Compatibility
Check safety-related diagnostic settings for model initializationmathworks.hism.hisl_0304hisl_0304: Configuration Parameters > Diagnostics > Data Validity > Model initialization
Check safety-related diagnostic settings for model referencingmathworks.hism.hisl_0310hisl_0310: Configuration Parameters > Diagnostics > Model Referencing
Check safety-related diagnostic settings for savingmathworks.hism.hisl_0036hisl_0036: Configuration Parameters > Diagnostics > Saving
Check safety-related diagnostic settings for Merge blocksmathworks.hism.hisl_0303hisl_0303: Configuration Parameters > Diagnostics > Data Validity > Merge blocks
Check safety-related diagnostic settings for Stateflowmathworks.hism.hisl_0311hisl_0311: Configuration Parameters > Diagnostics > Stateflow
Check model object namesmathworks.hism.hisl_0032hisl_0032: Model object names
Check for model elements that do not link to requirementsmathworks.hism.hisl_0070hisl_0070: Placement of requirement links in a model
Check for inappropriate use of transition pathsmathworks.hism.hisf_0014hisf_0014: Usage of transition paths (passing through states)
Check usage of bit operation blocksmathworks.hism.hisl_0019hisl_0019: Usage of bitwise operations
Check data types for blocks with index signalsmathworks.hism.hisl_0022hisl_0022: Data type selection for index signals
Check model file namemathworks.hism.hisl_0031hisl_0031: Model file names
Check if/elseif/else patterns in MATLAB Function blocksmathworks.hism.hisl_0022himl_0006: MATLAB code if / elseif / else patterns
Check switch statements in MATLAB Function blocksmathworks.hism.himl_0007himl_0007: MATLAB code switch / case / otherwise patterns
Check global variables in graphical functionsmathworks.hism.hisl_0062hisl_0062: Global variables in graphical functions
Check for length of user-defined object namesmathworks.hism.hisl_0063hisl_0063: Length of user-defined object names to improve MISRA C:2012 compliance
Check usage of Merge blocksmathworks.hism.hisl_0015hisl_0015: Usage of Merge blocks
Check usage of conditionally executed subsystemsmathworks.hism.hisl_0012hisl_0012: Usage of conditionally executed subsystems
Check usage of standardized MATLAB function headersmathworks.hism.himl_0001himl_0001: Usage of standardized MATLAB function headers
Check usage of relational operators in MATLAB Function blocksmathworks.hism.himl_0008himl_0008: MATLAB code relational operator data types
Check usage of logical operators and functions in MATLAB Function blocksmathworks.hism.himl_0010himl_0010: MATLAB code with logical operators and functions
Check type and size of condition expressionsmathworks.hism.himl_0011himl_0011: Data type and size of condition expressions
Check naming of ports in Stateflow chartsmathworks.hism.hisf_0016hisf_0016: Stateflow port names
Check scoping of Stateflow data objectsmathworks.hism.hisf_0017hisf_0017: Stateflow data object scoping
Check usage of Gain blocksmathworks.hism.hisl_0066hisl_0066: Usage of Gain blocks
Check for divide-by-zero calculationsmathworks.hism.hisl_0067hisl_0067: Protect against divide-by-zero calculations
Check data type of loop control variablesmathworks.hism.hisl_0102hisl_0102: Data type of loop control variables to improve MISRA C:2012 compliance
Check configuration parameters for MISRA C:2012mathworks.misra.CodeGenSettingshisl_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

mathworks.hism.hisl_0020

mathworks.misra.BlkSupport

hisl_0020: Blocks not recommended for MISRA C:2012 compliance

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

mathworks.hism.hisl_0056hisl_0056: Configuration Parameters > Code Generation > Optimization > Optimize using the specified minimum and maximum values
Check usage of Reciprocal Sqrt blocksmathworks.hism.hisl_0028hisl_0028: Usage of Reciprocal Square Root blocks
Check safety-related settings for hardware implementationmathworks.hism.hisl_0071hisl_0071: Configuration Parameters > Hardware Implementation >Inconsistent hardware implementation settings
Check usage of recursionsmathworks.hism.hisf_0004hisf_0004: Protect against recursive function calls to improve code compliance
Check MATLAB functions not supported for code generationmathworks.hism.himl_0012himl_0012: Usage of MATLAB functions for code generation
Metrics for generated code complexitymathworks.hism.himl_0013himl_0013: Limitation of built-in MATLAB Function complexity
Check for parameter tunability ignored for referenced modelsmathworks.hism.hisl_0072hisl_0072: Usage of tunable parameters for referenced models
Check usage of bit-shift operationsmathworks.hism.hisl_0073hisl_0073: Usage of bit-shift operations
Check safety-related diagnostic settings for variantsmathworks.hism.hisl_0074hisl_0074: Configuration Parameters > Diagnostics > Modeling issues related to variants
Check for disabled and parameterized library linksmathworks.hism.hisl_0075hisl_0075: Usage of library links
Check for unreachable and dead codemathworks.hism.hisl_0101hisl_0101: Avoid operations that result in dead logic to improve code compliance
Check for root Outports with missing propertiesmathworks.hism.hisl_0077hisl_0077: Outport interface definition

See Also

Related Topics