Проверьте реализацию HDL ПИД-регулятора Используя FPGA в цикле

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

Требования и предпосылки

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

  • MATLAB

  • Simulink

  • Fixed-Point Designer

  • HDL Verifier

  • Программное обеспечение проекта FPGA (комплект проекта Xilinx® ISE® или Xilinx® Vivado® разрабатывает комплект, или программное обеспечение проекта Intel® Quartus® II или программное обеспечение проекта Microsemi® Libero® SoC),

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

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

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

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

Предпосылки:

MATLAB® и программное обеспечение проекта FPGA могут или быть локально установлены на вашем компьютере или на сетевом доступном устройстве. Если вы будете использовать программное обеспечение от сети, то вам будет нужен второй сетевой адаптер, установленный в вашем компьютере, чтобы предоставить частную сеть макетной плате FPGA. Консультируйтесь с оборудованием и сетевыми руководствами для вашего компьютера, чтобы изучить, как установить сетевой адаптер.

Шаг 1: настройте макетную плату FPGA

Пропустите этот шаг и шаг 2, если вы используете связь PCI Express для симуляции. Если вы не настроили свою связь PCI Express, используйте программное обеспечение установки пакета поддержки, чтобы провести вас по настройке PCI Express.

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

  1. Убедитесь, что выключатель питания остается выключенным.

  2. Соедините провод мощности переменного тока с разъемом степени. Включите кабель адаптера источника питания в макетную плату FPGA.

  3. Соедините коннектор Ethernet на макетной плате FPGA непосредственно к адаптеру Ethernet на вашем использующем компьютеры перекрестный кабель Ethernet.

  4. Используйте кабель загрузки JTAG, чтобы соединить макетную плату FPGA с компьютером.

  5. Убедитесь, что все перемычки на макетной плате FPGA находятся в положении заводской настройки.

Шаг 2: настройте подключение платы хоста - компьютера

Пропустите этот шаг, если вы используете связь JTAG для симуляции. Для связи с Ethernet у вас должен быть Гигабитный сетевой адаптер Ethernet на вашем компьютере, чтобы запустить этот пример.

На Windows® 7 сделайте следующие шаги:

  1. Откройте панель управления.

  2. Введите сетевые подключения Представления в панели поиска. Выберите сетевые подключения View в результатах поиска.

  3. Щелкните правой кнопкой мыши по значку подключения на свою макетную плату FPGA и выберите Properties из всплывающего меню.

  4. При Этом использовании связи следующие элементы выберите Internet Protocol Version 4 (TCP/IPv4) и нажмите Properties.

  5. Выберите Use следующий IP address:. Установите IP-адрес на 192.168.0.1. Если этот адрес используется другим компьютером в вашей сети, измените его на любой доступный IP-адрес на этой подсети, такой как 192.168.0.100. Это - ваш адрес хоста - компьютера. Установите маску Подсети на 255.255.255.0. Ваши свойства TCP/IP должны теперь выглядеть одинаково как в следующей фигуре:

На Windows® Vista сделайте следующие шаги:

  1. Откройте панель управления.

  2. Нажмите Network и Sharing Center, и затем нажмите сетевые подключения Manage.

  3. Щелкните правой кнопкой мыши по значку подключения на свою макетную плату FPGA и выберите Properties из всплывающего меню.

  4. При Этом использовании связи следующие элементы выберите Internet Protocol Version 4 (TCP/IPv4) и нажмите Properties.

  5. Выберите Use следующий IP address:. Установите IP-адрес на 192.168.0.1. Если этот адрес используется другим компьютером в вашей сети, измените его на любой доступный IP-адрес на этой подсети, такой как 192.168.0.100. Это - ваш адрес хоста - компьютера. Установите маску Подсети на 255.255.255.0.

На Windows XP® сделайте следующие шаги:

  1. Откройте панель управления.

  2. Открытые Сетевые подключения.

  3. Щелкните правой кнопкой мыши по значку подключения на свою макетную плату FPGA и выберите Properties из всплывающего меню.

  4. При Этом использовании связи следующие элементы выберите Internet Protocol (TCP/IP) и нажмите Properties.

  5. Выберите Use следующий IP address:. Установите IP-адрес на 192.168.0.1. Если этот адрес используется другим компьютером в вашей сети, измените его на любой доступный IP-адрес на этой подсети, такой как 192.168.0.100. Это - ваш адрес хоста - компьютера. Установите маску Подсети на 255.255.255.0.

На Linux®:

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

% ifconfig eth1 192.168.0.1

В этом примере eth1 является вторым адаптером Ethernet на компьютере Linux. Проверяйте свою систему, чтобы определить, какой адаптер Ethernet соединяется с макетной платой FPGA. Вышеупомянутые наборы команд локальный IP-адрес к 192.168.0.1. Если этот адрес используется другим компьютером в вашей сети, измените его на любой доступный IP-адрес на этой подсети, такой как 192.168.0.100.

Шаг 3: подготовьте ресурсы в качестве примера

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

