Группируйте блоки, чтобы создать иерархию модели
Simulink/Порты и подсистемы
Блок Subsystem содержит подмножество блоков в модели или системе. Блок Subsystem может представлять виртуальную подсистему или невиртуальную подсистему.
Невиртуальная подсистема - Управление, когда содержимое подсистемы оценивается как один модуль (атомарное выполнение). Создайте условно выполненные подсистемы, которые запускаются только тогда, когда событие происходит при запуске, вызове функции, действии или включении входа (см. «Условно выполненные подсистемы и модели»).
Виртуальная подсистема - Подсистема не выполняется ни условно, ни атомарно. Виртуальные подсистемы не имеют контрольных сумм. Чтобы определить, является ли подсистема виртуальной, используйте get_param
функция для логических параметров блоков IsSubsystemVirtual
.
Атомарная подсистема является блоком Subsystem с выбранным Treat as atomic unit параметрами блоков.
Подсистема повторного использования кода является Subsystem блоком с выбранным Treat as atomic unit параметра и Function packaging параметра на Reusable function
, задающий формат генерации кода функции для подсистемы.
Чтобы создать подсистему, выполните одно из следующих действий:
Скопируйте Subsystem блок из библиотеки Ports & Subsystems в модель. Затем добавьте блоки в подсистему, открывая блок Subsystem и копируя блоки в него.
Выберите все блоки и линии, составляющие подсистему, а затем на вкладке Multiple нажмите Create Subsystem. Simulink® заменяет блоки на блок Subsystem наряду с необходимыми блоками Inport и Outport для отражения сигналов, входящих и выходящих из подсистемы.
Количество входа портов, нарисованных на значке Subsystem блока, соответствует количеству Inport блоков в подсистеме. Точно так же количество выходных портов, нарисованных на блоке, соответствует количеству Outport блоков в подсистеме.
Блок Subsystem поддерживает распространение метки сигнала через блоки Inport и Outport подсистемы.
Примечание
Подсистема-ссылка является подсистемой, хранящейся в отдельном файле, на который ссылается с помощью блока Subsystem Reference. Чтобы повторно использовать эту подсистему, добавьте несколько блоков Subsystem Reference, которые ссылаются на тот же файл подсистемы. Подсистема-ссылка ведет себя идентично обычной подсистеме во время выполнения.
In
- Вход сигнала в подсистемуРазмещение блока Inport в подсистеме добавляет внешний входной порт к блоку Subsystem. Метка порта совпадает с именем блока Inport.
Используйте Inport блоки, чтобы получить сигналы от локального окружения.
Типы данных: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
Out
- Сигнал, выводимый из подсистемыРазмещение блока Outport в подсистеме добавляет порт выхода из блока Subsystem. Метка порта на блоке Subsystem является именем блока Outport.
Используйте Outport блоки для отправки сигналов в локальное окружение.
Типы данных: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
Для параметров на вкладке Генерация Кода требуется Simulink Coder™ или Embedded Coder® лицензия.
Show port labels
- Опции отображения меток портовFromPortIcon
(по умолчанию) | FromPortBlockName
| SignalName
Выберите способ отображения меток портов на значке Subsystem блока.
none
Не отображать метки портов.
FromPortIcon
Если соответствующий значок порта отображает имя сигнала, отобразите имя сигнала на блоке Subsystem. В противном случае отобразите имя блока портов или номер порта, если имя блока является именем по умолчанию.
FromPortBlockName
Отобразите имя соответствующего блока портов на блоке Subsystem.
SignalName
Если сигнал, подключенный к порту, назван, отобразите имя сигнала на блоке Subsystem. В противном случае отобразится имя соответствующего блока портов.
Параметр: ShowPortLabels |
Тип: Вектор символов |
Значение: 'FromPortIcon' | 'FromPortBlockName' | 'SignalName' |
По умолчанию: 'FromPortIcon' |
Read/Write permissions
- Уровни доступа к содержимому подсистемыReadWrite
(по умолчанию) | ReadOnly
| NoReadOrWrite
Управление доступом пользователя к содержимому подсистемы.
ReadWrite
Включите открытие и изменение содержимого подсистемы.
ReadOnly
Включите открытие, но не изменение подсистемы. Если подсистема находится в библиотеке блоков, можно создавать и открывать ссылки на подсистему и создавать и изменять локальные копии подсистемы, но нельзя изменять разрешения или содержимое исходного образца библиотеки.
NoReadOrWrite
Отключите открытие или изменение подсистемы. Если подсистема проживает в библиотеке, Вы можете создать ссылки к подсистеме в модели, но не можете открыть, изменить, разрешения изменения, или создать местные копии подсистемы.
Примечание
Вы не получаете ответ, если пытаетесь просмотреть содержимое подсистемы, параметру Read/Write permissions которой задано значение NoReadOrWrite
. Например, при двойном клике такой подсистемы Simulink не открывает подсистему и не отображает никаких сообщений.
Параметр: Permissions |
Тип: Вектор символов |
Значение: 'ReadWrite' | 'ReadOnly' | 'NoReadOrWrite' |
По умолчанию: 'ReadWrite' |
Name of error callback function
- Имя функции, вызываемой в случае возникновения ошибки''
(по умолчанию) | имя функцииВведите имя функции, которая будет вызываться, если ошибка возникает во время выполнения Simulink подсистемы.
Simulink передает функции два аргумента: указатель подсистемы и вектор символов, который задает тип ошибки. Если функция не задана, Simulink отображает общее сообщение об ошибке, если выполнение подсистемы вызывает ошибку.
Параметр: ErrorFcn |
Тип: Вектор символов |
Значение: '' | '<function name>' |
По умолчанию: '' |
Permit hierarchical resolution
- Разрешение для имен переменных рабочей областиAll
(по умолчанию) | ExplicitOnly
| None
Выберите, разрешать ли имена переменных рабочей области, на которые ссылается эта подсистема.
Для получения дополнительной информации см. Раздел «Разрешение символа» и «Процесс разрешения символа».
All
Разрешить все имена переменных рабочей области, используемых этой подсистемой, включая те, которые используются для задания значений параметров блоков и объектов данных Simulink (для примера, Simulink.Signal
объекты).
ExplicitOnly
Разрешайте только имена переменных рабочей области, используемых для задания значений параметров блоков, памяти хранилища данных (где нет блока), сигналов и состояний, отмеченных как «должны разрешиться».
None
Не разрешайте имена переменных рабочей области.
Параметр: PermitHierarchicalResolution |
Тип: Вектор символов |
Значение: 'All' | 'ExplicitOnly' | 'None' |
По умолчанию: 'All' |
Treat as atomic unit
- Опция выполнения подсистемы как одного модуляЗаставляет Simulink обрабатывать подсистему как модуль при определении порядка выполнения блочных методов.
Все блоки в подсистеме рассматриваются как находящиеся на том же уровне в иерархии модели, что и подсистема при определении порядка выполнения блочного метода. Это может привести к тому, что выполнение методов блоков в подсистеме будет перемежаться с выполнением методов блоков вне подсистемы.
Обрабатывайте подсистему как модуль при определении порядка выполнения блочных методов. Для примера, когда ему нужно вычислить выход подсистемы, Simulink вызывает методы выхода всех блоков подсистемы перед вызовом методов выхода других блоков на том же уровне, что и блок Subsystem.
Параметр: TreatAsAtomicUnit |
Тип: Вектор символов |
Значение: 'off' | 'on' |
По умолчанию: 'off' |
Minimize algebraic loop occurrences
- Опция устранения искусственных алгебраических цикловПопытайтесь исключить любые искусственные алгебраические циклы, которые включают атомарную подсистему
Не пытайтесь устранить какие-либо искусственные алгебраические циклы, которые включают атомарную подсистему.
Попытайтесь исключить любые искусственные алгебраические циклы, которые включают атомарную подсистему.
Чтобы включить этот параметр, выберите параметр Treat as atomic unit.
Параметр: MinAlgLoopOccurrences |
Тип: Вектор символов |
Значение: 'off' | 'on' |
По умолчанию: 'off' |
Schedule As
- Тип планированияSample Time
(по умолчанию) | Periodic Partition
| Aperiodic Partition
Задайте, как планировать подсистему.
Sample time
Укажите, должны ли все блоки в этой подсистеме запускаться с одной скоростью или могут запускаться с различными скоростями.
Periodic Partition
Планируйте подсистему как периодический раздел. Укажите имя раздела и шаг расчета, соответствующее скорости, с которой запускается раздел.
Aperiodic Partition
Планируйте подсистему как апериодический раздел. Задайте имя раздела.
Чтобы включить этот параметр, выберите параметр Treat as atomic unit.
Параметр: ScheduleAs |
Тип: Вектор символов |
Значение: 'SampleTime' | 'DiscretePartition' | 'UnconstrainedPartition' |
По умолчанию: 'SampleTime' |
Partition Name
- Имя разделаУкажите имя раздела для подсистемы.
Чтобы включить этот параметр, выберите параметр Treat as atomic unit и установите Schedule As равным Periodic Partition
или Aperiodic Partition
.
Параметр: PartitionName |
Тип: Вектор символов |
Значение: '' |
По умолчанию: '' |
Sample time
- Временной интервал-1
(по умолчанию) | [Ts 0]
Укажите, должны ли все блоки в этой подсистеме запускаться с одной скоростью или могут запускаться с различными скоростями.
Если блоки в подсистеме могут запускаться с различными скоростями, задайте шаг расчета подсистемы как унаследованное (-1
).
Если все блоки должны запускаться с одной скоростью, задайте шаг расчета, соответствующее этой скорости, как значение параметра Sample time.
Если какой-либо из блоков в подсистеме задает другой шаг расчета (кроме -1
или inf
), Simulink отображает сообщение об ошибке, когда вы обновляете или симулируете модель. Например, предположим, что все блоки в подсистеме должны запускаться 5
раз в секунду. Чтобы гарантировать это, задайте шаг расчета подсистемы следующим 0.2
. В этом примере, если любой из блоков в подсистеме задает шаг расчета, отличное от 0.2
, -1
, или inf
Simulink отображает ошибку при обновлении или симуляции модели.
-1
Задайте унаследованный шаг расчета. Используйте этот шаг расчета, если блоки в подсистеме могут запускаться с различными скоростями.
[Ts 0]
Задайте периодические шаги расчета.
Чтобы включить этот параметр, выберите параметр Treat as atomic unit.
Параметр: SystemSampleTime |
Тип: Вектор символов |
Значение: '-1' | '[Ts 0]'
|
По умолчанию: '-1' |
Variant control
- Выражение управления вариантом (условие)Variant
(по умолчанию) | логическое выражениеЗадайте выражение управления вариантом (условие), которое выполняет вариант Simulink Function блок, когда выражение вычисляется как true
.
Для получения дополнительной информации смотрите Simulink.Variant
.
Variant
Имя по умолчанию для логического (логического) выражения.
Логическое (логическое) выражение или Simulink.Variant
объект, представляющий логическое выражение.
Функция активируется, когда выражение вычисляется как true
.
Если вы хотите сгенерировать код для модели, задайте переменные в выражении следующим Simulink.Parameter
объекты.
Включите этот параметр, добавив Subsystem блок внутрь блока Variant Subsystem.
Параметры блоков:
VariantControl
|
Тип: Вектор символов |
Значение:
'Variant' | '<logical expression>' |
По умолчанию:
'Variant'
|
Treat as grouped when propagating variant conditions
- Опция рассматривать подсистему как модуль при распространении вариантов условийon
(по умолчанию) | off
Заставляет Simulink обрабатывать подсистему как модуль при распространении вариантов условий из блоков Variant Source или в блоки Variant Sink.
Simulink обрабатывает подсистему как модуль при распространении вариантов условий из блоков Variant Source или в блоки Variant Sink. Для примера, когда Simulink вычисляет условие варианта подсистемы, он распространяет это условие на все блоки подсистемы.
Simulink обрабатывает все блоки в подсистеме как находящиеся на том же уровне в иерархии модели, что и сама подсистема, при определении их варианта условия.
Параметр: TreatAsGroupedWhenPropagatingVariantConditions |
Тип: Вектор символов |
Значение: 'on' | 'off' |
По умолчанию: 'on' |
Function packaging
- Формат кодаAuto
(по умолчанию) | Inline
| Nonreusable function
| Reusable function
Выберите формат кода, который будет сгенерирован для атомарной (невиртуальной) подсистемы.
Auto
Simulink Coder и Embedded Coder выбирают оптимальный для вас формат исходя из типа и количества образцов подсистемы, которые существуют в модели.
Inline
Simulink Coder и Embedded Coder вводят подсистему безоговорочно.
Nonreusable function
Если для Filename options задано значение Auto
, Simulink Coder и Embedded Coder упакуют в файл модели отдельные функции. Если для File name options задано значение Use subsystem name
, Use function name
, или User specified
используя различные имена файлов, Simulink Coder и Embedded Coder упаковывают отдельные функции в отдельные файлы.
Подсистемы с этим параметром генерируют функции, которые могут иметь аргументы в зависимости от настройки параметра Function interface. Вы можете назвать сгенерированную функцию и файл с помощью параметров имя функции и File name (без расширения). Эти функции не являются повторяющимися.
Reusable function
Simulink Coder и Embedded Coder генерируют функцию с аргументами, которая позволяет повторно использовать код подсистемы, когда модель включает в себя несколько образцы подсистемы.
Эта опция также генерирует функцию с аргументами, которая позволяет повторно использовать код подсистемы в сгенерированном коде иерархии модели-ссылки, которая включает несколько образцы подсистемы через ссылочные модели. В этом случае подсистема должна находиться в библиотеке.
Для получения дополнительной информации смотрите:
Управляйте генерацией функций для подсистем (Simulink Coder)
Сгенерируйте код и исполняемые файлы для отдельных подсистем (Simulink Coder)
Встроенный код подсистемы (Simulink Coder)
Сгенерируйте код подсистемы как отдельную функцию и файлы (Simulink Coder)
Сгенерируйте переиспользуемый код из библиотечных подсистем, общих для моделей (Simulink Coder)
Когда вы хотите, чтобы несколько образцы подсистемы были представлены как одна переиспользуемая функция, можно назначить каждый из них следующим Auto
или как Reusable function
. Лучше всего использовать то или иное, так как использование обоих создает две переиспользуемые функции, по одной для каждого обозначения. Результаты этого выбора различаются только тогда, когда повторное использование невозможно. Выбор Auto
не разрешает управление функцией или именем файла для кода подсистемы.
The Reusable function
и Auto
опции пытаются определить, существует ли несколько образцов подсистемы и можно ли повторно использовать код. Различие между поведением опций заключается в том, что, когда повторное использование невозможно:
Auto
приводит к inlined коду или, если обстоятельства запрещают inlining, отдельным функциям для каждого образца подсистемы.
Reusable function
приводит к отдельной функции с аргументами для каждого образца подсистемы в модели.
Если вы выбираете Reusable function
пока ваш сгенерированный код находится под системой контроля версий, установите File name options равным Use subsystem name
, Use function name
, или User specified
. В противном случае имена файлов кода изменяются каждый раз, когда вы изменяете модель, что препятствует системе контроля версий в файлах.
Этот параметр требует Simulink Coder для генерации кода.
Чтобы включить этот параметр, выберите Treat as atomic unit.
Параметр: RTWSystemCode |
Тип: Вектор символов |
Значение: 'Auto' | 'Inline' | 'Nonreusable function' | 'Reusable function' |
По умолчанию: 'Auto' |
Function name options
- Как назвать сгенерированную функциюAuto
(по умолчанию) | Use subsystem name
| User specified
Выберите, как Simulink Coder называет функцию, которую он генерирует для подсистемы.
Если у вас есть лицензия Embedded Coder, вы можете управлять именами функции с опциями на панели Параметра конфигурации <reservedrangesplaceholder1> > Identifiers.
Auto
Присвойте уникальное имя функции с помощью соглашения об именовании по умолчанию,
, где model
_subsystem
()model
- имя модели и subsystem
- имя подсистемы (или имя идентичной подсистемы при повторном использовании кода).
Если вы выбираете Reusable function
для параметра Function packaging и существует несколько образцы переиспользуемой подсистемы в иерархии модели-ссылки, в порядок для генерации переиспользуемого кода для подсистемы, Function name options должно быть установлено на Auto
.
Use subsystem name
В качестве имени функции используйте имя подсистемы. По умолчанию имя функции использует соглашение об именовании
.model
_subsystem
Примечание
Когда подсистема находится в библиотечном блоке, и параметр подсистемы Function packaging устанавливается в Reusable function
, если вы устанавливаете Use subsystem name
опция кода использует имя библиотечного блока для имени функции подсистемы и имени файла.
User specified
Включите поле Function name. Введите любое легальное имя функции C или C++, которое должно быть уникальным.
Для получения дополнительной информации смотрите Генерация функций управления для подсистем (Simulink Coder).
Этот параметр требует лицензии Simulink Coder.
Чтобы включить этот параметр, установите Function packaging равным Nonreusable function
или Reusable function
.
Параметр: RTWFcnNameOpts |
Тип: Вектор символов |
Значение: 'Auto' | 'Use subsystem name' | 'User specified' |
По умолчанию: 'Auto' |
Function name
- Имя функции для кода подсистемы''
(по умолчанию) | имя функцииЗадайте уникальное, допустимое имя функции C или C++ для кода подсистемы.
Используйте этот параметр, если вы хотите задать функции определенное имя вместо того, чтобы позволить генератору кода Simulink Coder присвоить собственное автогенерированное имя или использовать имя подсистемы. Для получения дополнительной информации смотрите Генерация функций управления для подсистем (Simulink Coder).
Этот параметр требует лицензии Simulink Coder.
Чтобы включить этот параметр, установите параметр Function name options равным User specified
.
Параметр: RTWFcnName |
Тип: Вектор символов |
Значение: '' | '<function name>' |
По умолчанию: '' |
File name options
- Как назвать сгенерированный файлAuto
(по умолчанию) | Use subsystem name
| Use function name
| User specified
Выберите, как Simulink Coder называет отдельный файл для функции, которую он генерирует для подсистемы.
Auto
В зависимости от строения подсистемы и количества образцов в модели, Auto
приводит к различным результатам:
Если генератор кода не генерирует отдельный файл для подсистемы, код подсистемы генерируется в модуле кода, сгенерированном из родительской системы подсистемы. Если родительским элементом подсистемы является сама модель, код подсистемы генерируется внутри
или model
.c
.model
.cpp
Если вы выбираете Reusable function
для параметра Function packaging, и ваш сгенерированный код находится под системой контроля версий, рассмотрите указание значения File name options кроме Auto
. Это препятствует изменению имени сгенерированного файла из-за несвязанных модификаций модели, что проблематично для использования системы контроля версий для управления строениями.
Если вы выбираете Reusable function
для параметра Function packaging и существует несколько образцы переиспользуемой подсистемы в иерархии модели-ссылки, в порядок для генерации переиспользуемого кода для подсистемы, File name options должно быть установлено на Auto
.
Use subsystem name
Генератор кода генерирует отдельный файл, используя имя подсистемы (или библиотечного блока) в качестве имени файла.
Примечание
Когда File name options установлено на Use subsystem name
имя файла подсистемы изменяется, если модель содержит блоки Model, или если для модели генерируется цель модели-ссылки. В этих ситуациях имя файла подсистемы состоит из имени подсистемы, префиксируемого именем модели.
Use function name
Генератор кода использует имя функции, заданное как Function name options, в качестве имени файла.
User specified
Эта опция включает поле File name (no extension) ввода текста. Генератор кода использует имя, которое вы вводите в качестве имени файла. Введите любое имя файла, но не включать .c
или .cpp
(или любой другой) внутренний номер. Это имя файла не должно быть уникальным.
Примечание
Хотя имя исходного файла подсистемы не должно быть уникальным, вы должны избегать присвоения неоднородных имен, которые приводят к циклическим зависимостям (для примера sys_a.h
включает sys_b.h
, sys_b.h
включает sys_c.h
, и sys_c.h
включает sys_a.h
).
Этот параметр требует лицензии Simulink Coder.
Чтобы включить этот параметр, установите Function packaging равным Nonreusable function
или Reusable function
.
Параметр: RTWFileNameOpts |
Тип: Вектор символов |
Значение: 'Auto' | 'Use subsystem name' | 'Use function name' | 'User specified' |
По умолчанию: 'Auto' |
File name (no extension)
- Имя сгенерированного файла ''
(по умолчанию) | имя файла Заданное имя файла не должно быть уникальным. Однако избегайте присвоения не уникальных имен, которые приводят к циклическим зависимостям (для примера sys_a.h
включает sys_b.h
, sys_b.h
включает sys_c.h
, и sys_c.h
включает sys_a.h
).
Для получения дополнительной информации смотрите Генерация функций управления для подсистем (Simulink Coder).
Этот параметр требует лицензии Simulink Coder.
Чтобы включить этот параметр, установите File name options равным User specified
.
Параметр: RTWFileName |
Тип: Вектор символов |
Значение: '' | '<file name>' |
По умолчанию: '' |
Function interface
- Выберите, чтобы использовать аргументы с функцией generatevoid_void
(по умолчанию) | Allow arguments (Optimized)
| Allow arguments (Match graphical interface)
Выберите, чтобы использовать аргументы с сгенерированной функцией.
void_void
Сгенерируйте функцию без аргументов и передайте данные как глобальные переменные. Для примера:
void subsystem_function(void)
Allow arguments (Optimized)
Сгенерируйте функцию, которая использует аргументы вместо передачи данных в качестве глобальных переменных. Эта спецификация уменьшает глобальную ОЗУ. Это может уменьшить размер кода и улучшить скорость выполнения и позволить генератору кода применить дополнительные оптимизации. Для примера:
void subsystem_function(real_T rtu_In1, real_T rtu_In2, real_T *rty_Out1)
Allow arguments (Match graphical interface)
Сгенерируйте интерфейс функции, который использует аргументы, которые совпадают с графическим интерфейсом блока Подсистемы. Сгенерированный интерфейс функции предсказуем и не меняется. Предсказуемый интерфейс может быть полезен для отладки и проверки вашего кода и интеграции с внешними приложениями. Например, если у модели есть два Inports и два Outports, то сгенерированный интерфейс функции:
void subsystem_function(real_T rtu_In1, real_T rtu_In2, real_T *rty_Out1, real_T *rty_Out2)
Для получения дополнительной информации смотрите:
Этот параметр требует Embedded Coder и системного целевого файла на основе ERT.
Чтобы включить этот параметр, установите Function packaging равным Nonreusable function
.
Параметр: FunctionInterfaceSpec |
Тип: Вектор символов |
Значение: 'void_void' | 'Allow arguments (Optimized)' | 'Allow arguments (Match graphical interface)' |
По умолчанию: 'void_void' |
Function with separate data
- Генерация кода системы управления для подсистемыСгенерируйте код функции подсистемы, в котором внутренние данные для атомарной подсистемы отделены от ее родительской модели и принадлежат подсистеме.
Не генерируйте код функции подсистемы, в котором внутренние данные для атомарной подсистемы отделены от ее родительской модели и принадлежат подсистеме.
Сгенерируйте код функции подсистемы, в котором внутренние данные для атомарной подсистемы отделены от ее родительской модели и принадлежат подсистеме. Структура данных подсистемы объявляется независимо от родительской модели структур данных. Подсистема с отдельными данными имеет свои собственные блоки ввода-вывода и DWork
структура данных. В результате сгенерированный код для подсистемы легче отследить и протестировать. Разделение данных также имеет тенденцию уменьшать максимальный размер глобальных структур данных на протяжении всей модели, потому что они разделены на несколько структур данных.
Для получения дополнительной информации о том, как сгенерировать код модульной функции для атомарной подсистемы, смотрите Сгенерируйте код модульной функции для невиртуальных подсистем (Embedded Coder).
Для получения дополнительной информации о том, как применить разделы памяти к атомарным подсистемам, смотрите Переопределение размещения памяти по умолчанию для функций подсистемы и данных (Embedded Coder).
Этот параметр требует лицензии для Embedded Coder и системного целевого файла на основе ERT.
Чтобы включить этот параметр, установите Function packaging равным Nonreusable function
.
Параметр: FunctionWithSeparateData |
Тип: Вектор символов |
Значение: 'off' | 'on' |
По умолчанию: 'off' |
Memory section for initialize/terminate functions
- Выберите, как применить разделы памятиInherit from model
(по умолчанию) | Default
| The memory section of interest
Выберите, как Embedded Coder применяет разделы памяти к функциям инициализации и завершения подсистемы.
Inherit from model
Примените корневые разделы памяти модели к коду функции подсистемы
Default
Не применяйте разделы памяти к системному коду подсистемы, переопределяя любую спецификацию уровня модели
The memory section of interest
Примените один из разделов памяти модели к подсистеме
Возможные значения варьируются в зависимости от того, какой (если какой-либо) пакет разделов памяти вы установили для строения модели. См. «Размещение управляющих данных и функций в памяти путем вставки прагм (Embedded Coder) и параметров конфигурации модели: генерация кода (Simulink Coder)».
Если вы не сконфигурировали модель с пакетом, Inherit from model
- единственное значение, которое появляется. В противном случае в список входят Default
и все разделы памяти, содержащиеся в пакете модели.
Эти опции могут быть полезны для переопределения настроек раздела памяти модели для данной подсистемы. Для получения дополнительной информации о том, как применить разделы памяти к атомарным подсистемам, смотрите Переопределение размещения памяти по умолчанию для функций подсистемы и данных (Embedded Coder).
Этот параметр требует лицензии для программного обеспечения Embedded Coder и системного целевого файла на основе ERT.
Чтобы включить этот параметр, установите Function packaging равным Nonreusable function
или Reusable function
.
Параметр: RTWMemSecFuncInitTerm |
Тип: Вектор символов |
Значение: 'Inherit from model' | 'Default' | 'The memory section of interest' |
По умолчанию: 'Inherit from model' |
Memory section for execution functions
- Выберите, как применить разделы памятиInherit from model
(по умолчанию) | Default
| The memory section of interest
Выберите, как Embedded Coder применяет разделы памяти к функциям выполнения подсистемы.
Inherit from model
Примените корневые разделы памяти модели к коду функции подсистемы
Default
Не применяйте разделы памяти к системному коду подсистемы, переопределяя любую спецификацию уровня модели
The memory section of interest
Примените один из разделов памяти модели к подсистеме
Возможные значения варьируются в зависимости от того, какой (если какой-либо) пакет разделов памяти вы установили для строения модели. См. «Размещение управляющих данных и функций в памяти путем вставки прагм (Embedded Coder) и параметров конфигурации модели: генерация кода (Simulink Coder)».
Если вы не сконфигурировали модель с пакетом, Inherit from model
- единственное значение, которое появляется. В противном случае в список входят Default
и все разделы памяти, содержащиеся в пакете модели.
Эти опции могут быть полезны для переопределения настроек раздела памяти модели для данной подсистемы. Для получения дополнительной информации о том, как применить разделы памяти к атомарным подсистемам, смотрите Переопределение размещения памяти по умолчанию для функций подсистемы и данных (Embedded Coder).
Этот параметр требует лицензии для программного обеспечения Embedded Coder и системного целевого файла на основе ERT.
Чтобы включить этот параметр, установите Function packaging равным Nonreusable function
или Reusable function
.
Параметр: RTWMemSecFuncExecute |
Тип: Вектор символов |
Значение: 'Inherit from model' | 'Default' | 'The memory section of interest' |
По умолчанию: 'Inherit from model' |
Memory section for constants
- Выберите, как применить разделы памятиInherit from model
(по умолчанию) | Default
| The memory section of interest
Выберите, как Embedded Coder применяет разделы памяти к константам подсистемы.
Inherit from model
Примените корневые разделы памяти модели к данным подсистемы
Default
Не применяйте разделы памяти к данным подсистемы, переопределяя любую спецификацию уровня модели
The memory section of interest
Примените один из разделов памяти модели к подсистеме
Заданный вами раздел памяти применяется к соответствующим глобальным данным структурам в сгенерированном коде. Для получения основной информации о глобальных структурах данных, сгенерированных для атомарных подсистем, смотрите Стандартные структуры данных (Simulink Coder).
Возможные значения варьируются в зависимости от того, какой (если какой-либо) пакет разделов памяти вы установили для строения модели. Смотрите Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder).
Если вы не сконфигурировали модель с пакетом, Inherit from model
- единственное значение, которое появляется. В противном случае в список входят Default
и все разделы памяти, содержащиеся в пакете модели.
Эти опции могут быть полезны для переопределения настроек раздела памяти модели для данной подсистемы. Для получения дополнительной информации о том, как применить разделы памяти к атомарным подсистемам, смотрите Переопределение размещения памяти по умолчанию для функций подсистемы и данных (Embedded Coder).
Этот параметр требует лицензии для Embedded Coder и системного целевого файла на основе ERT.
Чтобы включить этот параметр, установите Function packaging равным Nonreusable function
и выберите параметр Function with separate data.
Параметр: RTWMemSecDataConstants |
Тип: Вектор символов |
Значение: 'Inherit from model' | 'Default' | 'The memory section of interest' |
По умолчанию: 'Inherit from model' |
Memory section for internal data
- Выберите, как применить разделы памятиInherit from model
(по умолчанию) | Default
| The memory section of interest
Выберите, как Embedded Coder применяет разделы памяти к внутренним данным подсистемы.
Inherit from model
Примените корневые разделы памяти модели к данным подсистемы
Default
Не применяйте разделы памяти к данным подсистемы, переопределяя любую спецификацию уровня модели
The memory section of interest
Примените один из разделов памяти модели к подсистеме
Заданный вами раздел памяти применяется к соответствующим глобальным данным структурам в сгенерированном коде. Для получения основной информации о глобальных структурах данных, сгенерированных для атомарных подсистем, смотрите Стандартные структуры данных (Simulink Coder).
Возможные значения варьируются в зависимости от того, какой (если какой-либо) пакет разделов памяти вы установили для строения модели. Смотрите Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder).
Если вы не сконфигурировали модель с пакетом, Inherit from model
- единственное значение, которое появляется. В противном случае в список входят Default
и все разделы памяти, содержащиеся в пакете модели.
Эти опции могут быть полезны для переопределения настроек раздела памяти модели для данной подсистемы. Для получения дополнительной информации о том, как применить разделы памяти к атомарным подсистемам, смотрите Переопределение размещения памяти по умолчанию для функций подсистемы и данных (Embedded Coder).
Этот параметр требует лицензии для Embedded Coder и системного целевого файла на основе ERT.
Чтобы включить этот параметр, установите Function packaging равным Nonreusable function
и выберите параметр Function with separate data.
Параметр: RTWMemSecDataInternal |
Тип: Вектор символов |
Значение: 'Inherit from model' | 'Default' | 'The memory section of interest' |
По умолчанию: 'Inherit from model' |
Memory section for parameters
- Выберите, как применить разделы памятиInherit from model
(по умолчанию) | Default
| The memory section of interest
Выберите, как Embedded Coder применяет разделы памяти к параметрам подсистемы.
Inherit from model
Примените корневые разделы памяти модели к коду функции подсистемы
Default
Не применяйте разделы памяти к системному коду подсистемы, переопределяя любую спецификацию уровня модели
Примените один из разделов памяти модели к подсистеме
Указанный вами раздел памяти применяется к соответствующей структуре глобальных данных в сгенерированном коде. Для получения основной информации о глобальных структурах данных, сгенерированных для атомарных подсистем, смотрите Стандартные структуры данных (Simulink Coder).
Возможные значения варьируются в зависимости от того, какой (если какой-либо) пакет разделов памяти вы установили для строения модели. Смотрите Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder).
Если вы не сконфигурировали модель с пакетом, Inherit from model
- единственное значение, которое появляется. В противном случае в список входят Default
и все разделы памяти, содержащиеся в пакете модели.
Эти опции могут быть полезны для переопределения настроек раздела памяти модели для данной подсистемы. Для получения дополнительной информации о том, как применить разделы памяти к атомарным подсистемам, смотрите Переопределение размещения памяти по умолчанию для функций подсистемы и данных (Embedded Coder).
Этот параметр требует лицензии для Embedded Coder и системного целевого файла на основе ERT.
Чтобы включить этот параметр, установите Function packaging равным Nonreusable function
и выберите параметр Function with separate data.
Параметр: RTWMemSecDataParameters |
Тип: Вектор символов |
Значение: 'Inherit from model' | 'Default' | 'The memory section of interest' |
По умолчанию: 'Inherit from model' |
Subsystem file name
- Имя файла для подсистемы-ссылкиДля доступа к этому параметру нажмите кнопку Convert.
Дополнительные сведения о преобразовании подсистемы в подсистему-ссылку см. в разделе Преобразование существующей подсистемы в подсистему-ссылку.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
[a] Фактический тип данных или поддержка возможностей зависит от реализации блоков. |
Фактический тип данных или поддержка возможностей зависит от реализации блоков.
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
Архитектура | Описание |
---|---|
Module (по умолчанию) | Сгенерируйте код для подсистемы и блоков в подсистеме. |
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 игнорируются. В HDL Workflow Advisor, если вы используете IP Core Generation рабочий процесс, эти значения свойств целевых блоков спецификации сохраняются вместе с моделью. Если вы задаете эти целевые значения свойств блоков спецификации, используя hdlset_param
при открытии HDL Workflow Advisor поля заполняются соответствующими значениями.
Целевые спецификации | |
---|---|
AdditionalTargetInterfaces |
Дополнительные целевые интерфейсы, заданные как вектор символов. Чтобы сохранить это свойство блока в модели, в Set Target Interface задаче рабочего процесса IP Core Generation, соответствующей портам DUT, которые вы хотите добавить больше интерфейсов, выберите Add more.... Затем можно добавить больше интерфейсов в диалоговом окне Add New Target Interfaces. Укажите тип интерфейса, количество дополнительных интерфейсов и уникальное имя для каждого дополнительного интерфейса. Значения: Пример: |
ProcessorFPGASynchronization | Режим синхронизации Процессор/FPGA, заданный как вектор символов. Чтобы сохранить это свойство блока в модели, задайте Processor/FPGA Synchronization в задаче Set Target Interface рабочего процесса IP Core Generation. Значения: Пример: |
TestPointMapping | Чтобы сохранить это свойство блока в модели, задайте отображение портов тестовых точек с интерфейсами целевой платформы в Set Target Interface задаче IP Core Generation рабочего процесса. Значения: Пример: |
TunableParameterMapping | Чтобы сохранить это свойство блока в модели, задайте отображение настраиваемых портов параметров с целевыми интерфейсами платформы в Set Target Interface задаче IP Core Generation рабочего процесса. Значения: Пример: |
AXI4RegisterReadback | Чтобы сохранить это свойство блока в модели, укажите, хотите ли вы включить чтение на AXI4 ведомых регистрах записи в Generate RTL Code and IP Core задаче IP Core Generation рабочего процесса. Для получения дополнительной информации смотрите Model Design for AXI4 Slave Interface Generation (HDL Coder). Значения: |
AXI4SlaveIDWidth |
Чтобы сохранить это свойство блока в модели, укажите количество интерфейсов AXI Master, к которым вы хотите подключить ядро IP DUT, используя настройку AXI4 Slave ID Width в Generate RTL Code and IP Core задаче IP Core Generation рабочего процесса. Для получения дополнительной информации смотрите Define Multiple AXI Master Interfaces in Исходные Проекты для доступа к DUT AXI4 Slave Interface (HDL Coder). Значения: |
AXI4SlavePortToPipelineRegisterRatio |
Чтобы сохранить это свойство блока в модели, задайте количество AXI4 ведомых портов, для которых необходимо вставить регистр трубопровода, используя параметр AXI4 Slave port to pipeline register ratio в задаче Generate RTL Code and IP Core рабочего процесса IP Core Generation. Для получения дополнительной информации смотрите Model Design for AXI4 Slave Interface Generation (HDL Coder). Значения: |
GenerateDefaultAXI4Slave | Чтобы сохранить это свойство блока в модели, укажите, хотите ли вы отключить генерацию интерфейсов по умолчанию AXI4 подчиненных интерфейсов в Generate RTL Code and IP Core задаче IP Core Generation рабочего процесса. Значения: |
IPCoreAdditionalFiles | Verilog® или VHDL® файлы для черных ящиков в вашем проекте. Укажите полный путь к каждому файлу и разделите имена файлов точкой с запятой (;). Это свойство можно задать в HDL Workflow Advisor, в поле Additional source files. Значения: Пример: |
IPCoreName | Имя ядра IP, заданное как вектор символов. Это свойство можно задать в HDL Workflow Advisor, в поле IP core name. Если для этого свойства задано значение по умолчанию, HDL Workflow Advisor создает имя ядра IP на основе имени DUT. Значения: Пример: |
IPCoreVersion | Номер версии ядра IP, заданный как вектор символов. Это свойство можно задать в HDL Workflow Advisor, в поле IP core version. Если для этого свойства задано значение по умолчанию, HDL Workflow Advisor устанавливает версию ядра IP. Значения: Пример: |
IPDataCaptureBufferSize |
Buffer size FPGA Data Capture, заданный как вектор символов. Используйте FPGA Data Capture, чтобы наблюдать сигналы в проекте при запуске на FPGA. В buffer size используются значения, которые 128 * 2 ^ n, где n - целое число. По умолчанию buffer size 128 (n = 0). Максимальное значение n равно 13, что означает, что максимальное значение для размера буфера составляет 1048576 (= 128 * 2 ^ 13). Значения: Пример: |
Если ваш DUT является маскированной подсистемой, вы можете сгенерировать код, только если он находится на верхнем уровне модели.
Для получения дополнительной информации смотрите:
Интерфейсы внешних компонентов ( HDL Coder)
Сгенерируйте интерфейс черного ящика для подсистемы ( HDL Coder)
Фактический тип данных или поддержка возможностей зависит от реализации блоков.
Enabled and Triggered Subsystem | Enabled Subsystem | Function-Call Subsystem | Triggered Subsystem
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.