Импортированный IP-XACT без карты памяти

В этом примере показано, как использовать импортированную спецификацию IP-XACT без карты памяти, когда вы генерируете компонент SystemC™/TLM из модели Simulink ® с целевым объектом tlmgenerator. Можно использовать цель tlmgenerator для Simulink Coder или Embedded Coder™.

В Simulink каждый вход или выход блока связан точкой-точкой с другим блоком. В SystemC/TLM каждый компонент взаимодействует через разъем TLM. Этот сокет обрабатывает все входящие и исходящие сообщения, форматированные в транзакциях TLM. Поскольку каждая система обрабатывает коммуникацию по-разному, необходимо задать коммуникационный интерфейс для компонента SystemC/TLM, когда он генерируется из модели Simulink. В зависимости от предполагаемого использования этого компонента SystemC/TLM, этот коммуникационный интерфейс может потребовать создания карты памяти (или адреса) для каждого ввода/вывода в компоненте. Эта карта памяти может быть простой, подробной или импортированной из файла спецификаций IP-XACT.

Опция импорта IP-XACT генерирует компонент TLM в соответствии с файлом спецификации IP-XACT. В этом конкретном примере файл IP-XACT задает один сокет tlm без карты памяти для входов/вывода модели Simulink и один сокет без карты памяти для настраиваемых параметров. Входы модели Simulink привязаны к уникальному регистру записи, а выходы привязаны к уникальному регистру чтения в первом сокете tlm. Настраиваемые параметры привязаны к уникальному регистру чтения/записи во втором сокете tlm. При создании с помощью этой опции сгенерированный компонент TLM может использоваться в виртуальной платформе (VP) как автономный компонент в испытательный стенд или как прямая связанная совместная обработка модуля, или может быть присоединен к каналу связи с помощью адаптера.

В данном примере мы используем модель Simulink конечной импульсной характеристики в качестве базиса для генерации SystemC/TLM.

Требования для запуска этого примера:

  • SystemC 2.3.1 (включает библиотеку TLM)

Примечание. Пример включает процедуру генерации кода. Simulink не позволяет вам создавать программы в области установки MATLAB ®. При необходимости перед началом сборки перейдите в рабочую директорию, которая отсутствует в области установки MATLAB.

1. Откройте предварительно сконфигурированную модель

Чтобы открыть модель конечной импульсной характеристики с импортированным IPXact (без карты памяти), нажмите кнопку «Открыть модель».

Следующая модель откроется в Simulink.

2. Откройте файл IP-XACT

Откройте файл IP-XACT, используемый в этом примере, в редакторе MATLAB. Также выполните следующую команду в командном окне MATLAB:

  >> open('tlmgdemo_ipxactnomem.xml');

Файл IP-XACT откроется в редакторе MATLAB.

3. Исследуйте файл IP-XACT

С помощью РЕДАКТОРА MATLAB найдите следующие строки кода (MWMapInput, MWMapOutput). Эти линии представляют входу фильтра конечной импульсной характеристики и выходное сопоставление на сокете Inout TLM (представлено интерфейсом шины в IPXact).

Точно так же следующие строки кода (MWMapParam) представляют отображение параметров конечной импульсной характеристики на разъеме Config TLM.

4. Установите опцию, заданный импортированным файлом IP-XACT

а. В диалоговом окне Параметров конфигурации выберите вид генератора TLM в левой панели.

б. На вкладке TLM Mapping, в разделе Socket Mapping, выберите Defined by imported IP-XACT file.

c. В разделе Импорт файла IP-XACT выберите местоположение файла IP-XACT, как показано на следующем изображении.

5. Задать другие опции

Установите оставшиеся опции генерации TLM в соответствии с вашими настройками (или оставьте значения по умолчанию такими, какие они есть) и нажмите OK, чтобы применить эти настройки и выйти из диалогового окна Параметров конфигурации.

6. Создайте модель

В окне модели щелкните правой кнопкой мыши по блоку DualFilter и выберите C/C + + код > Generate Code для этой Подсистемы. Эта опция запускает генерацию компонентов TLM. Также можно выполнить следующую команду в командном окне MATLAB:

  >> slbuild('tlmgdemo_ipxactnomem/DualFilter');

Генерация TLM завершается, когда в командном окне MATLAB появляется следующее сообщение:

### Starting Simulink Coder build procedure for model: DualFilter
### Successful completion of Simulink Coder build procedure for model: DualFilter

Build Summary

Top model targets built:

Model       Action          Rebuild Reason                                    
==============================================================================
DualFilter  Code generated  Code generation information file does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 8.0632s

7. Открыть сгенерированные файлы

Откройте следующий файл в редакторе MATLAB:

DualFilter_VP/DualFilter_ipxactnomem_tlm/include/DualFilter_ipxactnomem_tlm_def.h

8. Исследуйте сгенерированный код

Используя РЕДАКТОР MATLAB, найдите следующие строки кода. Эти линии представляют входные и выходные определения конечной импульсной характеристики при генерации в виде компонента TLM без карты памяти.

Чтобы предоставить набор входов сгенерированному компоненту TLM, инициатор TLM должен отправить транзакцию записи TLM без адреса в сокете InOut и с полезной нагрузкой, содержащей данную величину InOut_IN_BANK_T типа.

Чтобы получить набор выходов из сгенерированного компонента TLM, инициатор TLM должен отправить считанную транзакцию TLM без адреса в сокете InOut и с полезной нагрузкой, содержащей данную величину InOut_OUT_BANK_T типа.

Чтобы изменить сгенерированные настраиваемые параметры компонентов TLM, инициатор TLM должен отправить транзакцию записи TLM без адреса в сокете Config и с полезной нагрузкой, содержащей данную величину DualFilter_Config_PARAM_BANK_T типа.

Для просмотра документации необходимо авторизоваться на сайте