Импортированный 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 из модели Simulink согласно файлу спецификации IP-XACT. В этом примере файл IP-XACT задает один сокет 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_ipxactmem.xml');

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

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

Представление архитектуры этого файла IP-XACT и соответствующей модели Simulink показано ниже. Этот IP-XACT содержит компонент DualFilter, который имеет два порта (LPF_input и LPHPF_input), два выходных порта (LPF_output и LPHPF_output) и один интерфейс шины (PROCESSOR_BUS). Эти входные и выходные порты сопоставлены с входами и выходами модели DualFilter, соответственно. Интерфейс шины (PROCESSOR_BUS) содержит карту памяти (DualFilter_MEM_MAP). Внутри карты памяти находятся три адресных блока (LP_FILTER_BANK, LPHP_FILTER_BANK и EXCLUDED_BANK). LP_FILTER_BANK содержит регистры, которые преобразуются в параметры коэффициента фильтра НД в модели Simulink. LPHP_FILTER_BANK содержит регистры, которые сопоставлены с коэффициентом LPHP-фильтра, входами в модели Simulink. EXCLUDED_BANK - дополнительный банк регистров, который не имеет соответствующего представления в модели Simulink.

Этот раздел (MWMapInput) указывает, что входная LPF_input модели Simulink сопоставлена с компонентом TLM в LPF_input портов.

Аналогично, этот раздел (MWMapOutput) указывает, что выходная LPF_output модели Simulink сопоставлена с выходным портом компонента TLM LPF_output.

В этом разделе (MWMap) указывается, что PROCESSOR_BUS интерфейса шины сопоставлена с разъемом TLM. Этот интерфейс шины содержит карту памяти с именем DualFilter_MEM_MAP.

Этот раздел (MWMapParam) представляет отображению параметра LP, LPF_coef_1 для регистрации LPF_COEF_1.

Этот раздел (MWMapInput) представляет входной параметр LPHP coef_1 отображения для регистрации LPHPF_COEF_1.

Если вы не хотите генерировать код для определенного адресного блока или зарегистрироваться из карты памяти, установите MWMap равным false для адресного блока или регистра. В этом разделе (MWMap) показано, как исключить адресный блок с именем EXCLUDED_BANK из генерации кода TLM

Точно так же в этом разделе (MWMap) показано, как исключить регистр с именем EXCLUDED_REG_1 из генерации кода TLM

4. Установите опции параметра конфигурации

Чтобы сконфигурировать эту модель для генерации TLM, установите следующие опции в параметрах конфигурации.

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

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

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

d. (Необязательно) Если вы хотите сгенерировать код для регистров/битовых полей, которые не имеют соответствующего представления в модели Simulink, в разделе Импорт файла IP-XACT выберите Сгенерировать код для несопоставленных регистров/битовых полей IP-XACT.

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

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

  >> slbuild('tlmgdemo_ipxactmem/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 9.3185s

Представление архитектуры сгенерированного компонента TLM показано ниже:

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

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

DualFilter_VP/DualFilter_ipxactmem_tlm/include/DualFilter_ipxactmem_tlm.h

Этот раздел представляет отображению входов и выходов конечной импульсной характеристики фильтра к сгенерированному компоненту TLM в и вне портов, соответственно.

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

DualFilter_VP/DualFilter_ipxactmem_tlm/include/DualFilter_ipxactmem_tlm_def.h

В этом разделе показана адресная карта регистров фильтра LP и коэффициентов LPHP, как указано в файле IP-XACT.

Чтобы изменить сгенерированные LPF_COEF_1 регистров TLM, инициатор TLM должен отправить транзакцию TLM по адресу LP_FILTER_BANK_ADDR + LPF_COEF_1_ADDR.

7. Заключение

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

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