Contenido principal

hisl_0018: Usage of Logical Operator block

R2026b

Configure the Logical Operator block to produce unambiguous behavior in generated code

Usage: High-Integrity System Modeling

Guideline ID: hisl_0018

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

Rules

hisl_0018: Usage of Logical Operator block
A

To support unambiguous behavior of generated code, when using the Logical Operator block, set block parameter Output data type to Boolean.

Rationale

Avoid ambiguous behavior of generated code.

Verification

Check usage of Logical Operator blocks (Simulink Check)

B

To support unambiguous behavior of generated code, when using the Logical Operator block, ensure input signals are of type Boolean.

Rationale

Avoid ambiguous behavior of generated code.

Verification

Check usage of Logical Operator blocks (Simulink Check)

Industry Standards

  • DO-331, Section MB.6.3.2.g 'Algorithms are accurate'

  • IEC 61508-3, Table A.3 (2) 'Strongly typed programming language'

    IEC 61508-3, Table A.3 (3) 'Language subset'

    IEC 61508-3, Table A.4 (3) 'Defensive programming'

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'

    ISO 26262-6, Table 1 (1c) 'Enforcement of strong typing'

  • EN 50128, Table A.4 (11) 'Language Subset'

    EN 50128, Table A.4 (8) 'Strongly Typed Programming Language'

    EN 50128, Table A.3 (1) 'Defensive Programming'

  • EN 50657, Table A.4 (11) 'Language Subset'

    EN 50657, Table A.4 (8) 'Strongly Typed Programming Language'

    EN 50657, Table A.3 (1) 'Defensive Programming'

  • EN 50716, Table A.3 (1) 'Defensive Programming'

  • MISRA C:2012, Directive 10.1

  • MISRA C:2023, Directive 10.1

Version History

Introduced in R2010a

expand all