доброго времени суток!
Стоит следующая задача - подключить некоторое количество сетевых карточек Intel 82574l (через свич вестимо) к FPGA (присматриваюсь пока к cyclone IV GX )
на 100 Мбит снифить входящий из сети поток и вытаскивать данные из определенных пакетов (сетевой протокол уровня tcp) и передачи содержимого на ПК
отсюда куча вопросов новичка в реализации этого дела
1 есть ли примеры подключения pcie (или pci) сетевухи к данным fpga?
как я понимаю, мне надо будет сконфигурировать чип при старте, а потом по DMA вытаскивать из него ethernet пакеты и анализировать их?
понемного начал читать про режимы конфигурирования на шине, чуствую, что не совсем пока представляю весь объем необходимой работы (пока с pci работал программно , на уровне API ОС , где не недо было думать о начальной конфигурации)
2 допустим я разобрался с подключением одного чипа, а как быть с несколькими чипами и мостом? ведь хост(в даннмо случае FPGA) должен выделить память под каждое устройство на шине? вероятно придется еще и память внешную прикручивать (а возможно ее придется прикручивать и при одиночном чипе)
2 насколько я понял, cyclone IV GX (а конекретнее EP4CGX15BF14) содержит аппаратную реализацию одного pcie порта , который может быть x4
можно ли реализовать связь с сетью через аппаратное pcie ядро а связь с вышестоящей системой через оставшиеся линии (достаточно x1)
пока в голову лишь лезет реализация обычного PCI для связи с ПК , если потребуется в будущем PCIE то видимо придется поставить мост PEX 8112
3 в идеале , все таки хотелось, чтобы данные сетевухи были прозрачные для вышестоящей системы
то есть fpga будет выступать в роли отдельного устройства, которое просто будет снифить входящий траффик, после того как ПК сконфигурирует сетевые чипы сама
как такое можно реализовать?
мне такой вариант больше подуше , ибо не надо будет заниматься конфигурированием всего этого мяса, правда чтобы вычленить нужные данные , мне необходимо будет знать положение и данные об конфигурационном пространстве каждого из чипов на шине, а это значит что мне все таки придется с ними общаться в рамках шины (а не тупо снифить линию)