Доступ к PCI-картам ПК через FPGA через USB

У меня есть компьютер, к которому подключены две карты PCI. Я создал симуляцию Matlab/Simulink, которая отправляет цифровой сигнал на одну из карт. Карта является ЦАП. Затем он выводит этот сигнал в систему управления. Matlab генерирует C-код для этого. Моя цель - воссоздать эту симуляцию на плате FPGA. К сожалению, я не могу подключить карты PCI к плате. Следовательно, ПЛИС будет иметь доступ к портам PCI компьютера. Он будет подключен через USB, и я использую Quartus в качестве программного обеспечения FPGA. Есть ли способ получить доступ к PCI-картам с платы? Или же можно было бы просто заставить FPGA вызывать код симуляции.

1 ответ

Подводя итог, что я понял:

текущая настройка

ПК с двумя картами PCI, подключенными к корзине.

  • одна карта PCI имеет выход D-> преобразователь, используемый для управления тележкой
  • одна PCI-карта имеет входные A->D преобразователи, используемые для измерения углового положения и скорости
  • одна программа Matlab на ПК замыкает петлю и запускает тележку.

новая настройка

то же, что и выше, плюс плата с ПЛИС в качестве основного компонента.
На плате есть последовательное соединение, sata, HSMC, Ethernet и USB, но нет аналого-цифровых преобразователей.

Предполагается, что плата заменяет управляющее программное обеспечение на ПК.

мои мысли об этом

  • ПЛИС не являются микропроцессорами.

Чтобы заменить программное обеспечение, которое генерирует Matlab, вам нужно будет использовать конечный автомат VHDL, который эмулирует алгоритм Matlab. Это неосуществимо в общем случае и будет успешным только в том случае, если алгоритм Matlab будет очень базовым.

Если у вас есть мощная ПЛИС, вы можете использовать ее для реализации микроконтроллера, а затем запрограммировать микроконтроллер так, чтобы вы делали все, что вам нужно. Это все еще кажется мне излишним.

  • FPGA должны реализовывать только низкоуровневые интерфейсы

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

Например, вы можете реализовать какой-то элементарный протокол на канале Ethernet, но и здесь FPGA столкнется с самыми ужасными трудностями при добавлении программного протокола поверх низкоуровневого кольцевого буфера, который он предназначен для реализации, если вы не запрограммируете свой ПЛИС для эмуляции процессора в первую очередь.

  • ваш проект требует микроконтроллера

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

Использование ПК в качестве ведомого FPGA для управления парой сигналов ввода / вывода - глупо. Это будет стоить вам огромного времени на разработку и, скорее всего, потерпит неудачу, поскольку решение, в лучшем случае, будет неуклюжим доказательством концепции.

Мой совет: бросьте плату FPGA и замените ее подходящей платой микроконтроллера.

Другие вопросы по тегам