Задать вопрос
@evocatus
разработчик на FPGA, программист, учитель

Можно ли подключить DDR2 в двухканальном режиме к FPGA?

Нужно сделать плату, где FPGA пишет в память и пересылает это по 10Gb Ethernet параллельно. Пересылаемый поток данных порядка 6 Гбит/с. Напрашивается мысль о двухканальном режиме - один модуль пишет в память, а модуль работы с Ethernet - читает.

Вопрос: есть ли IP-ядра, которые умеют двухканальный режим? Если нет, реально ли это сделать с помощью двух разных модулей работы с DDR2 (оставим вопрос о количестве пинов).

P.S.Не предлагайте обойтись без памяти, буфер нужен обязательно, и он может быть очень большим (десятки ГБ).
  • Вопрос задан
  • 3775 просмотров
Подписаться 3 Оценить 1 комментарий
Решения вопроса 1
@nerudo
Вполне реально. Специаьный контроллер ддр вам не нужен - можно обойтись стандартныи и к нему приделать приблуду с арбитражем, которая будет поочередно писать/читать. Внутри приблуды сделать внутренний буфер на запись, достаточный для оперативного накопления данных пока читается в другую сторону.
Если уж делать совсем колхозно - два независимых контроллера ддр, которые меняются местами на чтение/запись по мере заполнения памяти.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Alexeyslav
Программирование, электроника
Это обычно называется двухпортовая память. Весьма дорогое удовольствие.

Толку что у вас будет два модуля - ведь данные с одного как-то должны попасть в другой!
Другое дело, если вы используя два модуля создадите один массив памяти но записывать и читать из них будете по очереди - пока один модуль выполняет операцию чтения/записи идет обращение к другому... Да, и ведь еще циклы регенерации не надо пропускать.
Ответ написан
@Alexeyslav
Программирование, электроника
Чего-то я подумал, и в голову вдруг пришла гениальная мысль. Чтобы ускорить производительность надо просто использовать модули параллельно. Один модуль - считываем/записываем по 32 бита за раз а два модуля позволят писать 64 бита за раз - и т.д. Осталось только реализовать буфер который бы копил 64 бита и записывал в такую память. При считывании - 64 бита считали и отдаем по мере необходимости, затем считываем следующую порцию.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы