Для настройки интерфейса 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>MathWorks</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 ®, все интерфейсы шины, содержащие сопоставление 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. Применяются следующие разрешения:
Входные регистры - только запись или чтение-запись
Выходные регистры - только для чтения или для чтения и записи
Регистр параметров - только для чтения, только для записи или для чтения и записи, в зависимости от ваших требований
Сделайте размер каждого регистра в битах больше или равным размеру этого входа, выхода или параметра 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 порт. При выполнении пошаговой функции считывается текущее значение sc_in порты, передает их все в функцию step, выполняет функцию step и записывает результат функции step в 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> тег.
На этом рисунке показан пример сопоставления с портами.
