Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибка в AXI4 burst
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
alxkon
Приветствую Всех!

Столкнулся с интересным явлением при работе с HP портами 1,2,3,4 на Zynq 7010 (PicoZed).
Есть 4 AXI4 MM мастера в PL, каждый подлючен к соответсвующему HP порту через конвертор AXI4->AXI3. Логики занято 63%, нарушений таймингов нет. На PS крутится Линукс.
Дата полученая мастерами от внеших устройств прекачивается в DDR3 и оттуда по Ethernet на ПК.
Мастер осуществляет только WRITE транзакции и только с одним ID.
Время от времени, во write burst-e один из слейвов (HP) делает de-assert WREADY и больше не устанавливает в '1', сколько не жди. Три остальных порта работают при этом нормально.
По стандарту AXI бурст нужно довести до конца, только непонятно как, если слейв не готов к записи. Сейчас мастер после таймаута в в 256 ахi клоков ре-инициализируется.
Причин наверное есть множество. Может ли быть некий конфликт при чтениии/записи в DDR на стороне PS и по этому слейв не может принимать больше даных ? Но после таймаута наверное должно бы разрулиться, на самом же деле слейв больше не отвечает.

Возникает 2 вопросы, если кто столкнулся с подобым:
1. Как отловить реальную причину?
2. Как правильно завершить залипший бурст?
Maverick
Цитата(alxkon @ May 18 2017, 12:23) *
Приветствую Всех!

Столкнулся с интересным явлением при работе с HP портами 1,2,3,4 на Zynq 7010 (PicoZed).
Есть 4 AXI4 MM мастера в PL, каждый подлючен к соответсвующему HP порту через конвертор AXI4->AXI3. Логики занято 63%, нарушений таймингов нет. На PS крутится Линукс.
Дата полученая мастерами от внеших устройств прекачивается в DDR3 и оттуда по Ethernet на ПК.
Мастер осуществляет только WRITE транзакции и только с одним ID.
Время от времени, во write burst-e один из слейвов (HP) делает de-assert WREADY и больше не устанавливает в '1', сколько не жди. Три остальных порта работают при этом нормально.
По стандарту AXI бурст нужно довести до конца, только непонятно как, если слейв не готов к записи. Сейчас мастер после таймаута в в 256 ахi клоков ре-инициализируется.
Причин наверное есть множество. Может ли быть некий конфликт при чтениии/записи в DDR на стороне PS и по этому слейв не может принимать больше даных ? Но после таймаута наверное должно бы разрулиться, на самом же деле слейв больше не отвечает.

Возникает 2 вопросы, если кто столкнулся с подобым:
1. Как отловить реальную причину?
2. Как правильно завершить залипший бурст?

например промоделироавать с bfm model Вашу реализацию для FPGA
alxkon
Цитата(Maverick @ May 20 2017, 18:53) *
например промоделироавать с bfm model Вашу реализацию для FPGA

BFM нет, давно предлагал купить, но... Cейчас увидел что Xilinx добавил бесплатный AXI VIP в Vivado 2017.1. Он правда на SystemVeriog, нужно понять как его запустить для проверки своих ядер. Мопед не мой, получил в наследство на прошлой неделе, но без тест-бенча, проще по моему переписать заново и прикрутить VIP
alxkon
Дизайн проверен с BFM, ничего не найдено. Проблема похоже в помехоустоичивости.
Косяк проявляется только в помещении партнеров: поставишь устройство в угол на полу работает без сбоев. А на столе переодически глючит несколько раз в день.
У себя пробовали постоянные мощные нагрузки в сети, сварочник рядом варил, компрессор, ни одного сбоя за неделю.
На сбоящем устройстве смотрели ChipScope - во время бурста, в произвольное время WREADY падает в '0' и больше никогда не устанавливаеыся в '1'.
Виснет один из портов AXI HP подключенных к DDR контроллеру. Все остальное работает - на АРМе крутится линукс, ничего не падает.
Еще отличие у нас девайс в сети через роутер, у них напрямую к десктопу подключен. Ну и другой софт занимается поллингом даных. Но у нас более частые запросы.
тобишь нагрузка на контроллер ethernet и соответственно контроллер DDR больше. Наверняка возможен конфликт в арбитрации между портами контроллера DDR, но в эрратах об этом за годы было бы упоминание, думаю отловоили бы такой баг.
Нужно наверное самим проверять заземления и питание на установке wacko.gif

Интересует на какой максимальной частоте кому либо из вас удавалось поднять AXI PL-PS на Zynq? По даташиту возможно до 250 МГц, в дизайне испольуется 166.
alxkon
Так и не понял каким образом помехи влияют на порт, но все оказалось просто когда мои коллеги приехали на место: вопреки инструкции кабеля были самые дешевые, не экранированы и длиннее допустимой длинны, установка не заземлена и тд. ....
На вопросы все ли установленно по инструкции - "Конечно!".
Вывод - доверяй но проверяй + всегда нужно проверять базовые вещи сначала и только потом смотреть HDL.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.