主要内容

hisl_0015: Usage of Merge blocks

R2026b

Use 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.

Two triggered subsystems driven by a boolean signal and its NOT inverse feed a Merge block, providing mutual exclusion

Example — Incorrect

Two triggered subsystems with non-mutually-exclusive conditions (>=3 and >=5) feed a merge block, allowing both to execute simultaneously.

Two triggered subsystems driven by non-mutually-exclusive comparisons (>=3 and >=5) feed a merge block, both can execute in the same time step

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 held for each conditionally executed subsystem being merged.

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'

Version History

Introduced in R2010a

expand all

See Also