Доступ к 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 и замените ее подходящей платой микроконтроллера.