реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Мост CPU(интерфейс памяти) <-> Altera FPGA (avalon), сделать внешний процессор мастером на шине avalon в QSYS
sysel
сообщение Nov 19 2015, 10:11
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 3-07-07
Пользователь №: 28 852



Здравствуйте!
Стоит задача организовать двунаправленную передачу данных между процессором 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 <-> внешняя память, где ПЛИС является мастером на шине памяти, а мне нужно наоборот.

Исходя из изложенного вопрос: есть ли готовые реализации подобных мостов ?
Go to the top of the page
 
+Quote Post
_pv
сообщение Nov 19 2015, 11:13
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



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

Зачем наоборот? Повесить туда двухпортовую память, которая одной стороной будет торчать наружу процессору, а другой как avalon MM slave.
Ну или два fifo каждый в свою сторону, на единственный адрес со стороны процессора, и опять же как avalon MM slave в плис.
Go to the top of the page
 
+Quote Post
sysel
сообщение Nov 19 2015, 11:28
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 3-07-07
Пользователь №: 28 852



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

Это у меня запасной вариант, но хочеться сделать красиво и универсально.
Go to the top of the page
 
+Quote Post
yes
сообщение Nov 19 2015, 14:10
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



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

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

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

Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01452 секунд с 7
ELECTRONIX ©2004-2016