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