exponenta event banner

Работа с кодом фиксированной точки

В этом примере показано создание кода HDL из конструкции MATLAB ® с фиксированной точкой, готовой к созданию кода.

Введение

Код MATLAB, используемый в примере, представляет собой реализацию декодера витерби, смоделированного с использованием конструкций с фиксированной точкой.

design_name = 'mlhdlc_viterbi';
testbench_name = 'mlhdlc_viterbi_tb';
  1. Проектирование MATLAB: mlhdlc_viterbi

  2. MATLAB testbench: mlhdlc_viterbi_tb

Откройте mlhdlc_viterbi конструкторской функции, щелкнув ссылку выше, чтобы увидеть использование функций Fixed-Point Designer:

  1. использование «fi», «numerictype» и «fimath» для моделирования типов данных с фиксированной точкой

  2. использование «bitget», «bitsliceget», «bitconcat» для моделирования битовых операций

Создание новой папки и копирование соответствующих файлов

Выполните следующие строки кода, чтобы скопировать необходимые файлы примеров во временную папку.

mlhdlc_demo_dir = fullfile(matlabroot, 'toolbox', 'hdlcoder', 'hdlcoderdemos', 'matlabhdlcoderdemos');
mlhdlc_temp_dir = [tempdir 'mlhdlc_fixpt_design'];

% create a temporary folder and copy the MATLAB files
cd(tempdir);
[~, ~, ~] = rmdir(mlhdlc_temp_dir, 's');
mkdir(mlhdlc_temp_dir);
cd(mlhdlc_temp_dir);

copyfile(fullfile(mlhdlc_demo_dir, [design_name,'.m*']), mlhdlc_temp_dir);
copyfile(fullfile(mlhdlc_demo_dir, [testbench_name,'.m*']), mlhdlc_temp_dir);

Создание нового проекта HDL Coder™

coder -hdlcoder -new fixpt_codegen

Затем добавьте файл «mlhdlc _ viterbi.m» в проект в качестве функции MATLAB и «mlhdlc _ viterbi _ tb.m» в качестве испытательного стенда MATLAB.

Для получения более полного руководства по созданию и заполнению проектов кодера MATLAB HDL см. раздел Начало работы с MATLAB в Workflow-процессе HDL.

Пропустить преобразование с фиксированной точкой

Запустите HDL Advisor и выберите «Сохранить исходные типы» для параметра «Преобразование фиксированных точек:».

Шаг, связанный с преобразованием с плавающей точкой в фиксированную, удаляется из дерева рабочего процесса при пропуске преобразования.

Если конструкция имеет плавающую точку, следуйте инструкциям в разделе Преобразование плавающей точки в фиксированную точку и преобразуйте конструкцию в фиксированную точку перед переходом к шагам создания кода HDL.

Запуск генерации кода HDL

Щелкните правой кнопкой мыши на шаге «Code Generation» (Создание кода) и выберите опцию «Run this task» (Выполнить эту задачу) для непосредственного выполнения всех шагов создания кода.

Проверьте созданный код HDL, щелкнув гиперссылки в окне Журнал генерации кода.

Попробуйте дополнительные параметры создания кода

Поскольку это большая конструкция со значительным количеством функций, вы можете попробовать опцию «Генерировать код экземпляра для функций» на вкладке «Дополнительно».

Повторно проверьте созданный код HDL и сравните его с предыдущим шагом.

Очистка созданных файлов

Для очистки временной папки проекта можно выполнить следующие команды.

mlhdlc_demo_dir = fullfile(matlabroot, 'toolbox', 'hdlcoder', 'hdlcoderdemos', 'matlabhdlcoderdemos');
mlhdlc_temp_dir = [tempdir 'mlhdlc_fixpt_design'];
clear mex;
cd (mlhdlc_demo_dir);
rmdir(mlhdlc_temp_dir, 's');