Чтобы настроить интерфейс TLM компонента, который вы хотите сгенерировать, можно импортировать свои собственные XML- файл IP-XACT в генератор TLM.
Дополнительные сведения об импорте файла IP-XACT см. в разделе Выбор опций соответствия TLM.
Все XML- файлы IP-XACT должны содержать информацию, относящуюся к MathWorks®, заданный в элементах внутри компонента. Если эта информация отсутствует, генератор TLM не может проанализировать файл IP-XACT.
Следующие пары "имя-значение" параметра необходимы для <spirit:component>
:
<spirit:parameter>
<spirit:name>
MWVendor </spirit:name>
<spirit:value>
Математические </spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>
MWVersion </spirit:name>
<spirit:value>
1.0 </spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>
Модели MWModel </spirit:name>
<spirit:value>
name_of_model
</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>
Блокировка MWBlock </spirit:name>
<spirit:value>
name_of_block
</spirit:value>
</spirit:parameter>
Это изображение показывает эти необходимые элементы в XML- файл IP-XACT.
Напишите определения шины для вашей модели в соответствии с IEEE® Стандарт для IP-XACT 1685-2009.
Если вы хотите использовать Simulink® mapping, все интерфейсы шины, которые содержат отображение Simulink, должны быть ведомыми интерфейсами.
Каждый интерфейс шины без карты памяти должен иметь одно из следующих расположений элементов для отображения Simulink:
Нет отображения в Simulink
Отображение на входы Simulink, выходные параметры Simulink или смесь входов и выходов
Соответствие настраиваемым параметрам Simulink
Хотя каждый интерфейс шины может иметь только одно расположение, файл IP-XACT может содержать несколько определений интерфейса шины, каждый из которых имеет разное расположение.
Каждый <spirit:busInterface>
определение, содержащее отображение Simulink, сопоставлено с целевым сокетом TLM. В пределах <spirit:parameters>
тег, добавление <spirit:parameter>
пары "имя-значение", которые определяют отображение Simulink. Для примера:
<spirit:parameter> <spirit:name>MWMapInput</spirit:name> <spirit:value>input_1</spirit:value> </spirit:parameter>
На этом изображении показаны некоторые интерфейсы шины, которые сопоставлены с входами Simulink.
Входы отображаются вместе в одном определении интерфейса шины. Выходы указаны в отдельном интерфейсе шины. Коэффициенты фильтра находятся в другом, отдельном интерфейсе шины.
Кроме того, можно задать входы и выходы вместе в определении одного интерфейса шины. Однако коэффициенты фильтра должны оставаться в их собственном отдельном определении интерфейса шины.
Напишите определения шины для вашей модели в соответствии со стандартом IEEE для IP-XACT 1685-2009. Применяются следующие разрешения:
Входные регистры - только запись или чтение-запись
Выходные регистры - только для чтения или read-write
Регистр параметров - Только чтение, только запись или чтение-запись, в зависимости от ваших требований
Сделайте размер духа каждого регистра, в битах, больше или равным размеру этого входного, выходного или параметра Simulink.
Если необходимо использовать отображение Simulink, все интерфейсы шины, содержащие отображение Simulink, должны быть ведомыми интерфейсами.
Если у вас есть ссылка на карту памяти в интерфейсе шины, то вы должны выразить отображение Simulink в карте памяти, а не в интерфейсе шины.
Отображение Simulink для каждого регистра может состоять из следующих элементов:
Никакого отображения в Simulink (то есть в регистре не нужна информация отображения)
Отображение на входы Simulink, выходные параметры Simulink или смесь входов и выходов
Соответствие настраиваемым параметрам Simulink
Регистры не могут иметь нескольких входов-выходов. Однако интерфейс шины может быть преобразован в несколько регистров, каждый из которых имеет разное расположение.
Чтобы добавить входы, выходы или параметры к файлу IP-XACT, выполните следующие шаги.
Каждый <spirit:busInterface>
определение, содержащее отображение Simulink, сопоставлено с целевым сокетом TLM. Добавление <spirit:parameter>
Пара "имя-значение", который указывает генератору TLM, что в карте памяти есть отображение Simulink.
<spirit:parameter> <spirit:name>MWMap</spirit:name> <spirit:value>true</spirit:value> </spirit:parameter>
В каждом <spirit:memoryMap>
раздел, в каждом <spirit:register>
определение, в пределах <spirit:parameters>
тег, добавление <spirit:parameter>
Пара "имя-значение" с отображением Simulink.
<spirit:parameter> <spirit:name>MWMapInput</spirit:name> <spirit:value>input1</spirit:value> </spirit:parameter>
Это изображение демонстрирует это расположение для входа Simulink.
Чтобы опционально задать местоположения полей в регистре, задайте <spirit:field>
определение в <spirit:register>
. Используйте <spirit:bitWidth>
и <spirit:bitOffset>
теги для определения каждой <spirit:field>
. Включите <spirit:parameter>
Пара "имя-значение" с отображением Simulink в <spirit:field>
определение.
<spirit:field> <spirit:name>OUTPUT_1</spirit:name> <spirit:bitOffset>32</spirit:bitOffset> <spirit:bitWidth>32</spirit:bitWidth> <spirit:access>read-only</spirit:access> <spirit:parameters> <spirit:parameter> <spirit:name>MWMapOutput</spirit:name> <spirit:value>output_1</spirit:value> </spirit:parameter> </spirit:parameters> </spirit:field>
Чтобы опционально исключить регистр из отображения Simulink, добавьте <spirit:parameter>
Пара "имя-значение" в <spirit:register>
определение. Укажите имя следующим MWMap
и значение как false
чтобы исключить регистр из карты памяти.
<spirit:register>
<spirit:name>EXCLUDED_REG_1</spirit:name>
<spirit:addressOffset>0x38</spirit:addressOffset>
<spirit:size>64</spirit:size>
<spirit:access>read-only</spirit:access>
<spirit:parameters>
<spirit:parameter>
<spirit:name>MWMap</spirit:name>
<spirit:value>false</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:register>
Чтобы исключить адресный блок из размещения в ОЗУ Simulink, добавьте <spirit:parameter>
Пара "имя-значение" в <spirit:addressblock>
определение. Укажите имя следующим MWMap
и значение как false
чтобы исключить адресный блок из карты памяти.
<spirit:addressBlock> <spirit:name>EXCLUDED_BANK</spirit:name> <spirit:baseAddress spirit:id="EXCLUDED_BANK_ADDR" spirit:resolve="user">0x00030000</spirit:baseAddress> <spirit:range>128</spirit:range> <spirit:width>64</spirit:width> <spirit:usage>register</spirit:usage> <spirit:register> <spirit:name>EXCLUDED_REG_2</spirit:name> <spirit:addressOffset>0x00</spirit:addressOffset> <spirit:size>64</spirit:size> <spirit:access>read-only</spirit:access> </spirit:register> <spirit:register> <spirit:name>EXCLUDED_REG_3</spirit:name> <spirit:addressOffset>0x08</spirit:addressOffset> <spirit:size>64</spirit:size> <spirit:access>read-only</spirit:access> </spirit:register> <spirit:parameters> <spirit:parameter> <spirit:name>MWMap</spirit:name> <spirit:value>false</spirit:value> </spirit:parameter> </spirit:parameters> </spirit:addressBlock>
Полный пример размещения в ОЗУ Simulink с компонентом TLM см. в Импортированном IP-XACT с картой памяти.
Можно сгенерировать незарегистрированную sc_signal
порт. Когда функция step выполняется, она читает текущее значение sc_in
порты, передает их все в функцию шага, выполняет функцию шага и записывает результат функции шага в sc_out
порты.
Чтобы добавить входные и выходные порты, укажите следующее в файле IP-XACT:
Укажите порт следующим <spirit:port>
типа <spirit:wire>
.
Задайте направление порта следующим <spirit:direction>
. Установите направление следующим in
, чтобы сгенерировать sc_in
порт. Установите направление на out
чтобы сгенерировать sc_out
порт.
По умолчанию тип данных порта совпадает с типом входных или выходных данных подсистемы. Можно опционально задать тип данных для порта, описав его в <spirit:wireTypeDef>
.
Чтобы определить отображение порта TLM входу или выходу Simulink, задайте пару "имя-значение" MWMapInput
или MWMapOutput
в пределах <spirit:vendorExtension> <spirit:parameters> <spirit:parameter>
тег.
Это изображение показывает пример отображению к портам.