Импортированный 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. Открытая предварительно сконфигурированная модель

Чтобы открыть модель FIR Filter с импортированным IPXact (без карты распределения памяти), нажмите кнопку Open Model.

Следующая модель открывается в 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

a. В диалоговом окне Configuration Parameters выберите представление TLM Generator в левой панели.

b. Во вкладке TLM Mapping, при Отображении Сокета, выбирают Defined импортированным файлом IP-XACT.

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

5. Установите другие опции

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

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

В окне модели щелкните правой кнопкой по блоку DualFilter и выберите C/C ++ Code> 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.9726s

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.