Группа блокируется, чтобы создать иерархию модели
Simulink / Ports & Subsystems
Блок Subsystem содержит подмножество блоков в модели или системе. Блок Subsystem может представлять виртуальную подсистему или невиртуальную подсистему.
Невиртуальная подсистема – Управление, когда содержимое подсистемы оценено как единый блок (атомарное выполнение). Создайте условно выполняемые подсистемы, которые запускаются только, когда событие имеет место на инициировании, вызове функции, действии или входе включения (см. Условно Выполняемые Подсистемы и Модели).
Виртуальная подсистема – Подсистема ни условно ни атомарно не выполняется. Виртуальные подсистемы не имеют контрольных сумм. Чтобы определить, является ли подсистема виртуальной, используйте get_param
функция для булевых параметров блоков IsSubsystemVirtual
.
Атомарная подсистема является блоком Subsystem с параметрами блоков выбранный Treat as atomic unit.
codereuse подсистема является блоком Subsystem параметром выбранный Treat as atomic unit и набор parameter Function packaging к Reusable function
, определение функционального формата генерации кода для подсистемы.
Чтобы создать подсистему, выполнить одно из следующих действий:
Скопируйте блок Subsystem из библиотеки Ports & Subsystems в вашу модель. Затем добавьте блоки в подсистему путем открытия блока Subsystem и копирования блоков в него.
Выберите все блоки и линии, которые составляют подсистему, и затем во вкладке Multiple, нажимают Create Subsystem. Simulink® заменяет блоки на блок Subsystem, наряду с необходимым Inport и блоками Outport, чтобы отразить сигналы, входящие и оставляющие подсистему.
Количество входных портов, продвинутых значок блока Subsystem, соответствует количеству блоков Inport в подсистеме. Точно так же количество выходных портов, продвинутых блок, соответствует количеству блоков Outport в подсистеме.
Блок Subsystem поддерживает распространение метки сигнала через подсистему блоки Outport и Inport.
Подсистема, на которую ссылаются, является подсистемой, сохраненной в отдельном файле, на который ссылаются с помощью блока Subsystem Reference. Чтобы снова использовать ту подсистему, добавьте несколько блоков Subsystem Reference, которые ссылаются на тот же самый файл подсистемы. Подсистема, на которую ссылаются, ведет себя тождественно к регулярной подсистеме во время времени выполнения.
In
— Вход сигнала с блоком подсистемыРазмещение блока Inport в блоке подсистемы добавляет внешний входной порт в блок. Метка порта совпадает с именем блока Inport.
Используйте блоки Inport, чтобы получить сигналы от окружения.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
Out
— Выход сигнала от подсистемыРазмещение блока Outport в блоке подсистемы добавляет выходной порт из блока. Метка порта на блоке подсистемы является именем блока Outport.
Используйте блоки Outport , чтобы отправить сигналы в окружение.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
Параметры на вкладке Code Generation требуют лицензия Embedded Coder® или Simulink 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
Отключите открытие или модификацию подсистемы. Если подсистема находится в библиотеке, вы можете создать ссылки на подсистему в модели, но не можете открыть, изменить, полномочия изменения, или создать локальные копии подсистемы.
Параметр: Permissions |
Ввод: символьный вектор |
Значение: 'ReadWrite' | 'ReadOnly' | 'NoReadOrWrite' |
Значение по умолчанию: 'ReadWrite' |
Name of error callback function
— Задайте имя функции''
(значение по умолчанию) | имя функцииВведите имя функции, которая будет названа, если ошибка происходит, в то время как Simulink выполняет подсистему.
Simulink передает два аргумента функции: указатель подсистемы и вектора символов, который задает ошибочный тип. Если никакая функция не задана, Simulink отображает типовое сообщение об ошибке, если выполнение подсистемы вызывает ошибку.
Параметр: ErrorFcn |
Ввод: символьный вектор |
Значение: '' | '<function name>' |
Значение по умолчанию: '' |
Permit hierarchical resolution
— Выберите, как разрешить имена переменных рабочей областиAll
(значение по умолчанию) | ExplicitOnly
| None
Выберите, разрешить ли имена переменных рабочей области, на которые ссылается эта подсистема.
Смотрите Процесс Разрешения Разрешения и Символа Символа в Руководстве пользователя Simulink для получения дополнительной информации.
All
Разрешите все имена переменных рабочей области, используемых этой подсистемой, включая используемых, чтобы задать значения параметров блоков и Объекты данных Simulink (например, Simulink.Signal
объекты.
ExplicitOnly
Разрешите, что только имена переменных рабочей области раньше задавали значения параметров блоков, память хранилища данных (где никакой блок не существует), сигналы, и утверждает отмеченный, когда “должен решить”.
None
Не разрешайте имена переменных рабочей области.
Параметр: PermitHierarchicalResolution |
Ввод: символьный вектор |
Значение: 'All' | 'ExplicitOnly' | 'None' |
Значение по умолчанию: 'All' |
Treat as atomic unit
— Управляйте выполнением подсистемы как один модульПричины Simulink, чтобы обработать подсистему как модуль при определении порядка выполнения методов блока.
Обработайте все блоки в подсистеме, как являющейся на том же уровне в иерархии модели как подсистема при определении порядка выполнения метода блока. Это может заставить осуществление методов блоков в подсистеме быть чередованным с осуществлением методов блоков вне подсистемы.
Обработайте подсистему как модуль при определении порядка выполнения методов блока. Например, когда это должно вычислить выход подсистемы, Simulink вызывает выходные методы всех блоков в подсистеме прежде, чем вызвать выходные методы других блоков на том же уровне как блок подсистемы.
Выбирая этот параметр, включает Minimize algebraic loop occurrences, Sample time, Schedule As и параметры Function packaging. Используя Function packaging требует лицензии Simulink Coder.
Параметр: 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
— Задайте имя разделаCharacter Vector
Задайте имя раздела для подсистемы.
Чтобы включить этот параметр, выберите параметр Treat as atomic unit и Schedule As, чтобы быть Discrete Partition
или Unconstrained partition
.
Параметр: PartitionName |
Ввод: символьный вектор |
Значение: character vector | |
Значение по умолчанию: character vector |
Sample time
— Задайте временной интервал
(значение по умолчанию) | [Ts 0]
Задайте, должны ли все блоки в этой подсистеме запуститься на том же уровне или могут запуститься на различных уровнях.
Если блоки в подсистеме могут запуститься на различных уровнях, задайте шаг расчета подсистемы, как наследовано (-1
).
Если все блоки должны запуститься на том же уровне, задайте шаг расчета, соответствующий этому уровню как значение параметра Sample time.
Если какой-либо из блоков в подсистеме задает различный шаг расчета (кроме -1
или inf
), Simulink отображает сообщение об ошибке, когда вы обновляете или симулируете модель. Например, предположите, что все блоки в подсистеме должны запустить 5
времена секунда. Чтобы гарантировать это, задайте шаг расчета подсистемы как 0.2
. В этом примере, если какой-либо из блоков в подсистеме задает шаг расчета кроме 0.2
, -1, или
inf
, Simulink отображает ошибку, когда вы обновляете или симулируете модель.
Определение наследованной частоты дискретизации. Используйте этот шаг расчета, если блоки в подсистеме могут запуститься на различных уровнях.
[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. Можно назвать сгенерированную функцию и файл с помощью Имени функции параметров и Имени файла (никакое расширение). Эти функции не повторно используемы.
Reusable function
Simulink Coder и Embedded Coder генерируют функцию с аргументами, которая позволяет повторное использование кода подсистемы, когда модель включает несколько экземпляров подсистемы.
Эта опция также генерирует функцию с аргументами, которая позволяет коду подсистемы быть снова использованным в сгенерированном коде иерархии модели - ссылки, которая включает несколько экземпляров подсистемы через модели, на которые ссылаются. В этом случае подсистема должна быть в библиотеке.
Когда это необходимо, несколько экземпляров подсистемы, которая будет представлена как одна допускающая повторное использование функция, можно определять каждого из них как Auto
или как Reusable function
. Лучше использовать один или другой, как использующий обоих создает две допускающих повторное использование функции, один для каждого обозначения. Результаты этого выбора отличаются только, когда повторное использование не возможно. Выбор Auto
не позволяет управление функции или имени файла для кода подсистемы.
Reusable function
и Auto
опции и пытаются определить, существуют ли несколько экземпляров подсистемы и если код может быть снова использован. Различие между поведением опций - это, когда повторное использование не возможно:
Auto
урожаи встроили код, или если обстоятельства запрещают встраивание, отдельные функции для каждого экземпляра подсистемы.
Reusable function
дает к отдельной функции с аргументами для каждого экземпляра подсистемы в модели.
Если вы выбираете Reusable function
в то время как ваш сгенерированный код находится под системой контроля версий, установите File name options на Use subsystem name
, Use function name
, или User specified
. В противном случае имена ваших файлов кода изменяются каждый раз, когда вы изменяете свою модель, которая предотвращает систему контроля версий над вашими файлами.
Этот параметр требует Simulink Coder для генерации кода.
Чтобы включить этот параметр, выберите Treat as atomic unit.
Установка этого параметра на Nonreusable function
или Reusable function
включает следующие параметры:
Function name options
File name options
Раздел Memory для инициализирует/отключает функции (требует лицензии на Embedded Coder и основанный на ERT системный конечный файл),
Раздел Memory для функций выполнения (требует лицензии на Embedded Coder и основанный на ERT системный конечный файл),
Установка этого параметра на Nonreusable function
включает Function with separate data (требует лицензии на Embedded Coder и основанный на ERT системный конечный файл).
Параметр: RTWSystemCode |
Ввод: символьный вектор |
Значение: 'Auto' | 'Inline' | 'Nonreusable function' | 'Reusable function' |
Значение по умолчанию: 'Auto' |
Управляйте генерацией функций для подсистем (Simulink Coder)
Сгенерируйте код и исполняемые файлы для отдельных подсистем (Simulink Coder)
Встроенный код подсистемы (Simulink Coder)
Сгенерируйте код подсистемы как отдельную функцию и файлы (Simulink Coder)
Сгенерируйте повторно используемый код от подсистем библиотеки, разделяемых через модели (Simulink Coder)
Сгенерируйте повторно используемый код от подсистем библиотеки, разделяемых через модели (Simulink Coder)
Function name options
— Выберите, как назвать сгенерированную функциюAuto
(значение по умолчанию) | Use subsystem name
| User specified
Выберите, как Simulink Coder называет функцию, которую он генерирует для подсистемы.
Если у вас есть лицензия Embedded Coder, вы можете имена функции управления с опциями на Параметре конфигурации Code Generation> панель Identifiers.
Auto
Присвойте уникальное имя функции с помощью соглашения о присвоении имен по умолчанию,
, где model
_subsystem
()model
имя модели и subsystem
имя подсистемы (или тот из идентичного, когда код снова используется).
Если вы выбираете Reusable function
для параметра Function packaging и существует несколько экземпляров допускающей повторное использование подсистемы в иерархии модели - ссылки, для того, чтобы сгенерировать повторно используемый код для подсистемы, Function name options должен быть установлен в Auto
.
Use subsystem name
Используйте имя подсистемы в качестве имени функции. По умолчанию имя функции использует соглашение о присвоении имен
.model
_subsystem
Когда подсистема находится в библиотечном блоке, и упаковка Функции параметра подсистемы установлена в Reusable function
, если вы устанавливаете Use subsystem name
опция, генератор кода использует имя библиотечного блока для имени функции и имени файла подсистемы.
User specified
Включите поле Function name. Введите любой легальный C или имя функции C++, которое должно быть уникальным.
Этот параметр требует лицензии Simulink Coder.
Установка функции Генерации кода, группирующей к Nonreusable function
или Reusable function
включает этот параметр.
Установка этого параметра на User specified
включает параметр имени функции Генерации кода.
Параметр: RTWFcnNameOpts |
Ввод: символьный вектор |
Значение: 'Auto' | 'Use subsystem name' | 'User specified' |
Значение по умолчанию: 'Auto' |
Для получения дополнительной информации смотрите Генерацию Управления Функций для Подсистем (Simulink Coder).
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
.
Установка этого параметра на User specified
включает параметр File name (no extension).
Параметр: 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 with separate data
— Генерация кода системы управления для подсистемыСгенерируйте код функции подсистемы, в котором внутренние данные для атомарной подсистемы разделяются от своей родительской модели и принадлежат подсистеме.
Не генерируйте код функции подсистемы, в котором внутренние данные для атомарной подсистемы разделяются от своей родительской модели и принадлежат подсистеме.
Сгенерируйте код функции подсистемы, в котором внутренние данные для атомарной подсистемы разделяются от своей родительской модели и принадлежат подсистеме. Структура данных подсистемы объявляется независимо от структур данных родительской модели. Подсистема с отдельными данными имеет свой собственный блок I/O и DWork
структура данных. В результате сгенерированный код для подсистемы легче проследить и протестировать. Разделение данных также имеет тенденцию уменьшать максимальный размер структур глобальных данных в модели, потому что они разделены в несколько структур данных.
Этот параметр требует лицензии на Embedded Coder и основанный на ERT системный конечный файл.
Чтобы включить этот параметр, установите Function packaging на Nonreusable function
.
Выбор этого параметра включает эти параметры:
Memory section for constants
Memory section for internal data
Memory section for parameters
Параметр: FunctionWithSeparateData |
Ввод: символьный вектор |
Значение: 'off' | 'on' |
Значение по умолчанию: 'off' |
Смотрите страницу с описанием блока Subsystem для получения дополнительной информации.
Для получения дополнительной информации о том, как сгенерировать модульный функциональный код для атомарной подсистемы, смотрите, Генерируют Модульный Функциональный Код для Невиртуальных Подсистем (Embedded Coder).
Для получения дополнительной информации о том, как применить разделы памяти к атомарным подсистемам, смотрите Размещение Памяти Значения по умолчанию Переопределения для Функций Подсистемы и Данных (Embedded Coder).
Function interface
— Выберите, чтобы использовать аргументы с, генерируют функциюvoid_void
(значение по умолчанию) | Allow arguments (Optimized)
| Allow arguments (Match graphical interface)
Выберите, чтобы использовать аргументы со сгенерированной функцией.
void_void
Сгенерируйте функцию без аргументов и передайте данные как глобальные переменные. Например:
void subsystem_function(void)
Allow arguments (Optimized)
Сгенерируйте функцию, которая использует аргументы вместо передающих данных как глобальные переменные. Эта спецификация уменьшает глобальный RAM. Это может уменьшать размер кода и улучшить скорость выполнения и позволить генератору кода применить дополнительную оптимизацию. Например:
void subsystem_function(real_T rtu_In1, real_T rtu_In2, real_T *rty_Out1)
Allow arguments (Match graphical interface)
Сгенерируйте функциональный интерфейс, который использует аргументы, которые совпадают с Подсистемой графический интерфейс блока. Сгенерированный функциональный интерфейс предсказуем и не изменяется. Предсказуемый интерфейс может быть полезен для отладки и тестирования вашего кода и интеграции с внешними приложениями. Например, если модель имеет два Inports и два Выходных порта, то сгенерированный функциональный интерфейс:
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' |
Уменьшайте глобальные переменные в функциях подсистемы одноразового использования (Embedded Coder)
Сгенерируйте предсказуемый функциональный интерфейс, чтобы совпадать с графическим интерфейсом блока (Embedded Coder)
Сгенерируйте модульный функциональный код для невиртуальных подсистем (Embedded Coder)
Memory section for initialize/terminate functions
— Выберите, как применить разделы памятиInherit from model
(значение по умолчанию) | Default
| The memory section of interest
Выберите, как Embedded Coder применяет разделы памяти к функциям инициализации и завершения подсистемы.
Inherit from model
Примените разделы корневой модели memory к функциональному коду подсистемы
Default
Не применяйте разделы памяти к системному коду подсистемы, заменяя любую спецификацию уровня модели
The memory section of interest
Примените один из разделов модели memory к подсистеме
Возможные значения варьируются в зависимости от того, что (если таковые имеются) пакет разделов памяти вы установили для настройки модели. Смотрите Данные об Управлении и Функциональное Размещение в Памяти Вставкой Прагм (Embedded Coder) и Параметры конфигурации Модели: Генерация кода (Simulink Coder).
Если вы не сконфигурировали модель с пакетом, Inherit from model
единственное значение, которое появляется. В противном случае список включает Default
и все разделы памяти пакет модели содержат.
Эти опции могут быть полезны для переопределения настроек раздела memory модели для данной подсистемы.
Этот параметр требует лицензии на программное обеспечение Embedded Coder и основанный на ERT системный конечный файл.
Чтобы включить этот параметр, установите Function packaging на Nonreusable function
или Reusable function
.
Параметр: RTWMemSecFuncInitTerm |
Ввод: символьный вектор |
Значение: 'Inherit from model' | 'Default' | 'The memory section of interest' |
Значение по умолчанию: 'Inherit from model' |
Смотрите страницу с описанием блока Subsystem для получения дополнительной информации.
Для получения дополнительной информации о том, как применить разделы памяти к атомарным подсистемам, смотрите Размещение Памяти Значения по умолчанию Переопределения для Функций Подсистемы и Данных (Embedded Coder).
Memory section for execution functions
— Выберите, как применить разделы памятиInherit from model
(значение по умолчанию) | Default
| The memory section of interest
Выберите, как Embedded Coder применяет разделы памяти к функциям выполнения подсистемы.
Inherit from model
Примените разделы корневой модели memory к функциональному коду подсистемы
Default
Не применяйте разделы памяти к системному коду подсистемы, заменяя любую спецификацию уровня модели
The memory section of interest
Примените один из разделов модели memory к подсистеме
Возможные значения варьируются в зависимости от того, что (если таковые имеются) пакет разделов памяти вы установили для настройки модели. Смотрите Данные об Управлении и Функциональное Размещение в Памяти Вставкой Прагм (Embedded Coder) и Параметры конфигурации Модели: Генерация кода (Simulink Coder).
Если вы не сконфигурировали модель с пакетом, Inherit from model
единственное значение, которое появляется. В противном случае список включает Default
и все разделы памяти пакет модели содержат.
Эти опции могут быть полезны для переопределения настроек раздела memory модели для данной подсистемы.
Этот параметр требует лицензии на программное обеспечение Embedded Coder и основанный на ERT системный конечный файл.
Чтобы включить этот параметр, установите Function packaging на Nonreusable function
или Reusable function
.
Параметр: RTWMemSecFuncExecute |
Ввод: символьный вектор |
Значение: 'Inherit from model' | 'Default' | 'The memory section of interest' |
Значение по умолчанию: 'Inherit from model' |
Смотрите страницу с описанием блока Subsystem для получения дополнительной информации.
Для получения дополнительной информации о том, как применить разделы памяти к атомарным подсистемам, смотрите Размещение Памяти Значения по умолчанию Переопределения для Функций Подсистемы и Данных (Embedded Coder).
Memory section for constants
— Выберите, как применить разделы памятиInherit from model
(значение по умолчанию) | Default
| The memory section of interest
Выберите, как Embedded Coder применяет разделы памяти к константам подсистемы.
Inherit from model
Примените разделы корневой модели memory к данным подсистемы
Default
Не применяют разделы памяти к данным подсистемы, заменяя любую спецификацию уровня модели
The memory section of interest
Примените один из разделов модели memory к подсистеме
Раздел memory, который вы задаете, применяется к соответствующим структурам глобальных данных в сгенерированном коде. Для основной информации о структурах глобальных данных, сгенерированных для атомарных подсистем, смотрите Стандартные Структуры данных в Сгенерированном коде (Simulink Coder).
Может быть полезно для переопределения настроек раздела memory модели для данной подсистемы.
Возможные значения варьируются в зависимости от того, что (если таковые имеются) пакет разделов памяти вы установили для настройки модели. Смотрите Данные об Управлении и Функциональное Размещение в Памяти Вставкой Прагм (Embedded Coder).
Если вы не сконфигурировали модель с пакетом, Inherit from model
единственное значение, которое появляется. В противном случае список включает Default
и все разделы памяти пакет модели содержат.
Этот параметр требует лицензии на Embedded Coder и основанный на ERT системный конечный файл.
Чтобы включить этот параметр, установите Function packaging на Nonreusable function
и выберите параметр Function with separate data
Параметр: RTWMemSecDataConstants |
Ввод: символьный вектор |
Значение: 'Inherit from model' | 'Default' | 'The memory section of interest' |
Значение по умолчанию: 'Inherit from model' |
Смотрите страницу с описанием блока Subsystem для получения дополнительной информации.
Для получения дополнительной информации о том, как применить разделы памяти к атомарным подсистемам, смотрите Размещение Памяти Значения по умолчанию Переопределения для Функций Подсистемы и Данных (Embedded Coder).
Memory section for internal data
— Выберите, как применить разделы памятиInherit from model
(значение по умолчанию) | Default
| The memory section of interest
Выберите, как Embedded Coder применяет разделы памяти к подсистеме внутренние данные.
Inherit from model
Примените разделы корневой модели memory к данным подсистемы
Default
Не применяют разделы памяти к данным подсистемы, заменяя любую спецификацию уровня модели
The memory section of interest
Примените один из разделов модели memory к подсистеме
Раздел memory, который вы задаете, применяется к соответствующим структурам глобальных данных в сгенерированном коде. Для основной информации о структурах глобальных данных, сгенерированных для атомарных подсистем, смотрите Стандартные Структуры данных в Сгенерированном коде (Simulink Coder).
Может быть полезно для переопределения настроек раздела memory модели для данной подсистемы.
Возможные значения варьируются в зависимости от того, что (если таковые имеются) пакет разделов памяти вы установили для настройки модели. Смотрите Данные об Управлении и Функциональное Размещение в Памяти Вставкой Прагм (Embedded Coder).
Если вы не сконфигурировали модель с пакетом, Inherit from model
единственное значение, которое появляется. В противном случае список включает Default
и все разделы памяти пакет модели содержат.
Этот параметр требует лицензии на Embedded Coder и основанный на ERT системный конечный файл.
Чтобы включить этот параметр, установите Function packaging на Nonreusable function
и выберите параметр Function with separate data.
Параметр: RTWMemSecDataInternal |
Ввод: символьный вектор |
Значение: 'Inherit from model' | 'Default' | 'The memory section of interest' |
Значение по умолчанию: 'Inherit from model' |
Смотрите страницу с описанием блока Subsystem для получения дополнительной информации.
Для получения дополнительной информации о том, как применить разделы памяти к атомарным подсистемам, смотрите Размещение Памяти Значения по умолчанию Переопределения для Функций Подсистемы и Данных (Embedded Coder).
Memory section for parameters
— Выберите, как применить разделы памятиInherit from model
(значение по умолчанию) | Default
| The memory section of interest
Выберите, как Embedded Coder применяет разделы памяти к параметрам подсистемы.
Inherit from model
Примените разделы корневой модели memory к функциональному коду подсистемы
Default
Не применяют разделы памяти к системному коду подсистемы, заменяя любую спецификацию уровня модели
Примените один из разделов модели memory к подсистеме
Раздел memory, который вы задаете, применяется к соответствующей структуре глобальных данных в сгенерированном коде. Для основной информации о структурах глобальных данных, сгенерированных для атомарных подсистем, смотрите Стандартные Структуры данных в Сгенерированном коде (Simulink Coder).
Может быть полезно для переопределения настроек раздела memory модели для данной подсистемы.
Возможные значения варьируются в зависимости от того, что (если таковые имеются) пакет разделов памяти вы установили для настройки модели. Смотрите Данные об Управлении и Функциональное Размещение в Памяти Вставкой Прагм (Embedded Coder).
Если вы не сконфигурировали модель с пакетом, Inherit from model
единственное значение, которое появляется. В противном случае список включает Default
и все разделы памяти пакет модели содержат.
Этот параметр требует лицензии на 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 для получения дополнительной информации.
Для получения дополнительной информации о том, как применить разделы памяти к атомарным подсистемам, смотрите Размещение Памяти Значения по умолчанию Переопределения для Функций Подсистемы и Данных (Embedded Coder).
Subsystem file name
— Имя файла для подсистемы, на которую ссылаются,Чтобы получить доступ к этому параметру, нажмите кнопку Convert.
Для получения дополнительной информации о том, как преобразовать подсистему в подсистему, на которую ссылаются, смотрите, Преобразуют Существующую Подсистему в Подсистему, на которую Ссылаются.
Фактическая поддержка типа данных или возможности зависит от реализации блока.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Архитектура | Описание |
---|---|
Module (значение по умолчанию) | Сгенерируйте код для подсистемы и блоков в подсистеме. |
BlackBox | Сгенерируйте интерфейс черного квадрата. Сгенерированный HDL-код включает только определения порта ввода/вывода для подсистемы. Поэтому можно использовать подсистему в модели, чтобы сгенерировать интерфейс к существующему, вручную записанному HDL-коду. Генерация интерфейса черного ящика для подсистем похожа на генерацию интерфейса блока Model без сигналов часов. |
| Удалите подсистему из сгенерированного кода. Можно использовать подсистему в симуляции, однако, обработать его как "нет" в HDL-коде. |
Для BlackBox
архитектура, можно настроить имена порта и установить атрибуты интерфейса внешнего компонента. Смотрите Настраивают Черный квадрат или HDL Интерфейс Cosimulation (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 | Чтобы сохранить это свойство блока на модели, задайте, хотите ли вы включить readback на ведомых регистрах записи AXI4 в задаче Generate RTL Code and IP Core рабочего процесса IP Core Generation. Чтобы узнать больше, см. Проект Модели для Ведомой Интерфейсной Генерации AXI4 (HDL Coder). Значения: |
AXI4SlaveIDWidth |
Чтобы сохранить это свойство блока на модели, задайте количество Основных интерфейсов AXI, с которыми вы хотите соединить ядро IP DUT при помощи установки AXI4 Slave ID Width в задаче Generate RTL Code and IP Core рабочего процесса IP Core Generation. Чтобы узнать больше, смотрите, Задают Несколько Основных Интерфейсов AXI в Исходных проектах, чтобы получить доступ к Ведомому Интерфейсу DUT AXI4 (HDL Coder). Значения: |
AXI4SlavePortToPipelineRegisterRatio |
Чтобы сохранить это свойство блока на модели, задайте количество ведомых портов AXI4, для которых вы хотите, чтобы конвейерный регистр был вставлен при помощи установки AXI4 Slave port to pipeline register ratio в задаче Generate RTL Code and IP Core рабочего процесса IP Core Generation. Чтобы узнать больше, см. Проект Модели для Ведомой Интерфейсной Генерации AXI4 (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 в виде вектора символов. Используйте Сбор данных FPGA, чтобы наблюдать сигналы в проекте при работе FPGA. Buffer size использует значения, которые являются 128*2^n, где n является целым числом. По умолчанию buffer size 128 (n=0). Максимальное значение n равняется 13, что означает, что максимальное значение для buffer size 1048576 (=128*2^13). Значения: Пример: |
Если ваш DUT является подсистемой маскированной, можно сгенерировать код, только если это в верхнем уровне модели.
Для получения дополнительной информации см.:
Интерфейсы внешнего компонента (HDL Coder)
Сгенерируйте интерфейс черного квадрата для подсистемы (HDL Coder)
Фактическая поддержка типа данных или возможности зависит от реализации блока.
Enabled Subsystem | Enabled and Triggered Subsystem | Function-Call Subsystem | Triggered Subsystem
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.