В этом примере показано, как настроить приложение FPGA-in-the-Loop (FIL) с помощью Verifier™ HDL. Приложение использует Simulink ® и плату разработки FPGA для проверки реализации HDL контроллера пропорциональной интегральной производной (PID). В этом примере Simulink генерирует требуемое положение двигателя и моделирует двигатель, управляемый этим ПИД-контроллером.
Помимо перечисленных продуктов MathWorks, к другим требованиям относятся:
Программное обеспечение для конструирования FPGA (комплект для конструирования Xilinx ® ISE ® или комплект для конструирования Xilinx ® Vivado ®, или ПО для конструирования Intel ® Quartus ® II, или ПО для конструирования Microsemi ® Libero ® SoC)
Одна из поддерживаемых плат разработки FPGA. Для получения информации о поддерживаемых аппаратных средствах см. раздел Поддерживаемые устройства FPGA для проверки FPGA.
Для подключения с использованием Ethernet: Gigabit Ethernet адаптер, установленный на хост-компьютере, Gigabit Ethernet кросс-кабель
Для подключения с использованием кабеля JTAG: USB Blaster I или II и драйвера для плат Intel FPGA. Кабель и драйвер Digilent ® JTAG для плат Xilinx FPGA.
Для подключения с использованием PCI Express ®: плата FPGA установлена в слот PCI Express хост-компьютера.
Предпосылки:
Программное обеспечение MATLAB ® и FPGA можно установить на компьютере или на сетевом устройстве. Если вы используете программное обеспечение из сети, вам потребуется второй сетевой адаптер, установленный на вашем компьютере, чтобы предоставить частную сеть для платы разработки FPGA. Чтобы узнать, как установить сетевой адаптер, обратитесь к руководству по оборудованию и сети для компьютера.
Пропустите этот шаг и шаг 2, если для моделирования используется подключение PCI Express. Если вы не настроили подключение PCI Express, используйте программное обеспечение для установки пакета поддержки, которое поможет вам установить PCI Express.
Выполните следующие действия для настройки платы разработки FPGA.
Убедитесь, что выключатель питания остается выключенным.
Подключите шнур питания переменного тока к штекеру питания. Подключите кабель адаптера питания к плате разработки FPGA.
Подключите разъем Ethernet на плате разработки FPGA непосредственно к адаптеру Ethernet на компьютере с помощью перекрестного кабеля Ethernet.
Для подключения платы разработки FPGA к компьютеру используйте кабель загрузки JTAG.
Убедитесь, что все перемычки на плате разработки FPGA находятся в заводском положении по умолчанию, за исключением микросеми PolarFire, которая требует специальных настроек. См. раздел Установка комплекта для оценки поляризации микросемий (пакет поддержки HDL Verifier для плат Microsemi FPGA).
Пропустите этот шаг, если для моделирования используется соединение JTAG. Для подключения к Ethernet на компьютере должен быть сетевой адаптер Gigabit Ethernet для выполнения этого примера.
В Windows ® выполните следующие действия.
Откройте панель управления.
Введите View network connections на панели поиска. Выберите Просмотр сетевых подключений в результатах поиска.
Щелкните правой кнопкой мыши значок подключения к плате разработки FPGA и выберите Свойства во всплывающем меню.
В разделе Это подключение использует следующие элементы выберите Internet Protocol версии 4 (TCP/IPv4) и нажмите кнопку Свойства.
Выберите Использовать следующий IP-адрес:. Установите IP-адрес 192.168.0.1. Если этот адрес используется другим компьютером в сети, измените его на любой доступный IP-адрес в этой подсети, например 192.168.0.100. Это адрес компьютера. Установите маску подсети 255.255.255.0. Теперь свойства TCP/IP должны выглядеть так же, как показано на следующем рисунке:

В ОС Linux ®:
Для настройки локального адреса используется команда ifconfig. Например:
% ifconfig eth1 192.168.0.1
В этом примере eth1 является вторым Ethernet-адаптером на компьютере Linux. Проверьте систему, чтобы определить, какой Ethernet-адаптер подключен к плате разработки FPGA. Приведенная выше команда устанавливает локальный IP-адрес 192.168.0.1. Если этот адрес используется другим компьютером в сети, измените его на любой доступный IP-адрес в этой подсети, например 192.168.0.100.
1. Настройка программного обеспечения FPGA
Перед использованием FPGA-in-the-Loop настройте системную среду для доступа к программному обеспечению FPGA. Функцию hdlsetuptoolpath можно использовать для добавления ISE, Vivado, Quartus или Libero SoC к системному пути текущей сессии MATLAB. Ниже приведены примеры командных строк для каждого инструмента. Замените фактическим исполняемым файлом, если он отличается.
Для плат Xilinx FPGA, использующих программное обеспечение ISE, запустите:
hdlsetuptoolpath('ToolName', 'Xilinx ISE', 'ToolPath', 'C:\Xilinx\13.1\ISE_DS\ISE\bin\nt64\ise.exe');
Для плат Xilinx FPGA, использующих программное обеспечение Vivado, запустите:
hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath','C:\Xilinx\Vivado\2016.4\bin\vivado.bat');
Для системных плат Intel выполните следующие действия:
hdlsetuptoolpath('ToolName','Altera Quartus II','ToolPath','C:\altera\16.0\quartus\bin\quartus.exe');
Для плат Microsemi выполните следующие действия:
hdlsetuptoolpath('ToolName', 'Microsemi Libero SoC', 'ToolPath', 'C:\Microsemi\Libero_SoC_v11.8\Designer\bin\libero.exe');
2. Откройте модель fil_pid.
Эта модель содержит PID-контроллер с фиксированной точкой, реализованный с базовыми блоками Simulink. Эта модель также содержит модель двигателя постоянного тока, управляемую этим ПИД-контроллером, а также требуемое положение двигателя постоянного тока в качестве входного стимула.
Запустите эту модель сейчас и проверьте требуемое и фактическое положение двигателя в области.