1. Создайте папку вне осциллографа вашей папки установки MATLAB, в которую можно скопировать файлы в качестве примера. Папка должна быть перезаписываема. Этот пример принимает, что папка расположена в C:\MyTests.

2. Запустите MATLAB и установите текущий каталог в MATLAB к папке, которую вы только создали. Например:

cd C:\MyTests

3. Введите следующую команду MATLAB:

copyFILDemoFiles('pid')

Эта команда создает sub папку.\pid_hdlsrc в вашей текущей папке и копирует все исходные файлы под matlabroot\toolbox\shared\eda\fil\fildemos\fil_pid в него. matlabroot является корневой папкой MATLAB в вашей системе. У вас теперь будут следующие файлы в C:\MyTests\pid_hdlsrc:

  • D_component.vhd

  • I_component.vhd

  • Controller.vhd

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

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

Для плат FPGA Xilinx, который использует программное обеспечение проекта ISE, выполнение:

hdlsetuptoolpath('ToolName', 'Xilinx ISE', 'ToolPath', 'C:\Xilinx\13.1\ISE_DS\ISE\bin\nt64\ise.exe');

Этот пример принимает, что исполняемый файл ISE Xilinx является C:\Xilinx\13.1\ISE_DS\ISE\bin\nt64\ise.exe. Займите место со своим фактическим исполняемым файлом, если это отличается.

Для плат FPGA Xilinx, который использует программное обеспечение проекта Vivado, выполнение:

hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath','C:\Xilinx\Vivado\2016.4\bin\vivado.bat');

Этот пример принимает, что исполняемый файл Xilinx Vivado является C:\Xilinx\Vivado\2016.4\bin\vivado.bat. Займите место со своим фактическим исполняемым файлом, если это отличается.

Для плат Intel, выполнения:

hdlsetuptoolpath('ToolName','Altera Quartus II','ToolPath','C:\altera\16.0\quartus\bin\quartus.exe');

Этот пример принимает, что исполняемый файл Куарта II Intel является C:\altera\16.0\quartus\bin\quartus.exe. Займите место со своим фактическим исполняемым файлом, если это отличается.

Для Микрополу плат, выполнения:

   hdlsetuptoolpath('ToolName', 'Microsemi Libero SoC', 'ToolPath', 'C:\Microsemi\Libero_SoC_v11.8\Designer\bin\libero.exe');

Этот пример принимает, что Микрополу Либеро исполняемый файл SoC является C:\Microsemi\Libero_SoC_v11.8\Designer\bin\libero.exe. Займите место со своим фактическим исполняемым файлом, если это отличается.

5. Откройте fil_pid.mdl модель.

Эта модель содержит ПИД-регулятор фиксированной точки, реализованный с основными блоками Simulink. Эта модель также содержит модель двигателя постоянного тока, которой управляет этот ПИД-регулятор, а также желаемая позиция двигателя постоянного тока входного стимула.

Запустите эту модель теперь и наблюдайте желаемые и фактические моторные положения в осциллографе.

Шаг 4: запустите FPGA в цикле (FIL) мастер

Запустите FPGA-in-the-Loop Wizard путем выполнения следующего:

Из меню Code в fil_pid окне модели выберите Verification Wizards-> FPGA в цикле (FIL)....

Также можно ввести filWizard команду в подсказке команды MATLAB.

filWizard

Шаг 5: задайте аппаратные опции в мастере FIL

Установите опции FIL для макетной платы FPGA.

1. Задайте, сгенерирует ли мастер блок Simulink FIL или Системный объект MATLAB FILSimulation. В данном примере выберите симуляцию Simulink for FIL с Simulink.

2. Для Имени Совета выберите макетную плату FPGA, соединенную с вашим хостом - компьютером. Если ваша плата не находится в списке, выберите одну из следующих опций:

  • "Заставьте больше плат..." загружать пакет (пакеты) поддержки плат FPGA (эта опция запускает Инсталлятор Пакета Поддержки).

  • "Создайте пользовательскую плату...", чтобы создать файл определения платы FPGA для вашей конкретной платы FPGA (эта опция запускает Нового менеджера Совета FPGA).

3. Выберите связь для симуляции. Доступные методы связи являются Ethernet и JTAG. Не все платы поддерживают оба метода связи.

4. Соединение Ethernet только: Если вы изменили IP-адрес своего компьютера на различную подсеть от 192.168.0.x, когда вы настраиваете сетевой адаптер, или если IP-адрес платы по умолчанию 192.168.0.2 используется другим устройством, расширьте Расширенные настройки и измените IP-адрес Совета согласно следующим инструкциям:

  • Адрес подсети, обычно первые три байта IP-адреса платы, должен совпасть с теми из IP-адреса хоста.

  • Последний байт IP-адреса платы должен отличаться от того из IP-адреса хоста.

  • IP-адрес платы не должен конфликтовать с IP-адресами других компьютеров.

Например, если IP-адрес хоста 192.168.8.2, то можно использовать 192.168.8.3, если это доступно. Не изменяйте Мак адрес Совета.

5. Дополнительный: Если требуется изменить частоту часов DUT от значения по умолчанию (25 МГц), можно расширить Расширенные настройки и изменить частоту системных часов FPGA (МГц).

