hisl_0015: Usage of Merge blocks
R2026bUse Merge blocks with mutually exclusive conditionally executed subsystems to support unambiguous behavior
Usage: High-Integrity System Modeling
Guideline ID: hisl_0015
Prerequisite: hisl_0303: Configuration Parameters > Diagnostics > Merge block, hisl_0304: Configuration Parameters > Diagnostics > Model initialization
Rules
| hisl_0015: Usage of Merge blocks | |
|---|---|
| A | To support unambiguous behavior from Merge blocks, use Merge blocks only with conditionally executed subsystems. Rationale Avoid ambiguous behavior. Verification Check usage of Merge blocks (Simulink Check) |
| B | To support unambiguous behavior from Merge blocks, specify execution of the conditionally executed subsystems such that only one subsystem executes during a time step. Rationale Avoid ambiguous behavior. Verification Check usage of Merge blocks (Simulink Check) Example — Correct Two triggered subsystems with mutually exclusive conditions (boolean and NOT boolean) feed a Merge block.
Example — Incorrect Two triggered subsystems with non-mutually-exclusive conditions (>=3 and >=5) feed a merge block, allowing both to execute simultaneously.
|
| C | To support unambiguous behavior from Merge blocks, clear block parameter Allow unequal port widths. Rationale Avoid ambiguous behavior. Verification Check usage of Merge blocks (Simulink Check) |
| D | To support unambiguous
behavior from Merge blocks,
set the Outport block parameter
Output when disabled to
Rationale Avoid ambiguous behavior. Verification Check usage of Merge blocks (Simulink Check) |
Tips
Simulink® combines the inputs of the Merge block into a single output. The output value at any time is equal to the most recently computed output of the blocks that drive the Merge block. Therefore, the Merge block output is dependent upon the execution order of the input computations.
To provide predictable behavior of the Merge block output, you must have mutual exclusion between the conditionally executed subsystems feeding a Merge block.
Merge block parameter Allow unequal port widths is only available when configuration parameter Underspecified initialization detection is set to
Classic.
Industry Standards
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(b) 'Use of language subsets'
ISO 26262-6, Table 1(d) 'Use of defensive implementation techniques'EN 50128, Table A.4 (11) 'Language Subset'
EN 50128, Table A.3 (1) 'Defensive Programming'EN 50657, Table A.4 (11) 'Language Subset'
EN 50657, Table A.3 (1) 'Defensive Programming'EN 50716, Table A.3 (1) 'Defensive Programming'
DO-331, Section MB.6.3.3.b 'Software architecture is consistent'

