Подключил SignalTap (см. приаттаченный stp_res.stp). При зависании target (в моём случае это системная память) плохо себя ведёт: заканчивает транзакцию, поднимая в "1" TRDYN, а DEVSELN оставляет в "0", STOPN остаётся в "1". Альтеровская корка считает, что фаза данных всё еще продолжается и она остаётся в ней навсегда. Из альтеры мне написали, что "The target’s abnormal behavior in your environment violates the PCI specification. Master(PCI core) must wait for the target(system memory) to deassert devseln or assert stopn to terminate current transaction according to the PCI specification. So there’s no means to terminate the transaction from local side of PCI core."
Однако, когда я увеличиваю паузу между своими пакетными передачами, зависание прекращается. Скорость передачи при этом правда заметно снижается. Удалось получить где-то 15 МБайт/с на 33 МГц 32 бита.