Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Мост CPU(интерфейс памяти) <-> Altera FPGA (avalon)
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
sysel
Здравствуйте!
Стоит задача организовать двунаправленную передачу данных между процессором 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 <-> внешняя память, где ПЛИС является мастером на шине памяти, а мне нужно наоборот.

Исходя из изложенного вопрос: есть ли готовые реализации подобных мостов ?
_pv
Цитата
У Альтеры есть мост Avalon MM Slave <-> внешняя память, где ПЛИС является мастером на шине памяти, а мне нужно наоборот.

Зачем наоборот? Повесить туда двухпортовую память, которая одной стороной будет торчать наружу процессору, а другой как avalon MM slave.
Ну или два fifo каждый в свою сторону, на единственный адрес со стороны процессора, и опять же как avalon MM slave в плис.
sysel
Цитата(_pv @ Nov 19 2015, 15:13) *
Зачем наоборот? Повесить туда двухпортовую память, которая одной стороной будет торчать наружу процессору, а другой как avalon MM slave.
Ну или два fifo каждый в свою сторону, на единственный адрес со стороны процессора, и опять же как avalon MM slave в плис.

Это у меня запасной вариант, но хочеться сделать красиво и универсально.
yes
для AHB шины таких мостов полно - у того же Гейслера 3 или 4 реализации (на VHDL)
ну и вообще там есть некий обобщенный код AHB мастера - приписывай к нему что хочешь

то есть по хорошему должно быть FIFO для максимального BURST, а чтение соотв. с неким перезакладом -
в гейслеровской AHB это сделано через признак "prefetcable" то есть побочных эффектов память не имеет и SPLIT транзакции

но как верно заметили - для ПЛИС реализация двухпортовой памяти бесплатна - то есть не майтесь ерундой sm.gif

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.