В этом примере показано создание кода HDL из конструкции MATLAB ® с фиксированной точкой, готовой к созданию кода.
Код MATLAB, используемый в примере, представляет собой реализацию декодера витерби, смоделированного с использованием конструкций с фиксированной точкой.
design_name = 'mlhdlc_viterbi'; testbench_name = 'mlhdlc_viterbi_tb';
Проектирование MATLAB: mlhdlc_viterbi
MATLAB testbench: mlhdlc_viterbi_tb
Откройте mlhdlc_viterbi конструкторской функции, щелкнув ссылку выше, чтобы увидеть использование функций Fixed-Point Designer:
использование «fi», «numerictype» и «fimath» для моделирования типов данных с фиксированной точкой
использование «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);
coder -hdlcoder -new fixpt_codegen
Затем добавьте файл «mlhdlc _ viterbi.m» в проект в качестве функции MATLAB и «mlhdlc _ viterbi _ tb.m» в качестве испытательного стенда MATLAB.
Для получения более полного руководства по созданию и заполнению проектов кодера MATLAB HDL см. раздел Начало работы с MATLAB в Workflow-процессе HDL.
Запустите HDL Advisor и выберите «Сохранить исходные типы» для параметра «Преобразование фиксированных точек:».

Шаг, связанный с преобразованием с плавающей точкой в фиксированную, удаляется из дерева рабочего процесса при пропуске преобразования.
Если конструкция имеет плавающую точку, следуйте инструкциям в разделе Преобразование плавающей точки в фиксированную точку и преобразуйте конструкцию в фиксированную точку перед переходом к шагам создания кода 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');