hisl_0013: Usage of data store memory
|ID: Title||hisl_0013: Usage of data store memory|
When using data store memory,
set these data store memory model configuration parameters to
Use input and output signals instead of data store memory to communicate data whenever possible. Using data store memory blocks to communicate data across system boundaries can lead to unexpected results.
If you have a Simulink® Design Verifier™ license, you can detect data store memory access violations in a model statically. Select the Design Verifier model configuration parameter Data store access violations. For more information, see Detect Data Store Access Violations in a Model (Simulink Design Verifier).
Simulation diagnostics help identify places where data store memory communication invalidates the Simulink signal semantic.
|Model Advisor Checks||Check safety-related diagnostic settings for data store memory (Simulink Check)|
hisl_0015: Usage of Merge blocks
|ID: Title||hisl_0015: Usage of Merge blocks|
To support unambiguous behavior from Merge blocks,
Use Merge blocks only with conditionally executed subsystems.
Specify execution of the conditionally executed subsystems such that only one subsystem executes during a time step.
Clear block parameter Allow unequal port widths.
|D||Set the Outport block parameter
Output when disabled to
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.
parameter Allow unequal port widths is only
available when configuration parameter Underspecified
initialization detection is set to
|Rationale||A, B, C, D||Avoid ambiguous behavior.|
|Model Advisor Checks||Check usage of Merge blocks (Simulink Check)|
Merge block in the Simulink documentation
hisl_0021: Consistent vector indexing method
|ID: Title||hisl_0021: Consistent vector indexing method|
|Description||Within a model, use:|
Consistent vector indexing method.
Supports configurable indexing:
Support only one-based indexing:
Supports only zero-based indexing:
|Rationale||A||Reduce the risk of introducing errors due to inconsistent indexing.|
|Model Advisor Checks||Check for inconsistent vector indexing methods (Simulink Check)|
|See Also||cgsl_0101: Zero-based indexing|
hisl_0022: Data type selection for index signals
|ID: Title||hisl_0022: Data type selection for index signals|
|Description||For index signals, use:|
|A||An integer or enumerated data type|
|B||A data type that covers the range of indexed values.|
Blocks that use a signal index include:
|Rationale||A||Prevent unexpected results that can occur with rounding operations for floating-point data types.|
|B||Enable access to data in a vector.|
|Model Advisor Checks||Check data types for blocks with index signals (Simulink Check)|
hisl_0023: Verification of variant blocks
|ID: Title||hisl_0023: Verification of variant blocks|
|Description||When verifying that a model is consistent with generated code, do the following:|
Variant block, set the Variant
activation time to |
|Rationale||A||Simplify consistency testing between the model and generated code by restricting the code base to a single variant.|
|Model Advisor Checks||Check usage of variant blocks (Simulink Check)|
|See Also||Variant Subsystem, Variant Model, Variant Assembly Subsystem|
hisl_0034: Usage of Signal Routing blocks
|ID: Title||hisl_0034: Usage of Signal Routing blocks|
When using Switch
blocks, avoid comparisons using the
Due to floating-point precision
issues, do not test floating-point expressions for inequality
When the model contains a
Switch block computing a relational operator with the
Improve model robustness.
|Model Advisor Checks||Check usage of Signal Routing blocks (Simulink Check)|