6. Нажмите Далее, чтобы продолжиться.

Шаг 6: задайте файлы HDL в мастере FIL

Задайте проект HDL, который будет реализован в FPGA.

1. Нажмите Add и обзор к директории, в которой вы создали, Готовят Ресурсы В качестве примера.

2. Выберите эти файлы HDL:

  • Controller.vhd

  • D_component.vhd

  • I_component.vhd

Это файлы проекта HDL, которые будут проверены на плате FPGA. 3. В таблице Source Files проверяйте флажок на строке файла Controller.vhd, чтобы указать, что этот файл HDL содержит модуль HDL верхнего уровня.

Мастер FIL автоматически заполняет поле имени модуля Верхнего уровня с именем выбранного файла HDL; в этом случае, Контроллер. В этом примере имя модуля верхнего уровня совпадает с именем файла так, чтобы вы не должны были изменять его. Если бы имя модуля верхнего уровня и имя файла не соответствовали, вы вручную исправили бы имя модуля верхнего уровня в этом диалоговом окне.

Нажмите Далее, чтобы продолжиться.

Шаг 7: Рассмотрите Порты ввода-вывода в Мастере FIL

Мастер FIL анализирует Контроллер модуля HDL верхнего уровня в Controller.vhd, чтобы получить все порты I/O и отобразить их в таблице DUT I/O Ports. Синтаксический анализатор пытается автоматически решить, что возможные типы порта путем рассмотрения порта называют и отображают эти сигналы под Типом порта.

1. Рассмотрите список портов. Если синтаксический анализатор присвоил тип неправильного порта для какого-либо данного порта, можно вручную изменить сигнал. Для синхронного проекта задайте Часы, Сброс, или Часы включают сигнал. В этом примере Мастер FIL автоматически заполняет таблицу правильно.

2. Нажмите Далее, чтобы продолжиться.

Шаг 8: установите типы выходных данных в мастере FIL

1. Для HDL вывод control_signal изменяют Тип данных на Fixedpoint, Знак к и Дробной Длине Со знаком к 28. Это будет заставлять сгенерированный блок FIL установить выходной сигнал проекта под тестом (DUT) FPGA к правильному типу данных.

2. Нажмите Далее, чтобы продолжиться.

Шаг 9: рассмотрите опции сборки в мастере FIL

1. Задайте папку для выходных файлов. В данном примере используйте опцию по умолчанию, которая является подпапкой по имени Controller_fil под текущим каталогом.

Сводные данные отображают местоположения файла проекта FPGA и файла программирования FPGA. Вам, возможно, понадобятся те два файла для усовершенствованных операций.

2. Нажмите Build, чтобы запустить процесс сборки.

Во время процесса сборки происходят следующие действия:

  • Блок FIL под названием Контроллер сгенерирован в новой модели как показано в следующей фигуре. Не закрывайте эту модель.

  • После новой образцовой генерации Мастер FIL открывает командное окно, где программное обеспечение проекта FPGA выполняет синтез, подгонку, место-и-маршрут, синхронизируя анализ и FPGA, программируя генерацию файла.

  • Когда программный процесс проекта FPGA закончен, сообщение в окне командной строки сообщает, что можно закрыть окно. Закройте окно и перейдите к следующему шагу.

Шаг 10: настройте модель

В fil_pid модели замените Подсистему контроллера на блок FIL, сгенерированный в новой модели. Измененная fil_pid модель теперь появляется как показано на следующем рисунке:

Шаг 11: FPGA программы

1. Включите степень макетной платы FPGA.

2. Дважды кликните блок FIL в fil_pid модели, чтобы открыть маску блока.

3. В открытой маске блока нажмите Load.

Если ваша плата соединяется с хостом - компьютером через кабель JTAG правильно, окно сообщения отображается, чтобы указать, что файл программирования FPGA загружается успешно. Нажмите ОК, чтобы отклонить это диалоговое окно.

4. Соединение Ethernet только: можно протестировать, если плата FPGA соединяется с хостом - компьютером правильно через тест ping. Запустите окно командной строки и введите следующую команду:

C:\MyTests> ping 192.168.0.2

Если вы изменили IP-адрес платы, когда вы настраиваете сетевой адаптер, заменяете 192.168.0.2 на ваш IP-адрес платы. Если Гигабитное соединение Ethernet было настроено правильно, необходимо видеть ответ ping с макетной платы FPGA.

Шаг 12: рассмотрите параметры блока FIL

1. В маске блока FIL кликните по вкладке Signal Attributes.

2. Проверьте, что Тип данных HDL сигнализирует, что control_signal является fixdt (1,32,28). Если это не, измените его.

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

Шаг 13: запустите FIL

1. Запустите симуляцию fil_pid модели.

2. Когда симуляция будет сделана, просмотрите форму волны желаемых и фактических положений двигателя в осциллографе. Обратите внимание на то, что результаты симуляции FIL должны совпадать с теми из эталонной модели Simulink, в которой вы моделировали, Готовят Ресурсы В качестве примера.

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