В этом примере показано, как сопоставить постоянные массивы с ОЗУ с помощью 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 function.
open_system('hdlcoder_ram_mapping_matlab_function/HDL_DUT')

Чтобы увидеть реализацию кода MATLAB ® линейного буфера, откройте блок MATLAB Function.
open_system('hdlcoder_ram_mapping_matlab_function/HDL_DUT/Line Buffer')

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

1. Включите MapPersistentVarsToRAM HDL- параметра на блоке MATLAB Function.
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-битных регистров и одну ОЗУ. Количество выводимых ОЗУ зависит от RAMMappingThreshold который вы задаете. См. Раздел «Параметры отображения ОЗУ»

The MATLAB Datapath архитектура обрабатывает блок MATLAB Function как регулярную Подсистему. Архитектура преобразует код MATLAB, который вы написали, в представление dataflow в Simulink ®. HDL Coder может затем более широко использовать оптимизацию через блок MATLAB Function с другими блоками Simulink в вашей модели.
1. Включите MATLAB Datapath Архитектура HDL, а затем установите MapPersistentVarsToRAM параметр на блоке MATLAB Function.
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 Function. Чтобы увидеть, как MATLAB Datapath архитектура изменяет код MATLAB на представление Simulink dataflow, открывая сгенерированную модель gm_hdlcoder_ram_mapping_matlab_function и перейдите к HDL_DUT Подсистема. Существует Line Buffer Подсистема вместо блока MATLAB Function. Внутри блока Subsystem находится представление dataflow, которое отображает вывод блока оперативной памяти.

Чтобы узнать о шаблонах проектирования, которые позволяют эффективно отображать ОЗУ постоянных массивов в блоках MATLAB Function, смотрите eml_hdl_design_patterns/RAMs библиотека.