Отображение RAM с блоком MATLAB function

Этот пример показывает, как сопоставить персистентные массивы с RAM с помощью параметра блочного уровня MapPersistentVarsToRAM. Размер RAM должен быть больше, чем или равным RAMMappingThreshold. Отчет ресурса показывает различие в улучшениях области, следующих из Отображения RAM.

  1. В редакторе Simulink® создайте модель и откройте Браузер Библиотеки Simulink.

  2. Добавьте блок Inport, блок MATLAB function и блок Outport к вашей модели, и назовите их как показано в фигуре.

  3. Дважды кликните блок MATLAB function Line Buffer. В Редакторе MATLAB® скопируйте этот код MATLAB для функции line_buffer.

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % Line buffer: Uses a presistent array to store the image
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    function y = line_buffer(u)
    persistent u_d ctr;
    if isempty(u_d)
        u_d = uint8(zeros(1,80)); % You can map this to RAM
        ctr = uint8(1);
    end
    y = u_d(ctr);
    u_d(ctr) = u;
    if ctr == uint8(80)
        ctr = uint8(1);
    else
        ctr = ctr + 1;
    end
    end

  4. Чтобы использовать эту модель в качестве вашего проекта под тестом (DUT) для генерации HDL-кода, выберите все блоки и строки, и создайте подсистему. Сохраните свою модель как RAM_Mapping_Using_MATLAB_Function. По умолчанию отображение RAM отключено, когда MapPersistentVarsToRAM установлен в off.

  5. В Simulation> Model Configuration Parameters> панель HDL Code Generation, включите Generate resource utilization report и нажмите Apply.

  6. Нажмите Generate, чтобы сгенерировать HDL-код.

  7. В Отчете Генерации кода выберите High-level Resource Report.

    Проект использует 81 регистр, 648 1-битных Регистров и никакую RAM.

  8. Чтобы включить отображение RAM, щелкните правой кнопкой по блоку Line Buffer, выберите HDL Code> HDL Block Properties и установите MapPersistentVarsToRAM на on. Нажмите OK.

  9. В Simulation> Model Configuration Parameters> панель HDL Code Generation, нажмите Generate, чтобы сгенерировать HDL-код.

  10. В Отчете Генерации кода выберите High-level Resource Report.

    Проект теперь использует один регистр, восемь 1-битных регистров и один RAM.

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

Похожие темы