реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Ошибка в AXI4 burst, Zynq 7010
alxkon
сообщение May 18 2017, 09:23
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 16-11-10
Пользователь №: 60 920



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

Столкнулся с интересным явлением при работе с 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. Как правильно завершить залипший бурст?
Go to the top of the page
 
+Quote Post
Maverick
сообщение May 20 2017, 15:53
Сообщение #2


я только учусь...
******

Группа: Модераторы
Сообщений: 3 386
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(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


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
alxkon
сообщение May 23 2017, 11:56
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 16-11-10
Пользователь №: 60 920



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

BFM нет, давно предлагал купить, но... Cейчас увидел что Xilinx добавил бесплатный AXI VIP в Vivado 2017.1. Он правда на SystemVeriog, нужно понять как его запустить для проверки своих ядер. Мопед не мой, получил в наследство на прошлой неделе, но без тест-бенча, проще по моему переписать заново и прикрутить VIP
Go to the top of the page
 
+Quote Post
alxkon
сообщение Jun 12 2017, 12:25
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 16-11-10
Пользователь №: 60 920



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

Интересует на какой максимальной частоте кому либо из вас удавалось поднять AXI PL-PS на Zynq? По даташиту возможно до 250 МГц, в дизайне испольуется 166.
Go to the top of the page
 
+Quote Post
alxkon
сообщение Jun 21 2017, 09:44
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 16-11-10
Пользователь №: 60 920



Так и не понял каким образом помехи влияют на порт, но все оказалось просто когда мои коллеги приехали на место: вопреки инструкции кабеля были самые дешевые, не экранированы и длиннее допустимой длинны, установка не заземлена и тд. ....
На вопросы все ли установленно по инструкции - "Конечно!".
Вывод - доверяй но проверяй + всегда нужно проверять базовые вещи сначала и только потом смотреть HDL.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th October 2017 - 16:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01242 секунд с 7
ELECTRONIX ©2004-2016