Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Custom IP -> SDRAM Memory Write
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
sonycman
Доброго времени суток!

Использую Cyclone V SoC.
Планирую в своей корке использовать простенький DMA для записи обработанных данных в память SDRAM процессора HPS.

Интерфейс у корки простой - Avalon MM, далее через мост FPGA->HPS.
Затем буду сигналить линию IRQ в качестве флага, что данные записаны в память.

Но вот как быть уверенным, что на момент поднятия IRQ данные на самом деле будут лежать в памяти?

Насколько я знаю, Qsys Interconnect генерирует промежуточное FIFO, затем Сlock Crossing Bridge и прочую необходимую логику.
То есть момент, когда Avalon MM со стороны FPGA->HPS моста принял данные, совсем не говорит о том, что они уже записаны в память.
Насколько я понимаю.

Как узнать, когда на самом деле данные будут записаны, чтобы процессор мог без проблем их прочитать?

Может быть, стоит задействовать сигналы response интерфейса Avalon MM?
Это позволит понять, что слэйв на стороне моста принял данные, но вот записал ли он их?...
doom13
Было такое на Zynq, все работало нормально.
sonycman
Цитата(doom13 @ Jul 1 2017, 02:19) *
Было такое на Zynq, все работало нормально.

На цинке нет авалона, там сложный AXI.
В нём, наверное, есть спец. линии, подобные response в авалоне.
g700
Используйте сигналы response. Глубина буффера в самом sdram на запись 8 ( стр. 4-2 ). Так, что можно сделать так: пришел response спустя 8 тактов IRQ.
https://www.altera.com/content/dam/altera-w...troller_hps.pdf
sonycman
Цитата(g700 @ Jul 1 2017, 15:01) *
Используйте сигналы response. Глубина буффера в самом sdram на запись 8 ( стр. 4-2 ). Так, что можно сделать так: пришел response спустя 8 тактов IRQ.
https://www.altera.com/content/dam/altera-w...troller_hps.pdf

Да, спасибо!

Данные пойдут через AvalonMM Master -> мост FPGA->HPS и дальше ->L3 Interconnect->32 bit AXI->SDRAM Controller.
То есть сигналы write response со стороны AXI должны быть автоматически согласованы Qsys Interconnect с сигналами response моего AvalonMM Master.

Буду пробовать!
sonycman
Блин, почитал внимательнее доку по хардовому контроллеру DDR SDRAM - для шины Авалон нет поддержки подтверждения записи (write response).
Получается, нужен AXI.

Насколько я понял, в циклоне AXI-3.
Попробую написать мастер для записи.

Подумал тут - лучше воспользоваться портом ACP, чтобы сразу делать запись в кеш процессора.
Будет быстрее, чем напрямую в sdram.

Кто нибудь работал с ACP? Там кучу условий надо выполнить.
Доступ к нему через мост FPGA->HPS, который AXI3, но что интересно - для доступа к ACP нужны сигналы AxUSER AXI4!

Я не пойму, почему такая мешанина разных шин?
starley
Общепринятая практика для гарантированного завершения записей - выполнить чтение хотя бы одного слова из того устройства, куда была запись. Это заставит все промежуточные мосты завершить все застявшие в их буферах записи перед выполнением этого чтения.
Kuzmi4
2 sonycman
Если ещё интересен ACP, гляньте XAPP1170 + cdma_acp_design.zip (AR#50826) - это для хилых, но принцип работы думаю будет понятен.
sonycman
Цитата(Kuzmi4 @ Jul 21 2017, 11:34) *
2 sonycman
Если ещё интересен ACP, гляньте XAPP1170 + cdma_acp_design.zip (AR#50826) - это для хилых, но принцип работы думаю будет понятен.

Спасибо, запустил уже обмен через ACP.
Когда данных не много, пусть лежат себе в кэше, даже запись в SDRAM может не потребоваться.

ЗЫ: не знаю, как у хилых, но у альтеры создание порта AXI не очень удобно - требуется, чтобы присутствовали практически все сигналы для всех каналов - и записи, и чтения.
Было бы лучше, если бы система QSys не заставляла описывать не используемые каналы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.