Верификация алгоритма с исходным блоком FIL

В этом примере показано, как проверить, что HDL проектирует быстро и эффективно использование FPGA в цикле (FIL). Испытательный стенд синтезируется вместе с Проектом под тестом (DUT), результат загружается на плату FPGA, и тест запущен с FIL. Используя FIL для этого процесса включает скоростную генерацию и обработку тестового стимула, результатами, возвращенными к Simulink для анализа. В этом примере показано, как эти задачи выполняются для варианта использования обработки изображений.

Требования

Продукты потребовали для этого примера:

  • MATLAB

  • Simulink

  • HDL Verifier

  • Fixed-Point Designer

  • Signal Processing Toolbox

  • DSP System Toolbox

  • Computer Vision System Toolbox

  • (Дополнительный) HDL Coder

  • Программное обеспечение проекта FPGA

  • Одна из поддерживаемых макетных плат FPGA и аксессуаров (плата ML403 не поддержана для этого примера),

  • Для связи с помощью Ethernet: Гигабитный Адаптер Ethernet установил на хосте - компьютере, Гигабитный Ethernet перекрестно соединяют кабель

  • Для связи с помощью JTAG: Бластер USB I или II кабелей и драйвер для плат FPGA Intel. Кабель Digilent® JTAG и драйвер для плат FPGA Xilinx.

  • Для связи с помощью PCI Express®: плата FPGA установлена в паз PCI Express хоста - компьютера.

Обнаружение ребра Sobel

Этот пример полагается на модель, используемую в "Обнаружении Ребра Sobel Используя блок MATLAB function" пример в HDL Coder. См. Обнаружение Ребра Sobel для получения дополнительной информации о генерации HDL-кода.

sobel_edge_hardware подсистема является алгоритмом, который будет синтезироваться в FPGA. Стимул является gif файлом, содержащим изображение (знак Стоп). В этом примере изображение перемещено в FPGA наряду с алгоритмом, блок FIL создается для того проекта FPGA.

Шаги, сделанные, чтобы реализовать этот метод, проиллюстрированы в модели fil_sobel_model. В этой модели gif файл содержится в интерполяционной таблице, и счетчик используется, чтобы отсканировать через линии в изображении и отправить их в алгоритм. Блок FIL добавляется к модели параллельно с поведенческими блоками, чтобы позволить непосредственно проверять выходные параметры FPGA против поведенческой модели как простой пример анализа результатов.

open_system('fil_sobel_model');

Сгенерируйте HDL-код

Если у вас есть HDL Coder, можно сгенерировать код для подсистемы "SobelEdge_FPGA" с помощью Советника Рабочего процесса HDL или Параметра конфигурации пользовательский интерфейс (см. документацию HDL Coder для получения дополнительной информации).

Если у вас нет HDL Coder, можно скопировать предварительно сгенерированные файлы HDL в текущий каталог с помощью этой команды:

>> copyFILDemoFiles ('sobel');

Настройте программное обеспечение проекта FPGA

Перед использованием FPGA в цикле убедитесь, что ваша системная среда настраивается правильно для доступа к программному обеспечению проекта FPGA. Можно использовать функцию hdlsetuptoolpath, чтобы добавить программное обеспечение проекта FPGA в системный путь для текущего сеанса работы с MATLAB.

Сконфигурируйте и создайте FPGA в цикле

Мастер FIL ведет вас в конфигурировании настроек, необходимых для создания FPGA в цикле. Запустите мастер со следующей командой:

>> filWizard;

1. В Аппаратных Опциях выберите макетную плату FPGA, соединенную с вашим хостом - компьютером. При необходимости можно также настроить IP Совета и Мак адрес под Расширенными настройками. Нажмите Далее, чтобы продолжиться.

2. В Исходных файлах добавьте следующие сгенерированные файлы HDL для проекта к таблице исходного файла с помощью Обзора.

SobelEdge_FPGA.vhd,
DualPortRAM_128x9b.vhd
DualPortRAM_128x9b_block.vhd
sobel_edge_eml.vhd
sobel_edge_hardware.vhd
SobelEdge_FPGA_pkg.vhd
u_d_ram.vhd
u_d_ram_block.vhd

Проверяйте флажок верхнего уровня рядом с SobelEdge_FPGA. Нажмите Далее, чтобы продолжиться.

3. В Портах ввода-вывода DUT информация порта ввода и вывода, таких как имя порта, направление, ширина и тип порта автоматически сгенерирована из файла HDL. Типы порта, такие как Часы и Данные, сгенерированы на основе имен порта; можно изменить выбор по мере необходимости. В данном примере сгенерированные типы порта правильны, и можно нажать Далее.

4. В Опциях Сборки задайте папку для выходных файлов FIL. Можно использовать значение по умолчанию в этом примере. Нажмите Build. Нажатие на Build заставляет Мастер FIL генерировать все необходимые файлы для FPGA в симуляции цикла и выполнять следующие действия:

  • Генерирует блок FIL в новой модели Simulink®

  • Открывает окно командной строки, чтобы скомпилировать проект FPGA и сгенерировать файл программирования FPGA

Процесс компиляции проекта FPGA занимает несколько минут. Когда процесс закончен, вам предлагают закрыть окно командной строки. Закройте это окно теперь.

Сконфигурируйте блок FIL

Чтобы подготовиться к FPGA в симуляции цикла, выполните шаги ниже, чтобы сконфигурировать блок FIL.

1. Откройте тестовую модель fil_sobel_model и скопируйте сгенерированный блок FIL в модель.

2. Дважды кликните блок FIL, чтобы открыть маску блока. Нажмите Load, чтобы программировать FPGA со сгенерированным файлом программирования.

3. В соответствии с Опциями Во время выполнения, фактором Разгона изменения к 1. Это указывает, что каждое входное значение производится однажды часами FPGA перед входным значением изменений.

4. Установите выходной формат кадра на 20 000.

5. На маске блока FIL нажмите на вкладку Signal Attributes. Измените тип данных для out1 к boolean совпадать с типом данных поведенческого блока Sobel.

5. Нажмите ОК, чтобы закрыть маску блока.

Результаты

Модель, предоставленная в этом примере, сравнит результаты, полученные из поведенческого блока с теми от FPGA. Можно запустить ту модель и наблюдать эквивалентность. Можно также наблюдать относительную производительность симуляции моделирования на поведенческом уровне и симуляции FIL путем создания новой модели, содержащей только поведенческий путь и другого содержащего только путь с блоком FIL. Запустите каждую из тех моделей отдельно с помощью:

>> tic; sim (your_model_name); toc

Вы видите, что FIL быстрее. Это увеличение скорости - то, потому что существует только один вызов функции FIL для 20 000 выборок, в то время как поведенческой модели нужны 20 000 вызовов функции обработать все данные. Поэтому вы получите лучшую производительность, если размер изображения будет больше. Этот шаг завершает этот пример.

Для просмотра документации необходимо авторизоваться на сайте