Перейти к содержанию

Непонятки с арбитром

Здравствуйте!
Ситуация такая: использую ядро Xilinx axi4-stream interconnect 2.1 для коммутации 8-ми потоков в один, фифо для всех слейвов настроены на пакетный режим с переключением по tlast, арбитраж установлен в режим Round-Robin, клоки слейвов и свитча одинаковы, клок мастера асинхронен им. Данные идут пачками таким образом, что все фифо заполняются одновременно на размер достаточный для переключения. На каждую пачку на входе арбитра ожидал увидеть на выходе пакеты последовательно с каждого из фифо, начиная с нулевого. Но! Первый раз выкачка началась не с нулевого, а со второго или третьего фифо. Немного удивился, но придумал, как это обойти - задержал входы каждого следующего фифо на один такт, относительно предыдущего. Т.о. нулевое фифо заполняется до момента переключения первым, затем первое фифо и т.д. Как и ожидалось, выкачка началась с нулевого фифо, НО затем арбитр перепрыгнул на 7 фифо. Порядок данных на выходе важен, поэтому меня такой вариант не устраивает. Попытался разобраться в коде ядра, но с наскока ничего не вышло.
Сталкивался ли кто-то с таким поведением, и насколько оно соответствует принципу Round-Robin?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Приветствую!

Цитата(Tausinov @ Dec 19 2017, 22:08) <{POST_SNAPBACK}>
... На каждую пачку на входе арбитра ожидал увидеть на выходе пакеты последовательно с каждого из фифо, начиная с нулевого. Но! Первый раз выкачка началась не с нулевого, а со второго или третьего фифо. ...
Сталкивался ли кто-то с таким поведением, и насколько оно соответствует принципу Round-Robin?

Вполне соответствует - Round-Robin это всего лишь арбитраж с циклическим приоритетом для равновероятного доступа и он не гарантирует строго последовательный выбор каналов. Для этого надо самому контролировать последовательность выдачи данных с канальных FIFO.

Успехов! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(RobFPGA @ Dec 20 2017, 13:58) <{POST_SNAPBACK}>
Приветствую!


Вполне соответствует - Round-Robin это всего лишь арбитраж с циклическим приоритетом для равновероятного доступа и он не гарантирует строго последовательный выбор каналов. Для этого надо самому контролировать последовательность выдачи данных с канальных FIFO.

Успехов! Rob.



Понял, спасибо. Где-то в интернете набрел на похожую трактову Round-Robin, в итоге пришел к такому же выводу, но хотелось услышать стороннее мнение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация