Подсистема шаблонов, содержащая блоки подсистемы или блоки модели в качестве вариантов
Simulink/Порты и подсистемы
Кодер HDL/Порты и подсистемы
Блок подсистемы вариантов может иметь максимум один активный выбор для моделирования. Блок Variant Subsystem - это предварительно сконфигурированный шаблон, содержащий два блока Subsystem для использования в качестве варианта выбора Variant Subsystem.
Блок Variant Subsystem может содержать смесь блоков Subsystem и Model в качестве систем Variant. Сюда также могут входить блоки Inport, Outport и Connection Port. Внутри блоков исполнительной подсистемы нет нарисованных соединений.
Блок подсистемы исполнения с блоками модели в качестве вариантов называется блоком модели исполнения.
Каждая система исполнения связана с элементом управления исполнения, который создается в глобальной рабочей области. Элемент управления Variant определяет, какая система Variant активна. Элемент управления Variant может быть выражением условия, Simulink.Variant объект, задающий выражение условия или значение по умолчанию Variant. Элемент управления Variant, вычисляющий значение true определяет активный вариант.
Если в блоке Outport, находящемся в блоке Variant Subsystem, выбрана опция Specify output when source is unconnected (Указать вывод, когда источник не подключен), то в качестве вывода можно указать значение, отличное от основания.
Примечание
Необходимо указать правильный тип данных в разделе Атрибуты сигнала (Signal Attributes) диалогового окна Блок исходящего порта (Outport block).
Во время моделирования Simulink ® отключает неактивные порты в блоке Variant Subsystem.
In_1 - Входной порт, соответствующий блокам ввода корневого уровня, содержащимся в подсистеме вариантовКаждая подсистема или блок модели, содержащиеся в исполнительной подсистеме, представляют одну исполнительную систему. Если имена входов в системе Variant являются подмножеством имен входов, используемых блоком контейнера Variant Subsystem, то системные блоки Variant могут иметь другое количество входов, чем блок Variant Subsystem.
Out_1 - Выходной порт, соответствующий блокам исходящего порта корневого уровня, содержащимся в исполнительной подсистемеКаждая подсистема или блок модели, содержащиеся в исполнительной подсистеме, представляют одну исполнительную систему. Если имена выходов в системе Variant являются подмножеством имен выходов, используемых блоком Variant Subsystem, то системные блоки Variant могут иметь другое количество выходов, чем блок Variant Subsystem.
Variant control mode - Наименование режима управления «Вариант»expression (по умолчанию) | label | sim codegen switchingexpression- Для выбора активного варианта на основе анализа условий варианта используйте expression режим. Управляющие переменные Variant, используемые в условии Variant, должны быть созданы в глобальной рабочей области или в словаре данных.
Label- Чтобы выбрать активный вариант на основе имени варианта, указанного в параметре активного выбора режима метки, используйте label режим. В label элемент управления Variant является строкой и не должен создаваться ни в одной рабочей области.
При выборе label , значок Вариант (Variant) указывает на изменение.
Примечание
При продвижении параметра активного выбора режима метки в маску режим управления исполнениями отключается.
Если блок находится в expression при продвижении параметра активного выбора режима Label в маску можно изменить режим управления Variant на label путем изменения параметра активного выбора повышенного режима метки в диалоговом окне «Маска».
Если блок находится в label при продвижении параметра активного выбора режима Label в маску нельзя изменить режим управления Variant на expression режим.
Сведения о повышении параметров до масок см. в разделе Повышение параметров до маски.
sim codegen switching- Для автоматического переключения между вариантами для процессов моделирования и создания кода используйте sim codegen switching режим. При моделировании модели (Normal, Accelerator, Rapid Accelerator) Simulink автоматически выбирает sim ветвь как активный выбор. Аналогично, при моделировании ПО в цикле (SIL), процессора в цикле (PIL) или при генерации кода или использовании внешнего режима 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.
На этом рисунке показано время активации варианта для различных значений, указанных в этом параметре.

Дополнительные сведения см. в разделе Представление источников вариантов и блоков приемников в сгенерированном коде (встроенный кодер).
При установке для режима управления исполнениями значения expression, этот параметр может быть установлен в update diagram, update diagram analyze all choices, или code compile.
При установке для режима управления исполнениями значения sim codegen switching, этот параметр может быть установлен на update diagram или update diagram analyze all choices. code compile параметр становится недоступным.
Параметр блока:
VariantActivationTime
|
| Текст: символьный вектор |
Значения:
update diagram | update diagram analyze all choices |code compile
|
По умолчанию:
update diagram
|
Variant choices (table of variant systems) - Таблица вариантов выбора, элементов управления вариантов и условийТаблица содержит строку для каждой системы вариантов, содержащейся в подсистеме вариантов. Если системы Variant отсутствуют, таблица пуста.
Для изменения элементов таблицы можно использовать кнопки слева от таблицы Варианты (Variant).
| Кому... | Нажмите... |
|---|---|
| Создание и добавление нового варианта подсистемы: размещение нового варианта подсистемы в таблице и создание блока подсистемы в блок-схеме подсистемы вариантов. | |
| Создание и добавление нового варианта модели: размещение нового варианта модели в таблице и создание блока модели в блоке подсистемы исполнения. | |
Создать/изменить выбранный объект исполнения: Создать Simulink.Variant в глобальной рабочей области и откройте Simulink.Variant для задания условия исполнения. | |
| Открыть выбранный блок вариантов: открыть блок-схему подсистемы для выбранной строки в таблице вариантов. | |
| Обновить информацию диалогового окна из содержимого подсистемы исполнения: обновить таблицу вариантов исполнения в соответствии с системой исполнения и значениями элемента управления исполнения в глобальной рабочей области. |
Name (read-only) - Имя системы вариантов'' (по умолчанию) | имя подсистемы или блока модели, содержащегося в исполнительной подсистемеЭто поле только для чтения основано на имени системы Вариант. Чтобы добавить вариант подсистемы, щелкните.
Чтобы добавить вариант модели, щелкните.![]()
Variant control expression - Управление вариантами в глобальной рабочей областиChoice_<index> (по умолчанию) | логическое выражение условия | объект Simulink.Variant, представляющий логическое выражение условия | объект Simulink.Parameter (требуется для создания кода) | enumЧтобы ввести имя элемента управления Variant, дважды щелкните ячейку элемента управления Variant в новой строке и введите в выражение элемента управления Variant.
Для ввода нечисловых управляющих значений Variant используйте перечисляемые данные. Сведения об использовании перечисляемых данных см. в разделе Использование перечисляемых данных в моделях Simulink
Структурное поле: Представлено только для чтения variant.Name в поле Variant структура параметров |
| Текст: символьный вектор |
| Значение: элемент управления Variant, связанный с выбором Variant |
По умолчанию:
'variant' |
Condition (read-only) - Условие для элементов управления исполнения'' (по умолчанию)Это поле только для чтения основано на условии для связанного элемента управления Исполнение (Variant) в глобальной рабочей области. Создание или изменение условия исполнения в Simulink.Variant или в глобальном рабочем пространстве.
Label mode active choice - Имя активного варианта, если выбран режим LabelChoice_1 (по умолчанию) | onПри выборе режима управления исполнениями для Label, доступна опция Активный выбор режима метки (Label mode active choice). Можно выбрать активный вариант исполнения из опций активного варианта режима метки. Можно также щелкнуть правой кнопкой мыши значок в блоке «Variant Subsystem» и выбрать «Label Mode Active Choice».
Для опции активного выбора Режим метки (Label mode active choice) элемент управления Исполнение (Variant) не обязательно должен быть логическим выражением условия или Simulink.Variant объект. Элементы управления исполнениями, начинающиеся с % символ игнорируется.
Примечание
Опция активного выбора режима метки недоступна в Expression режим.
Чтобы включить этот параметр, выберите Label из параметра Режим управления вариантом.
Параметр:
LabelModeActivechoice
|
| Текст: символьный вектор |
| Значение: если не указан активный вариант режима Label, значение пусто. Если указан активный вариант режима метки, значение является именем активного варианта режима метки. |
По умолчанию:
'' |
Allow zero active variant controls - Моделирование модели без использования активного вариантаoff (по умолчанию) | onЧтобы смоделировать модель (содержащую систему исполнения) без активного варианта исполнения, выберите опцию Разрешить нулевой активный элемент управления исполнения. При выборе этой опции и отсутствии активного варианта выбора Simulink отключает все блоки, подключенные к входному и выходному потоку блока Variant Subsystem. Отключенные блоки игнорируются в схеме обновления или моделировании.
Если эта опция не выбрана, Simulink генерирует ошибку при отсутствии активного варианта исполнения.
Опция исполнения (по умолчанию) не выбрана
Expression выбрана опция из режима управления «Вариант».
Параметр:
AllowZeroVariantControls
|
| Текст: символьный вектор |
Значение:
'off' | 'on' |
По умолчанию:
'off' |
Propagate conditions outside of variant subsystem - Распространение условий исполнения вне блока подсистемы исполненияoff (по умолчанию) | onПри выборе этой опции Simulink распространяет условия исполнения нижележащих блоков на блоки вне блока «Подсистема исполнения». Компоненты вне подсистемы, связанные с активным выбором, становятся активными, а компоненты, связанные с неактивным выбором, становятся неактивными во время моделирования.
Выбор этой опции гарантирует, что компоненты вне исполнительной подсистемы будут осведомлены об активном и неактивном состоянии блоков в блоке исполнительной подсистемы. Дополнительные сведения см. в разделе Адаптивный интерфейс для исполнительных подсистем.
При выборе этой опции значок Вариант (Variant) указывает на изменение.
![]()
Параметр:
PropagateVariantConditions
|
| Текст: символьный вектор |
Значение:
'off' | 'on' |
По умолчанию:
'off' |
Типы данных |
|
Прямой проход |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулей |
|
[a] Фактический тип данных или поддержка возможностей зависит от реализации блока. | |
Фактический тип данных или поддержка возможностей зависит от реализации блока.
HDL Coder™ предоставляет дополнительные опции конфигурации, которые влияют на реализацию HDL и синтезированную логику. Фактический тип данных или поддержка возможностей зависит от реализации блока.
| Архитектура | Описание |
|---|---|
Module (по умолчанию) | Создайте код для подсистемы и блоков в подсистеме. Кодер HDL генерирует код только для активного варианта. |
BlackBox | Создайте интерфейс черного ящика. То есть сгенерированный код HDL включает только определения портов ввода/вывода для подсистемы. Таким образом, можно использовать подсистему в модели для создания интерфейса с существующим вручную написанным кодом HDL. Интерфейс черного ящика, генерируемый для подсистем, аналогичен интерфейсу, генерируемому для блоков модели, но без генерации тактовых сигналов. |
| Удалите подсистему из сгенерированного кода. Можно использовать подсистему в моделировании, но рассматривать ее как «no-op» в коде HDL. |
Для BlackBox можно настроить имена портов и задать атрибуты внешнего интерфейса компонента. См. раздел Настройка интерфейса косимуляции черного ящика или HDL (кодер HDL).
| Общая информация | |
|---|---|
| AdaptivePipelining | Автоматическая вставка трубопровода на основе инструмента синтеза, целевой частоты и длины слова множителя. Значение по умолчанию: |
| BalanceDelays | Обнаруживает введение новых задержек по одному пути и вставляет совпадающие задержки по другим путям. Значение по умолчанию: |
| ClockRatePipelining | Вставка регистров конвейера с более высокой тактовой частотой вместо более низкой скорости передачи данных. Значение по умолчанию: |
| ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках проекта. Распределенная конвейерная обработка не перераспределяет эти регистры. Значение по умолчанию: |
| DistributedPipelining | Распределение регистров трубопроводов или ресинхронизация регистров. Значение по умолчанию: |
| DSPStyle | Атрибуты синтеза для отображения множителя. Значение по умолчанию: |
| FlattenHierarchy | Удалите иерархию подсистемы из сгенерированного кода HDL. Значение по умолчанию: |
| InputPipeline | Количество входных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
| OutputPipeline | Количество выходных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
| SharingFactor | Количество функционально эквивалентных ресурсов для сопоставления с одним общим ресурсом. Значение по умолчанию - 0. См. также раздел Совместное использование ресурсов (кодер HDL). |
| StreamingFactor | Количество параллельных путей данных, или векторов, которые мультиплексируются по времени для преобразования в последовательные скалярные пути данных. По умолчанию используется значение 0, которое реализует полностью параллельные пути данных. См. также Потоковая передача (кодер HDL). |
Целевая спецификация
Этот блок не может быть DUT, поэтому параметры свойств блока на вкладке «Целевая спецификация» игнорируются.
DUT не может быть исполнительной подсистемой.
Фактический тип данных или поддержка возможностей зависит от реализации блока.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
