Configurable Subsystem

Purpose

Provide subsystem with exchangeable implementations

Library

System

Description

../../_images/subsystem.svg

A configurable subsystem is a subsystem that has multiple, exchangeable configurations. Each subsystem configuration has its own schematic diagram.

All subsystem configurations of the configurable subsystem share the same input, output and physical terminals. Once a port element has been added to one of the internal schematics it becomes available in all other internal schematics.

By selecting Look under mask from the Edit > Subsystem menu or the block’s context menu, the schematic view of the configurable subsystem is opened. The schematic for each configuration can be accessed by the tabs on top of the schematic view. New configurations can be added and removed from the context menu of the tab bar, accessible by right-click. A double-click on a configuration tab allows for the corresponding configuration to be renamed.

Note

A subsystem (see the Subsystem block) can be converted to a configurable subsystem by selecting Convert to configurable subsystem from the Edit > Subsystem menu or the block’s context menu.

Parameters

Configuration

The name of the internal schematic that is used during simulation. The variable Configuration can be used in the mask initialization commands to check the current configuration. It contains an integer value starting at \(1\) for the first configuration.

Additional parameters for the Configurable Subsystem can be created by masking the block (see Mask Dialog for more details).

Probe Signals

Probe signals for the Configurable Subsystem can be created by masking the block (see Mask Probe Signals for more details).

Only the probed components from the current configuration are used during simulation. To ensure that a Probe signal behaves the same for all configurations, it should contain the same number of component signals from each subsystem in the same order. If a configuration does not provide a specific signal, a dummy component (e.g. a Constant block) can be used.