Вопрос пока чисто теоретический и комплексный. Не знаю к какому разделу ближе.
Есть задача подключить коммуникационный процессор PowerQUICC, например, MPC8313E к FPGA Spartan-3(A,E).
FPGA помимо процессора загружен своими задачами. В текущей разработке коэфф. использования ресурсов процентов 75%, почти задействованы все блоки памяти. Грозит заменой на FPGA (завидую тем кто работает с Virtex-5,6). Но при серьезной переделке логики можно сильно освободить блоки памяти, заменив на очереди.
Определяюсь по какой шине вести взаимодействие с процессором.
1. У процессора есть шина PCI. Процессор будет работать в хост режиме. Для моих задач в 33/66 МГц пропускной способности шины будет достаточно.
2. Использовать шину eLBC. Шина однонаправленная со стороны процессора. Т.е. при получении данных FPGA должен сгенерировать прерывание на какой-либо линии процессора, и процессор сам забирает данные в UPM режиме пакетами по 32 слова. Во-вторых на этой шине будет также загрузка кода процессора через FPGA из SPI флеш-памяти.
Взаимодействие вижу следующим образом. Может меня кто поправит, если что не так.
1. FPGA забирает данные из хост памяти по PCI Express шине своим каналом DMA и направляет их в FIFO буфер, сигнализирует процессору о получении данных.
2. Процессор обрабатывает прерывание и запускает свой канал DMA для забора данных. Извлекает все данные из FIFO.
3. Процессор какое-то время обрабатывает данные.
4. При передачи данных обратно процессор запускает DMA в другую очередь в FPGA.
5. FPGA по PCI Express складывает данные в хост память.
Вопросы:
1. С PCI пока не довелось пока работать, т.е. есть возможность это попробовать

2. C eLBC несколько проще, но после беглого прочтения пока сложно дается понимание настройки UPM режима. Но вроде в CodeWarrior есть визард. Нужно создать простой SRAM интерфейс. Кто-нибудь работал с такой задачей?
3. На данном этапе можно отказаться от этого процессора и навесить какой-то другой, без встроенного контроллера памяти c какой-нибудь нормальной процессорной шиной. Сложнее ли это? У кого какие варианты?