Шаблонные подсистемы, содержащие Блоки Subsystem или Блоки Model в качестве вариантов
Simulink/Порты и подсистемы
HDL-кодер/порты и подсистемы
Блок Variant Subsystem может иметь самое большее один активный выбор для симуляции. Блок Variant Subsystem является шаблоном, предварительно сконфигурированным таким образом, чтобы содержать два блока Subsystem для использования в качестве вариантов подсистемы.
Блок Variant Subsystem может содержать смесь Subsystem и Model блоков, как Вариантные системы. Это может также включать Inport, Outport и Connection Port блоки. В блоках Variant Subsystem нет нарисованных соединений.
Блок Variant Subsystem с Model блоками в качестве выбора называется Variant Model блоком.
Каждая вариантная система связана с элементом управления Variant, который создается в глобальной рабочей области. Управление «Вариант» определяет, какая Вариантная система является активной. Управление Variant может быть выражением условия, Simulink.Variant
объект, задающий выражение условия или вариант по умолчанию. Элемент управления Variant, который вычисляет, чтобы true
определяет активный вариант.
Когда вы выбираете опцию Specify output when source is unconnected в блоке Outport, который находится в блоке Variant Subsystem, можно задать в качестве его выхода значение, отличное от заземления.
Примечание
Необходимо указать правильный тип данных в Signal Attributes разделе диалогового окна Outport блока.
Во время симуляции Simulink® отключает неактивные порты в блоке Variant Subsystem.
In_1
- Input port, относящийся к блокам Inport корневого уровня, содержащимся в Вариантной ПодсистемеКаждый Subsystem или Model блок, содержащийся в Подсистеме Вариантов, представляет одну Вариантную систему. Если имена входных портов в Вариантную систему являются подмножеством имен входных портов, используемых блоком контейнера Variant Subsystem, то блоки Вариантной системы могут иметь другое количество входных портов, чем блок Variant Subsystem.
Out_1
- Выходной порт, соответствующий блокам Outport корневого уровня, содержащимся в Вариантной ПодсистемеКаждый Subsystem или Model блок, содержащийся в Подсистеме Вариантов, представляет одну Вариантную систему. Если имена выходов на Вариантную систему являются подмножеством имен выходов, используемых блоком Variant Subsystem, то блоки Вариантной системы могут иметь другое количество выходов, чем блок Variant Subsystem.
Variant control mode
- Имя режима управления вариантомexpression
(по умолчанию) | label
| sim codegen switching
expression
- Чтобы выбрать активный вариант на основе оценки условий варианта, используйте expression
режим. Переменные Variant, используемые в условии Variant, должны быть созданы в глобальной рабочей области или в словаре данных.
Label
- Чтобы выбрать активный Вариант на основе имени Варианта, заданного в параметре Label mode active choice, используйте label
режим. В label
mode, элемент управления Variant является строкой и не должен создаваться ни в каких рабочих областях.
Когда вы выбираете label
режим, значок «Вариант» указывает на изменение.
Примечание
Когда вы продвигаете параметр Label mode active choice в маску, Variant control mode отключается.
Если блок находится в expression
режим при продвижении параметра Label mode active choice в маску можно изменить Variant control mode на label
путем изменения параметра повышенного Label mode active choice из диалогового окна «Маска».
Если блок находится в label
режим при продвижении параметра Label mode active choice в маску, вы не можете изменить Variant control mode на expression
режим.
Дополнительные сведения о продвижении параметров в маски см. в разделе «Продвижение параметра в маску».
sim codegen switching
- Чтобы автоматически переключаться между рабочими процессами «Варианты для симуляции» и «Генерация кода», используйте sim codegen switching
режим. Когда вы симулируете (Normal, Accelerator, Rapid Accelerator) модель, то Simulink автоматически выбирает sim
ветвь как активный выбор. Точно так же, когда вы делаете симуляцию «Цикл» (SIL), «Процессор в цикле» (PIL) или генерируете код или используете режим external mode, Simulink автоматически выбирает codegen
ветвь.
Когда вы устанавливаете этот параметр в различные значения, значок «Вариант» изменяется, как показано на Значках варианта.
Параметр Variant activation time доступен только, когда вы устанавливаете параметр Variant control mode равным expression
или sim codegen switching
.
Variant activation time
- Определите, когда Simulink выбирает активный выбор вариантаupdate diagram
(по умолчанию) | update diagram analyze all choices
| code compile
Этот параметр определяет, устанавливает ли Simulink активный выбор блока Variant Subsystem во время схемы обновления или компиляции кода. Этот параметр также определяет, какую изменчивость включить в сгенерированный код для целей ERT. Если вы принимаете решение включить все варианты, варианты заключаются в условные операторы препроцессора C (# if и # endif) в сгенерированном коде.
Когда вы устанавливаете этот параметр в различные значения, значок варианта изменяется, как показано на значках варианта.
Можно задать параметр Variant activation time как:
update diagram
- Simulink устанавливает активный выбор во время обновления схемы перед распространением атрибутов сигнала. Неактивные варианты удаляются до распространения атрибутов сигнала, поэтому сгенерированный код содержит только активный выбор.
update diagram analyze all choices
- Simulink устанавливает активный выбор во время обновления схемы после распространения атрибутов сигнала. Атрибуты сигнала распространяются как на активный, так и на неактивный выбор. Все варианты анализируются, чтобы гарантировать согласованность всех вариантных ветвей между результатами симуляции и генерации кода. Неактивные варианты удаляются в конце схемы обновления до начала модели. Сгенерированный код содержит только активные варианты. Этот рабочий процесс остается неизменным для симуляции и генерации кода.
code compile
- Для симуляции рабочий процесс аналогичен update diagram analyze all choices
. Однако неактивные варианты не удаляются во время генерации кода. Сгенерированный код содержит активные и неактивные варианты, и варианты заключаются в условные операторы препроцессора C #if
и #endif
.
Этот рисунок показывает время активации варианта для различных значений, заданных в этом параметре.
Для получения дополнительной информации смотрите Представление источника исполнения и блоков приемника в Сгенерированном коде (Embedded Coder).
Когда вы устанавливаете Variant control mode на expression
, этот параметр может быть установлен в update diagram
, update diagram analyze all choices
, или code compile
.
Когда вы устанавливаете Variant control mode на sim codegen switching
, этот параметр может быть установлен на любое update diagram
или update diagram analyze all choices
. The code compile
опция становится недоступным.
Параметры блоков:
VariantActivationTime
|
Тип: Вектор символов |
Значения:
update diagram | update diagram analyze all choices | code compile
|
По умолчанию:
update diagram
|
Variant choices (table of variant systems)
- Таблица вариантов выбора, вариантов управления и условийТаблица имеет строку для каждой Вариантной системы, содержащегося в Подсистеме вариантов. Если нет вариантных систем, таблица пуста.
Для изменения элементов таблицы можно использовать кнопки слева от Variant choices таблицы.
Кому... | Нажмите... |
---|---|
Create and add a new subsystem choice: Поместите новый вариант Подсистемы в таблицу и создайте блок Subsystem в блок-схеме Исполнительной Подсистемы. | |
Create and add a new model variant choice: Поместите новый выбор Model Variant в таблицу и создайте блок Model в блоке Variant Subsystem. | |
Create/Edit selected variant object: Создайте Simulink.Variant объект в глобальной рабочей области и откройте Simulink.Variant диалоговое окно параметра объекта для задания Condition вариант. | |
Open selected variant choice block: Откройте блок Subsystem для выбранной строки в таблице Variant choices. | |
Refresh dialog information from Variant Subsystem contents: Обновляйте таблицу Variant choices в соответствии с вариантной системой и значениями элемента управления Variant в глобальной рабочей области. |
Name (read-only)
- Имя системы варианта''
(по умолчанию) | имя Блока Subsystem или блока Model, содержащегося в Подсистеме ВариантовЭто поле только для чтения основано на имени Вариантной системы. Чтобы добавить вариант подсистемы, щелкните. Чтобы добавить вариант модели, щелкните.
Variant control expression
- Управление вариантами в глобальной рабочей областиChoice_<index>
(по умолчанию) | логическое выражение условия | объект Вариант, представляющий логическое выражение условия | объект Параметр (требуется для генерации кода) | перечислениеЧтобы ввести имя варианта, дважды щелкните камеру Variant control в новой строке и введите в выражение управления вариантом.
Чтобы ввести нечисловые управляющие значения Variant, используйте перечисленные данные. Для получения информации об использовании перечисленных данных смотрите Использование перечисленных данных в моделях Simulink
Поле структуры: Представлено доступной только для чтения variant.Name поле в Variant структура параметра |
Тип: Вектор символов |
Значение: Управление вариантом, которое связано с выбором варианта |
По умолчанию:
'variant'
|
Condition (read-only)
- Условие для вариантов управления''
(по умолчанию)Это поле только для чтения основано на условии для связанного элемента управления Variant в глобальной рабочей области. Создайте или измените условие варианта в Simulink.Variant
диалоговое окно параметра или в глобальной рабочей области.
Label mode active choice
- Имя активного выбора, если выбран режим LabelChoice_1
(по умолчанию) | on
Когда вы выбираете Variant control mode для Label
, доступна опция Label mode active choice. Можно выбрать активный вариант из Label mode active choice опций. Можно также щелкнуть значок правой кнопкой мыши на блоке Variant Subsystem и выбрать Label Mode Active Choice.
Для Label mode active choice опции управление Variant не должно быть выражением логического условия или Simulink.Variant
объект. Варианты управляют, которые начинаются с %
символ игнорируется.
Примечание
Label mode active choice опция недоступна в Expression
режим.
Чтобы включить этот параметр, выберите Label
опция из Variant control mode параметра.
Параметр:
LabelModeActivechoice
|
Тип: Вектор символов |
Значение: если не задан активный выбор режима Label, значение пустое. Если задан активный выбор Label mode, значение является именем активного выбора Label mode. |
По умолчанию:
''
|
Allow zero active variant controls
- Моделируйте модель, не используя активный Вариантoff
(по умолчанию) | on
Чтобы симулировать модель (содержащую вариантную систему) без активного варианта, выберите опцию Allow zero active variant controls. Когда вы выбираете эту опцию и если нет активного варианта, Simulink отключает все блоки, соединенные с входным и выходным потоком блока Variant Subsystem. Отключенные блоки игнорируются из схемы обновления или симуляции.
Если вы не выбираете эту опцию, Simulink генерирует ошибку, когда нет активного выбора варианта.
Опция (по умолчанию) «Вариант» не выбрана
Expression
выбрана опция из Variant control mode.
Параметр:
AllowZeroVariantControls
|
Тип: Вектор символов |
Значение:
'off' | 'on' |
По умолчанию:
'off'
|
Propagate conditions outside of variant subsystem
- Распространение исполнительных условий вне блока Variant Subsystemoff
(по умолчанию) | on
При выборе этой опции Simulink распространяет условия исполнения базовых блоков на блоки, расположенные вне блока Variant Subsystem. Компоненты вне Подсистемы, подключенные к активному выбору, становятся активными, а компоненты, подключенные к неактивному выбору, становятся неактивными во время симуляции.
Выбор этой опции гарантирует, что компоненты, не входящие в состав Подсистемы вариантов, осведомлены об активном и неактивном состоянии блоков в блоке Подсистемы вариантов. Для получения дополнительной информации см. раздел Адаптивный интерфейс для подсистем вариантов.
При выборе этой опции значок «Вариант» указывает на изменение.
Параметр:
PropagateVariantConditions
|
Тип: Вектор символов |
Значение:
'off' | 'on' |
По умолчанию:
'off'
|
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
[a] Фактический тип данных или поддержка возможностей зависит от реализации блоков. |
Фактический тип данных или поддержка возможностей зависит от реализации блоков.
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику. Фактический тип данных или поддержка возможностей зависит от реализации блоков.
Архитектура | Описание |
---|---|
Module (по умолчанию) | Сгенерируйте код для подсистемы и блоков в подсистеме. HDL Coder генерирует код только для активного варианта. |
BlackBox | Сгенерируйте интерфейс черного ящика. То есть сгенерированный HDL-код включает только определения входного/выходного порта для подсистемы. Таким образом, можно использовать подсистему в модели, чтобы сгенерировать интерфейс к существующему вручную HDL-коду. Интерфейс черного ящика, сгенерированный для подсистем, похож на интерфейс, сгенерированный для блоков Model, но без генерации синхросигналов. |
| Удалите подсистему из сгенерированного кода. Можно использовать подсистему в симуляции, но относиться к ней как к «no-op» в HDL-коде. |
Для BlackBox
можно настроить имена портов и задать атрибуты интерфейса внешнего компонента. См. раздел Настройка интерфейса черного ящика или HDL-косимуляции (HDL Coder).
Общая информация | |
---|---|
AdaptivePipelining | Автоматическая вставка конвейера на основе инструмента синтеза, целевой частоты и длин размеров слова умножителей. Значение по умолчанию является |
BalanceDelays | Обнаруживает введение новых задержек вдоль одного пути и вставляет соответствующие задержки на другие пути. Значение по умолчанию является |
ClockRatePipelining | Вставьте регистры конвейера с более высокой тактовой частотой вместо более медленной скорости передачи данных. Значение по умолчанию является |
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является |
DistributedPipelining | Распределение регистров трубопроводов или синхронизация регистров. Значение по умолчанию является |
DSPStyle | Атрибуты синтеза для отображения множителей. Значение по умолчанию является |
FlattenHierarchy | Удалите иерархию подсистем из сгенерированного HDL-кода. Значение по умолчанию является |
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
SharingFactor | Количество функционально эквивалентных ресурсов для сопоставления с одним общим ресурсом. Значение по умолчанию 0. См. также раздел «Совместное использование ресурсов» (HDL Coder). |
StreamingFactor | Количество параллельных путей данных, или векторов, которые мультиплексированы во времени для преобразования в последовательные, скалярные пути данных. Значение по умолчанию 0, которое реализует полностью параллельные пути данных. См. также раздел Потоковая передача (HDL Coder). |
Целевые спецификации
Этот блок не может быть DUT, поэтому настройки свойств блоков на вкладке Target Specification игнорируются.
DUT не может быть Variant Subsystem.
Фактический тип данных или поддержка возможностей зависит от реализации блоков.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.