hisl_0018: Usage of Logical Operator block
R2026bConfigure 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
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 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