Основная генерация HDL-кода с советником по вопросам рабочего процесса

В этом примере показано, как работать с проектами MATLAB® HDL Coder™ сгенерировать HDL из проектов MATLAB.

Введение

Этот пример помогает вам ознакомить себя со следующими аспектами генерации HDL-кода:

  1. Генерация HDL-кода из проекта MATLAB.

  2. Генерация испытательного стенда HDL от испытательного стенда MATLAB.

  3. Проверка сгенерированного HDL-кода с помощью симулятора HDL.

  4. Синтезирование сгенерированного HDL-кода с помощью инструмента синтеза HDL.

Проект MATLAB

Код MATLAB, используемый в этом примере, реализует простой симметричный КИХ-фильтр. Этот пример также показывает испытательный стенд MATLAB, который осуществляет фильтр.

design_name = 'mlhdlc_sfir';
testbench_name = 'mlhdlc_sfir_tb';
  1. Проект MATLAB: mlhdlc_sfir

  2. Испытательный стенд MATLAB: mlhdlc_sfir_tb

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

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

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

% 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);

Симулируйте проект

Симулируйте проект с испытательным стендом до генерации кода, чтобы убедиться, что нет никаких ошибок периода выполнения.

mlhdlc_sfir_tb

Создайте новый проект HDL Coder

Чтобы создать новый проект, введите следующую команду:

coder -hdlcoder -new mlhdlc_sfir

Затем добавьте файл 'mlhdlc_sfir.m' в проект как функция MATLAB и 'mlhdlc_sfir_tb.m' как Испытательный стенд MATLAB.

Можно обратиться к Началу работы с MATLAB к примеру по Рабочему процессу HDL для более полного введения в создание и заполнение проектов HDL Coder.

Шаг 1: сгенерируйте фиксированную точку код MATLAB

Щелкните правой кнопкой по 'Float-to-Fixed Workflow', продвигаются и выбирают, опция 'Запускают эту задачу', чтобы запустить все шаги, чтобы сгенерировать фиксированную точку код MATLAB.

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

Для получения дополнительной информации о преобразовании фиксированной точки обратитесь к примеру по Преобразованию из плавающей запятой в фиксированную запятую.

Шаг 2: сгенерируйте HDL-код

Этот шаг генерирует код Verilog от сгенерированной фиксированной точки проект MATLAB и испытательный стенд Verilog от обертки испытательного стенда MATLAB.

Установить опции генерации кода и сгенерировать HDL-код:

  1. Нажмите шаг 'Code Generation', чтобы просмотреть панель опций генерации HDL-кода.

  2. Во вкладке Target выберите 'Verilog' в качестве опции 'Языка'.

  3. Выберите опции 'Generate HDL test bench' и 'Generate HDL'.

  4. Во вкладке 'Optimizations' выберите '1' как конвейерная длина Ввода и вывода и включите, 'Распределяют конвейерную опцию' регистров.

  5. Во вкладке 'Coding style' выберите 'Include MATLAB source code as comments' и 'Generate report', чтобы сгенерировать отчет генерации кода со ссылками трассируемости и комментариями.

  6. Нажмите кнопку 'Run', чтобы сгенерировать и проект Verilog и испытательный стенд с отчетами.

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

Шаг 3: симулируйте сгенерированный код

На шаге 'верификации HDL-кода' выберите 'Verify with HDL Test Bench', подпродвигаются и выбирают опцию 'Multi-file test bench' в 'подзакладке' Опций Испытательного стенда. Эта опция помогает сгенерировать код испытательного стенда HDL и данные об испытательном стенде (стимул и ответ) в отдельных файлах.

HDL Coder автоматизирует процесс генерации испытательного стенда HDL и выполнения сгенерированного испытательного стенда HDL с помощью ModelSim® или средства моделирования ISIM™, и сообщает, совпадает ли сгенерированная симуляция HDL с численными данными и задержкой относительно фиксированной точки симуляция MATLAB.

Шаг 4: синтезируйте сгенерированный код

HDL Coder также создает Xilinx® ISE™ или проект Altera® Quartus™ с выбранными опциями и запускает выбранный логический синтез и шаги места-и-маршрута для сгенерированного HDL-кода.

Исследуйте логарифмическое окно, чтобы просмотреть результаты шагов синтеза.

Очистите Сгенерированные Файлы

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

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