Лучший способ передачи видеоданных на устройство через PCI в Linux

Мне нужно передавать видеоданные на и с устройства FPGA через PCI в среде Linux. Я использую мастер-ядро PCI стороннего производителя на FPGA. До сих пор я реализовал простой DMA-контроллер на FPGA для передачи данных от FPGA к ЦП, используя последовательные пакеты записи PCI.

Далее мне нужно передать видеоданные с процессора на FPGA. Каков наилучший способ сделать это?

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

Мои требования к пропускной способности составляют около 30 МБ/с в обоих направлениях.

Спасибо.


person mksuth    schedule 09.06.2011    source источник


Ответы (2)


Мне кажется, что FPGA должна справляться как с чтением, так и с записью. В противном случае вы бы перегрузили процессор хоста. Это классическая задача для DMA (и вы не можете гарантировать, что DMA существует на каждом хосте).

person benzaita    schedule 08.06.2012

Вы можете делать опубликованные записи из ЦП, как это делают драйверы видеокарты, но вам понадобится некоторая магия драйверов, такая как настройка MTRR (что означает, что у вас может быть некоторая архитектурная зависимость). Если вы хотите быть в безопасности, чтение DMA из FPGA - лучший способ. 30мб/с это не много.

person Limbeh    schedule 06.12.2011