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

Ошибка в AXI4 burst

Приветствую Всех!

 

Столкнулся с интересным явлением при работе с 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. Как правильно завершить залипший бурст?

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


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

Приветствую Всех!

 

Столкнулся с интересным явлением при работе с 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

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


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

например промоделироавать с bfm model Вашу реализацию для FPGA

BFM нет, давно предлагал купить, но... Cейчас увидел что Xilinx добавил бесплатный AXI VIP в Vivado 2017.1. Он правда на SystemVeriog, нужно понять как его запустить для проверки своих ядер. Мопед не мой, получил в наследство на прошлой неделе, но без тест-бенча, проще по моему переписать заново и прикрутить VIP

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


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

Дизайн проверен с BFM, ничего не найдено. Проблема похоже в помехоустоичивости.

Косяк проявляется только в помещении партнеров: поставишь устройство в угол на полу работает без сбоев. А на столе переодически глючит несколько раз в день.

У себя пробовали постоянные мощные нагрузки в сети, сварочник рядом варил, компрессор, ни одного сбоя за неделю.

На сбоящем устройстве смотрели ChipScope - во время бурста, в произвольное время WREADY падает в '0' и больше никогда не устанавливаеыся в '1'.

Виснет один из портов AXI HP подключенных к DDR контроллеру. Все остальное работает - на АРМе крутится линукс, ничего не падает.

Еще отличие у нас девайс в сети через роутер, у них напрямую к десктопу подключен. Ну и другой софт занимается поллингом даных. Но у нас более частые запросы.

тобишь нагрузка на контроллер ethernet и соответственно контроллер DDR больше. Наверняка возможен конфликт в арбитрации между портами контроллера DDR, но в эрратах об этом за годы было бы упоминание, думаю отловоили бы такой баг.

Нужно наверное самим проверять заземления и питание на установке :wacko:

 

Интересует на какой максимальной частоте кому либо из вас удавалось поднять AXI PL-PS на Zynq? По даташиту возможно до 250 МГц, в дизайне испольуется 166.

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


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

Так и не понял каким образом помехи влияют на порт, но все оказалось просто когда мои коллеги приехали на место: вопреки инструкции кабеля были самые дешевые, не экранированы и длиннее допустимой длинны, установка не заземлена и тд. ....

На вопросы все ли установленно по инструкции - "Конечно!".

Вывод - доверяй но проверяй + всегда нужно проверять базовые вещи сначала и только потом смотреть HDL.

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...