exponenta event banner

Импортированная карта 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 FIR-фильтра в качестве основы для генерации SystemC/TLM.

Требования к выполнению этого примера:

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

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

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

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

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

2. Открыть файл IP-XACT

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

  >> open('tlmgdemo_ipxactnomem.xml');

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

3. Проверка файла IP-XACT

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

Аналогично, следующие строки кода (MWMapParam) представляют сопоставление параметров фильтра FIR на сокете TLM конфигурации.

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

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

b. На вкладке Сопоставление TLM в разделе Сопоставление сокетов выберите Определено импортированным файлом IP-XACT.

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

5. Задать другие параметры

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

6. Построение модели

В окне модели щелкните правой кнопкой мыши блок «Фильтр» и выберите «C/C + + Code > Generate Code for this Subsystem». Эта опция запускает генерацию компонента 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 найдите следующие строки кода. Эти строки представляют входные и выходные определения фильтра FIR при формировании в качестве компонента 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.