Цитата(Kirill_Good @ Jul 27 2011, 12:25)

Спасибо за советы!
Причина сбоев в проекте стала ещё загадочнее. Проект заключается в передачи потока данных с DSP Freescale по RapidIO на Spartan 6, в плис находятся два буфера( один на прием из SRIO, другой на передачу в SRIO). Для отладки был создан loopback между этим фифо, то что приходит с DSP отсылается обратно. На DSP реализован такой механизм посылается пакет, ждет прихода его же, и только потом посылается следующий. В течении трех дней , возникала ошибка при посылке: не приходил от ПЛИС пакет всё время со значениями 4A4A4A.. (254 байта) и несколько раз поток тормозился из за неприхода пакета с данными B3B3B3B3...(254 байта). После многочисленных переделок прошивки FPGA решили убрать из генерации данных эти значения, и поток заработал, т.е все приходящие пакеты возвращаются!
Как можно такое объяснить?
Из вышеописанного у меня возникает впечатление, что поток данных у вас значительно меньше, чем 4096*200mb/s, просто вы полностью распараллеливаете входные пакеты до FIFO. Может быть, можно распараллеливать их после FIFO, чтобы уменьшить его разрядность, и проблема решится сама собой? Для передачи признака конца пакета можно использовать, например, дополнительный бит.
Объяснить сбои можно тем, что при сигнале определённой формы возникает сбой при передаче символов разделения пакетов, от чего всё падает. Например, прошивка FPGA глючит, если входной пакет имеет не ту длину.
Особенность кода 4A в том, что в десятибитной форме он становится 0101010101.