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

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

Требования

Инструменты, необходимые для этого примера:

  • Signal Processing Toolbox

  • Программное обеспечение для проекта ПЛИС

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

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

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

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

Обнаружение ребра Собеля

Этот пример основан на модели, используемой в примере «Sobel Edge Detection Using the Блок MATLAB Function» в HDL Coder.

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

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

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

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

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

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

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

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

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

filWizard;

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

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

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 генерирует все необходимые файлы для симуляции цикл и выполняет следующие действия:

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

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

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

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

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

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

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

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

4. Установите значение выхода формата кадра на 20000.

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

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

Результаты

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

tic;
sim(your_model_name);
toc

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