Здравствуйте! Стоит задача организовать двунаправленную передачу данных между процессором TI AM3358 и ПЛИС (Altera Cyclone III) на скорости порядка 200 мбит/сек (суммарно по обоим направлениям). Из процессора на ПЛИС выведен интерфейс GPMC (интерфейс внешней синхронной/асинхронной памяти). Т.е. со стороны процессора ПЛИС "выглядит" как внешняя память с определённым адресным пространством. В интерфейсе CPU<->FPGA также есть сигнал GPMC_CLK (тактирование интерфейса, который активен только в момент транзакции), GPMC_WAIT (управление транзакцией со стороны ПЛИС, позволяет заставить процессор ждать завершения транзакции нужное число тактов).
Появилась идея разработать/найти реализацию моста из интерфейса внешней памяти (в режиме Slave) в Avalon MM Master, а затем строить весь проект через QSYS. Но есть ряд проблем: 1) Тактирование сигналов интерфейса GPMC от процессора идёт только в момент транзакции (чтение/запись), в остальное время сигнал в "нуле". Т.е. искомый мост будет иметь 2 тактовых сигнала: системный QSYS (генерируется внутри ПЛИС) и интерфейсный GPMC(от процессора). 2) Интерфейс GPMC обеспечивает хорошую скорость чтения/записи только при использовании Burst транзакций (адрес + данные (максимум 16 слов)), причем заранее не известно, какой будет длина транзакции от процессора. Т.е. потребуется делать некое упреждающее чтение по шине Avalon.
У Альтеры есть мост Avalon MM Slave <-> внешняя память, где ПЛИС является мастером на шине памяти, а мне нужно наоборот.
Исходя из изложенного вопрос: есть ли готовые реализации подобных мостов ?
|