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

 
 
> Рассинхронизация двух IP FIFO Xilinx
Kirill_Good
сообщение Jul 25 2011, 11:46
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



По ошибке создал не в той ветке прошлое сообщение.

Здравствуйте!

У меня в работе прошивки возникают ошибки, мое предположение из за рассинхронизации двух одинаковых IP FIFO. Опишу принцип работы : 2 ФИФО шириной по 1024 бита, чтобы хранить 2048 битные значения. Сигналы на запись подаются одновременно, сигналы на чтение тоже. ФИФО со стороны записи тактируется 15 МГц, со стороны чтения 30 МГц. Чтение происходит в момент not_empty_fifo1 and not_empty_fifo2. Ошибка заключается в том, что данные в некоторые моменты времени приходят первая часть 1024 верные вторая 1024 неверные, эти моменты времени периодичностью не выделяются.

Верно ли мое предположение?

Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kirill_Good
сообщение Jul 27 2011, 08:25
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



Спасибо за советы!

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

Как можно такое объяснить?
Go to the top of the page
 
+Quote Post
Timmy
сообщение Jul 28 2011, 10:26
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(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.
Go to the top of the page
 
+Quote Post
Kirill_Good
сообщение Jul 28 2011, 11:47
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



Цитата(Timmy @ Jul 28 2011, 14:26) *
Из вышеописанного у меня возникает впечатление, что поток данных у вас значительно меньше, чем 4096*200mb/s, просто вы полностью распараллеливаете входные пакеты до FIFO. Может быть, можно распараллеливать их после FIFO, чтобы уменьшить его разрядность, и проблема решится сама собой? Для передачи признака конца пакета можно использовать, например, дополнительный бит.

Объяснить сбои можно тем, что при сигнале определённой формы возникает сбой при передаче символов разделения пакетов, от чего всё падает. Например, прошивка FPGA глючит, если входной пакет имеет не ту длину.
Особенность кода 4A в том, что в десятибитной форме он становится 0101010101.


С рассинхронизацией вопрос решил, просто это уже был побочный эффект переделок прошивки. А на счет символов 0х4А я нашел упоминания об этом и других символах, а именно в 8/10 bit encoding. В протоколе SRIO это реализовано на PHY уровне. 4А это b'01001010, и это из специальных символов, там есть и другие. Я пока мало нашел, потому что из разных источников по копейке. В одном упоминалось что это последовательность генерируется для постоянной синхронизации между контроллерами в неактивном состоянии. Нашел ещё про d10.2 pattern. Никто про него не слышал?

Timmy, вы его как раз написали, я сейчас только заметил, да d10.2 это та последовательность которую вы написали. Там где она есть я ещё увидел такие слова как " Jitter Tolerance Test Pattern " и "critical phase shifts" в SerDes. Вы это и имели ввиду?

Сообщение отредактировал Kirill_Good - Jul 28 2011, 12:00
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Kirill_Good   Рассинхронизация двух IP FIFO Xilinx   Jul 25 2011, 11:46
- - Hoodwin   а частоты 15 и 30 МГц когерентны или независимы?   Jul 25 2011, 12:41
|- - Kirill_Good   Цитата(Hoodwin @ Jul 25 2011, 16:41) а ча...   Jul 25 2011, 12:59
- - Hoodwin   Тогда еще два вопроса: 1) Почему два FIFO, а не од...   Jul 25 2011, 13:10
|- - Kirill_Good   Цитата(Hoodwin @ Jul 25 2011, 17:10) Тогд...   Jul 25 2011, 13:15
|- - Bad0512   Цитата(Kirill_Good @ Jul 25 2011, 20:15) ...   Jul 26 2011, 09:04
|- - ivanoffer   Не надо ни чего вставлять, все уже придумано и сде...   Jul 26 2011, 09:20
|- - Bad0512   Цитата(ivanoffer @ Jul 26 2011, 16:20) Не...   Jul 26 2011, 14:45
|- - ivanoffer   Не оспариваю очевидные вещи. Учитывать задержку мо...   Jul 26 2011, 15:31
|- - Bad0512   Цитата(ivanoffer @ Jul 26 2011, 22:31) Не...   Jul 27 2011, 03:42
- - Kirill_Good   Спасибо за подсказки! Сообщения про задержки F...   Jul 26 2011, 12:45
- - Timmy   Цитата(Kirill_Good @ Jul 28 2011, 15:47) ...   Jul 28 2011, 13:18
- - Kirill_Good   Цитата(Timmy @ Jul 28 2011, 17:18) Я имел...   Jul 28 2011, 13:28


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

 


RSS Текстовая версия Сейчас: 20th June 2025 - 00:53
Рейтинг@Mail.ru


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