В этом примере показано, как сопоставить персистентные массивы с RAM при помощи MapPersistentVarsToRAM параметр блочного уровня. Размер RAM должен быть больше или быть равен RAMMappingThreshold. Отчет ресурса показывает различие в улучшениях области, следующих из отображения RAM.
Откройте модель 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. Включите генерацию отчета использования ресурса. Отчет отображает количество сумматоров, вычитающих устройств, множителей, регистров и RAM, которые использует проект.
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.The, проект использует 81 регистры и 648 1-битные регистры. По умолчанию, MapPersistentVarsToRAM свойство отключено, и генератор кода не выводит или использует ресурсы RAM.

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')
В Отчете Генерации кода выберите раздел High-Level Resource Report. Проект использует один регистр, восемь 1-битных регистров и один RAM. Количество выведенных RAM зависит от RAMMappingThreshold то, что вы задаете. Смотрите, что RAM сопоставляет порог (биты).

MATLAB Datapath архитектура обрабатывает блок MATLAB function как регулярная Подсистема. Архитектура преобразует код MATLAB, который вы записали в представление потока данных в 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, откройте сгенерированную модель gm_hdlcoder_ram_mapping_matlab_function и перейдите к HDL_DUT Подсистема. Существует Line Buffer Подсистема вместо блока MATLAB function. В блоке Subsystem представление потока данных, которое отображает выведенный блок RAM.

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