Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Nios2 + udp
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Nick_TxD
Всем привет.
Столкнулся с проблемой нехватки скорости передачи пакетов udp из nios по GbE. В одном из гайдов altera в качестве решения проблемы было предложено увеличить кэш инструкций и данных в ниос до максимальных (64Кб). После данной манипуляции скорость передачи выросла в 3 раза и достигла нужной, но передается теперь всегда один и тот же пакет (udp заголовок меняется, а пользовательские данные нет).
Проект выглядит примерно так ADC -> fpga часть -> dual port on-chip memory-> nios -> ethernet.
Собственно вопрос, с чем может быть связана проблема. Dma не успевает?
Kuzmi4
2 Nick_TxD
телепаты в отпуске, потому было бы неплохо для начала узнать что именно вы используете для отправки udp пакетов - LWIP, NicheStack, .. - и в какой именно конфигурации.
Nick_TxD
NicheStack. Что подразумевается под конфигурацией?
Только начал заниматься ниосом
doom13
Цитата(Nick_TxD @ Aug 29 2018, 08:09) *
Всем привет.
Столкнулся с проблемой нехватки скорости передачи пакетов udp из nios по GbE. В одном из гайдов altera в качестве решения проблемы было предложено увеличить кэш инструкций и данных в ниос до максимальных (64Кб). После данной манипуляции скорость передачи выросла в 3 раза и достигла нужной, но передается теперь всегда один и тот же пакет (udp заголовок меняется, а пользовательские данные нет).
Проект выглядит примерно так ADC -> fpga часть -> dual port on-chip memory-> nios -> ethernet.
Собственно вопрос, с чем может быть связана проблема. Dma не успевает?

Похоже, что весь пакет поместился в кэш данных, и всегда отправляется содержимое кэша, обращений к памяти не происходит.
Nick_TxD
doom13
Хмм, как этого избежать?
Kuzmi4
Цитата(Nick_TxD @ Aug 29 2018, 09:22) *
..Что подразумевается под конфигурацией?

Его можно собрать по разному, с разным функционалом - что то включить, что то выключить, ключевые слова: BTREE_ROUTES, ...

Касательно кеша - если у вас Nios2-f проц, то как вариант чтобы не переписывать код (нужно добавлять инвалидацию кэша) попробуйте сконфигурировать его без кэша данных.
Если Nios2-е проц, то там кеша вобще нет и значит проблема в чём то другом.
Детали ищите с помощью ключевого слова "alt_dcache_flush".
Nick_TxD
Kuzmi4
Без кэша отправляются пакеты без повторов, но с пропусками. Судя по всему nios не может отправлять такое количество пакетов.
Видимо стоит перейти к варианту с отправкой udp пакетов из fpga части, а прием управляющих tcp пакетов через nios.
Может кто-то поделиться подобным решением, либо направить в нужную сторону?
Swup
Просто режьте ваш стрим на пакеты, пакеты заворачиваете на проходе в udp.
посмотрите вот на этот пример.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.