В этом примере показано, как генерировать код HDL из конструкции MATLAB, реализующей алгоритм обнаружения краев Собеля.
Выполните следующий код для настройки конструкции:
design_name = 'mlhdlc_sobel.m'; testbench_name = 'mlhdlc_sobel_tb.m'; mlhdlc_demo_dir = fullfile(matlabroot, 'toolbox', 'hdlcoder', 'hdlcoderdemos', 'matlabhdlcoderdemos'); mlhdlc_temp_dir = [tempdir 'mlhdlc_sobel']; % create a temporary folder and copy the MATLAB files cd(tempdir); [~, ~, ~] = rmdir(mlhdlc_temp_dir, 's'); mkdir(mlhdlc_temp_dir); cd(mlhdlc_temp_dir); % copy the design files to the temporary directory copyfile(fullfile(mlhdlc_demo_dir, design_name), mlhdlc_temp_dir); copyfile(fullfile(mlhdlc_demo_dir, testbench_name), mlhdlc_temp_dir); copyfile(fullfile(mlhdlc_demo_dir, 'mlhdlc_img_stop_sign.gif'), mlhdlc_temp_dir);
Рекомендуется моделировать конструкцию с помощью средств тестирования до создания кода, чтобы убедиться в отсутствии ошибок во время выполнения.
mlhdlc_sobel_tb;

Выполните следующую команду для создания проекта создания кода HDL.
coder -hdlcoder -new cosim_fil_sobel
Перетащите файл «mlhdlc_sobel.m» из браузера текущих папок на вкладку «Точки входа» пользовательского интерфейса кодера HDL в разделе «Функция MATLAB».
В новом файле «mlhdlc_sobel_tb.m» укажите тип данных входного аргумента «data_in» как «double (1 x 1)»
Перетащите файл «mlhdlc _ sobel _ tb.m» в пользовательский интерфейс кодера HDL в разделе «MATLAB Test Stench».

Щелкните «Помощник по рабочим процессам».
Щелкните правой кнопкой мыши на шаге «Создание кода» в консультанте по процессам.
Выберите опцию «Run to selected task» для выполнения всех шагов от начала рабочего процесса до создания кода HDL.
Для выполнения этого шага необходимо иметь один из имитаторов ЛПВП, поддерживаемых программой проверки ЛПВП. См. раздел {Поддерживаемые инструменты EDA}. Этот шаг можно пропустить, если нет.
1. Выберите опцию «Generate cosimulation test stech» (Создать стенд для испытания косимуляции).
2. Выберите опцию «Log outputs for comparison plots». Эта опция генерирует график вывода имитатора ЛПВП, вывода эталонного алгоритма MATLAB и различия между ними.
3. В поле «Cosimulate for use with:» выберите симулятор HDL. Исполняемый файл имитатора HDL должен находиться в системном пути.
4. Для просмотра формы сигнала в имитаторе ЛПВП выберите режим «GUI» в списке «Режим работы имитатора ЛПВП в косимуляции».
5. Выберите «Simulate generated cosimulation test stech» (Смоделировать созданный стенд косимуляции).
6. Нажмите «Выполнить».
По завершении моделирования проверьте графики сравнения. Не должно быть рассогласования между выходом имитатора ЛПВП и выходом эталонного алгоритма MATLAB.

Для выполнения этого шага необходимо иметь одну из поддерживаемых плат FPGA (см. раздел {Поддерживаемые инструменты EDA}). Дополнительные инструкции по настройке, необходимые для FPGA-in-the-Loop, см. здесь.
На шаге «Verify with FPGA-in-the-Loop» выполните следующие шаги:
1. Выберите опцию «Generate FPGA-in-the-Loop test stech» (Генерировать стенд FPGA-в-контуре).
2. Выберите опцию «Log outputs for comparison plots». Эта опция создает график вывода FPGA, опорный вывод алгоритма MATLAB и различия между ними.
3. Выберите плату FPGA из списка «Cosimulate for use with:». Если плата отсутствует в списке, выберите одну из следующих опций:
«Получить дополнительные платы»... для загрузки пакетов поддержки плат FPGA (этот параметр запускает программу установки пакетов поддержки)
«Create custom board»... для создания файла определения платы FPGA для конкретной платы FPGA (эта опция запускает команду New FPGA Board Manager).
4. Только подключение Ethernet: введите информацию о подключении Ethernet в поля «Board IP Address» и «Board MAC Address:». Оставьте поле «Дополнительные файлы» пустым.
5. Выберите «Simulate generated FPGA-in-the-Loop test stech» (Имитировать сформированный стенд FPGA-в-контуре).
6. Нажмите «Выполнить».
По завершении моделирования проверьте графики сравнения. Не должно быть рассогласования между выходом FPGA и выходом эталонного алгоритма MATLAB.

На этом алгоритм проверки обнаружения краев Sobel завершается в примере рабочего процесса MATLAB-HDL.