Запустите мастер FPGA-in-the-Loop, выполнив следующие действия:
Откройте окно Apps галерея и выбрать FIL Wizard от Code Verification, Validation, and Test раздел.

Кроме того, в командной строке MATLAB можно ввести команду filWizard.
filWizard
Установите параметры FIL для платы разработки FPGA.
1. Укажите, будет ли мастер создавать блок симулятора FIL или системный объект MATLAB FILSimulation. В этом примере выберите Simulink для моделирования FIL с Simulink.
2. В поле Имя платы выберите плату разработки FPGA, подключенную к компьютеру. Если плата отсутствует в списке, выберите одну из следующих опций:
«Получить дополнительные платы»... для загрузки пакетов поддержки плат FPGA (этот параметр запускает программу установки пакетов поддержки).
«Create custom board»... для создания файла определения платы FPGA для конкретной платы FPGA (эта опция запускает команду New FPGA Board Manager).

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, если он доступен. Не изменяйте MAC-адрес платы.

5. (Необязательно) Если вы хотите изменить тактовую частоту DUT с тактовой частоты по умолчанию (25 МГц), вы можете развернуть дополнительные опции и изменить тактовую частоту системы FPGA (МГц).
6. Нажмите кнопку Далее, чтобы продолжить.
Укажите конструкцию ЛПВП, которая должна быть реализована в FPGA.
1. Щелкните Добавить (Add) и перейдите к каталогу, созданному в разделе Подготовка ресурсов примера (Prepare Example Resources).
2. Выберите следующие файлы HDL в каталоге pid_hdlsrc:
Controller.vhd
D_component.vhd
I_component.vhd
Это файлы дизайна HDL, которые должны быть проверены на плате FPGA.
3. В таблице Исходные файлы установите флажок в строке файла Controller.vhd, чтобы указать, что этот файл HDL содержит модуль HDL верхнего уровня.

Мастер FIL автоматически заполняет поле Имя модуля верхнего уровня именем выбранного файла HDL; в этом случае контроллер. В этом примере имя модуля верхнего уровня совпадает с именем файла, поэтому изменять его не требуется. Если имя модуля верхнего уровня и имя файла не совпадают, необходимо вручную исправить имя модуля верхнего уровня в этом диалоговом окне.
Нажмите кнопку Далее, чтобы продолжить.
Мастер FIL анализирует контроллер модуля HDL верхнего уровня в Controller.vhd, чтобы получить все порты ввода/вывода и отобразить их в таблице портов ввода/вывода DUT. Синтаксический анализатор пытается автоматически определить возможные типы портов, просматривая имена портов, и отображает эти сигналы в разделе Port Type.
1. Просмотрите список портов. Если синтаксический анализатор назначил неверный тип порта для любого данного порта, можно вручную изменить сигнал. Для синхронного проектирования укажите сигнал включения синхронизации, сброс или сброс тактового сигнала. В этом примере мастер FIL автоматически заполняет таблицу правильно.

2. Нажмите кнопку Далее, чтобы продолжить.
1. Для вывода HDL control_signal измените тип данных на Fixedpoint, Sign to Signed и Fraction Length на 28. Это приведет к тому, что генерируемый блок FIL установит для выходного сигнала испытываемого проекта FPGA (DUT) правильный тип данных.

2. Нажмите кнопку Далее, чтобы продолжить.
1. Укажите папку для выходных файлов. В этом примере используется параметр по умолчанию, который является подпапкой с именем Controller_fil в текущей папке.
В окне Сводка отображаются местоположения файла проекта FPGA и файла программирования FPGA. Эти два файла могут понадобиться для расширенных операций.

2. Нажмите кнопку Построить, чтобы запустить процесс построения.
В процессе построения выполняются следующие действия.
Блок FIL с именем Controller генерируется в новой модели, как показано на следующем рисунке. Не закрывайте эту модель.

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

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

1. Включите питание платы разработки FPGA.
2. Дважды щелкните блок FIL в модели fil_pid, чтобы открыть маску блока.
3. В открытой маске блока нажмите кнопку «Загрузить».

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

4. Только подключение Ethernet: Можно проверить, правильно ли подключена плата FPGA к компьютеру с помощью теста ping. Запустите окно командной строки и введите следующую команду:
C:\MyTests> ping 192.168.0.2
При изменении IP-адреса платы при настройке сетевого адаптера замените 192.168.0.2 на IP-адрес платы. Если подключение Gigabit Ethernet установлено правильно, следует просмотреть ответ ping от платы разработки FPGA.
1. В маске блока FIL перейдите на вкладку Атрибуты сигнала (Signal Attributes).
2. Убедитесь, что тип данных control_signal сигнала HDL зафиксирован (1,32,28). Если нет, измените его.
3. Нажмите кнопку ОК, чтобы закрыть маску блока.

1. Начните моделирование модели fil_pid.
2. По завершении моделирования просмотрите форму сигнала желаемого и фактического положений двигателя в объеме изобретения. Следует отметить, что результаты моделирования FIL должны совпадать с результатами эталонной модели Simulink, смоделированной в разделе Подготовка ресурсов примера.
