В этом примере показано, как сопоставить постоянные массивы с ОЗУ с помощью MapPersistentVarsToRAM параметр уровня блока. Размер ОЗУ должен быть больше или равен RAMMappingThreshold. Отчет о ресурсах показывает разницу в улучшениях области в результате сопоставления ОЗУ.
Открытие модели hdlcoder_ram_mapping_matlab_function.
open_system('hdlcoder_ram_mapping_matlab_function') set_param('hdlcoder_ram_mapping_matlab_function', 'SimulationCommand', 'Update')

Подсистема DUT в модели управляет Line Buffer Функциональный блок MATLAB.
open_system('hdlcoder_ram_mapping_matlab_function/HDL_DUT')

Для просмотра реализации кода MATLAB ® буфера строк откройте функциональный блок MATLAB.
open_system('hdlcoder_ram_mapping_matlab_function/HDL_DUT/Line Buffer')

1. Разрешить создание отчета об использовании ресурсов. В отчете отображается количество сумматоров, вычитателей, множителей, регистров и RAM, потребляемых конструкцией.
hdlset_param('hdlcoder_ram_mapping_matlab_function', 'resourcereport', 'on')
2. Создание кода HDL для HDL_DUT Подсистема.
makehdl('hdlcoder_ram_mapping_matlab_function/HDL_DUT')
HDL Coder™ отображает отчет о создании кода. В отчете выберите раздел Отчет о ресурсах высокого уровня. 81 регистры и 648 1-битные регистры. По умолчанию MapPersistentVarsToRAM свойство отключено, и генератор кода не выводит и не использует ресурсы ОЗУ.

1. Включить MapPersistentVarsToRAM Параметр HDL в функциональном блоке MATLAB.
ml_subsys = 'hdlcoder_ram_mapping_matlab_function/HDL_DUT/Line Buffer'; hdlset_param(ml_subsys, 'MapPersistentVarsToRAM', 'on')
2. Создание кода HDL для HDL_DUT Подсистема.
makehdl('hdlcoder_ram_mapping_matlab_function/HDL_DUT')
В окне Отчет о создании кода выберите раздел Отчет о высокоуровневых ресурсах. Конструкция потребляет один регистр, восемь 1-разрядных регистров и один ОЗУ. Количество выводимых RAM зависит от RAMMappingThreshold , который вы указываете. См. раздел Параметры сопоставления ОЗУ.

MATLAB Datapath архитектура рассматривает функциональный блок MATLAB как обычную подсистему. Архитектура преобразует код MATLAB, написанный пользователем, в представление потока данных в Simulink ®. Затем кодер HDL может более широко использовать оптимизации в функциональном блоке MATLAB с другими блоками Simulink в модели.
1. Включить MATLAB Datapath Архитектура HDL и затем установка MapPersistentVarsToRAM в функциональном блоке MATLAB.
hdlset_param(ml_subsys, 'Architecture', 'MATLAB Datapath') hdlset_param(ml_subsys, 'MapPersistentVarsToRAM', 'on')
2. Создание кода HDL для HDL_DUT Подсистема.
makehdl('hdlcoder_ram_mapping_matlab_function/HDL_DUT')
Отчет о высокоуровневых ресурсах указывает, что конструкция потребляет то же количество ресурсов, что и конструкция, использующая архитектуру по умолчанию блока функции MATLAB. Посмотреть, как MATLAB Datapath архитектура изменяет код MATLAB на представление потока данных Simulink, открывает созданную модель gm_hdlcoder_ram_mapping_matlab_function и перейдите к HDL_DUT Подсистема. Существует Line Buffer Подсистема вместо функционального блока MATLAB. Внутри блока «Подсистема» находится представление потока данных, отображающее блок ОЗУ.

Сведения о шаблонах проектирования, обеспечивающих эффективное отображение RAM постоянных массивов в функциональных блоках MATLAB, см. в разделе eml_hdl_design_patterns/RAMs библиотека.