Перейти к содержанию
    

Нестабильно работает трансивер Kintex7

Занимаюсь сейчас SATA на плате с Kintex7 и уперся в некоторый тупик - поведение трансивера меняется от ресета к ресету и, чаще всего, не обеспечивает нормальной работы.

Сгенерирован стандартный пример на 3 ГБит/с с минимумом изменений, для процедуры сброса используется встроенный контроллер, т.е. снаружи сброс подается только сигналом soft_reset. Далее я наблюдаю происходящее после сброса, ориентируясь главным образом на признак rxnotintable, говорящий об ошибке на нижнем уровне при 10b/8b-декодировании внутри трансивера (ну и заодно rxdisperr).

 

Я вижу что:

1. Иногда (1 случай из 20) все работает нормально, правда с периодом в минуту-пять-полчаса может проскочить одиночная ошибка (тоже ведь не нормально или как?)

2. В большинстве случаев после прохождения процедур OOB начинают сыпаться ошибки (сразу или через некоторое время). При этом alignment обычно проходит, а вот дальше уже все тухло. От случая к случаю ошибки могут вылезать или длинными периодами, или быть перманентными (например каждое четвертое принятое слово - с ошибкой).

 

Будь это моя собственная логика, я бы списал на асинхронщину, клоки/сбросы и т.п. Ну тут все происходит внутри адской коробочки и как быть непонятно.

 

На данный момент я успел проверит следующее:

 

1. Тупой тест с PRBS на базе готового примера через loopback-кабель проходит - то есть линия сама по себе целая. IBERT тест к сожалению запустить не удается. По невыясненным причинам вивада говорит, то debug-ядра внутри проекта нет (или клока нет). Хотя берется готовый пример,а клок тот же, что и в рабочем проекте.

2. Был найден AR# 53364 с указанием какие параметры задавать RX CDR для разных протоколов. Ни к каким видимым эффектам не привело.

3. Поигрался с разными режимами эквалайзера, впрочем не особо понимая их внутреннюю физику. Опять-таки видимого результата нет.

4. Естественно попробовал разные кабели и несколько жестких дисков.

5. Тайминги в проекте вроде как проходят, но даже если бы не проходили - это все снаружи, а проблемы начинаются непосредственно с приема внутри трансивера.

6. Кое где были упоминания про длительную настройку эквалайзера, которая может мешать начальной процедуре установления соединения. Возможно, но по крайней мере по ее окончании я должен получать из линии символы без ошибок - а сыпятся rxnotintable.

 

 

Может кто-то боролся с похожими проблемами и может навести на след проблемы?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

MMCM сбрасываете вместе с soft_reset? Может забыли подождать пока он залочится?

У меня сбоев в течении нескольких часов к ряду не наблюдается, не должно такого быть. Эластичный буфер включен?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

MMCM сбрасываете вместе с soft_reset? Может забыли подождать пока он залочится?

У меня сбоев в течении нескольких часов к ряду не наблюдается, не должно такого быть. Эластичный буфер включен?

 

Буферы включены. Со сбросом вроде честно - непосредственно при работе с трансивером MMCM не используется, задействована только частота, приходящая прямо с GTX (linespeed/20, и usrclk и usrclk2 - одинаковая). Впрочем MMCM тоже ставить пробовал (естественно задействуя его lock для сброса) - без разницы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что за плата? Что за опорный генератор? Как дела обстоят с терминацией (такта и данных)? Используете ли вы FSM для сброса, которая идет с примером к GTX визарду? - были там какие-то заморочки. Можно наверно выложить трансивер сюда на форум.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если плата самодельная, то я бы в первую очередь проверил тактирование. Трансиверы очень критичны к качеству тактового сигнала, если джиттер клока выходит за рамки дозволенного, то будут происходить как раз периодические ошибки или даже потеря линка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вполне может оказаться что Вы так и не решите эту проблему. Знакомые ребята заложились на Kintex7 и не смогли надежно запустить SATA, даже в усеченном виде, с поддержкой только перекачки данных. Когда стали разбираться и задавать вопросы Xilinx, те тупо открестились что они нигде не сказали, что можно реализовать SATA на Xilinx. И даже на сайте Xilinx нет родных корок SATA, можно найти корку от третьестороннего разработчика, в спецификации есть пунктик "SATA spec validated NO". Я бы постарался не связываться с Kintex и вообще с Xilinx, у них там где то глубоко, не помню в чем, есть засада с трансиверами, которая не позволяет реализовать SATA. Переходите на Altera, там вроде ситуация намного лучше. Не проверял, но навскидку они явно рекламируют свои IPCore SATA.

Изменено пользователем silantis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вполне может оказаться что Вы так и не решите эту проблему. Знакомые ребята заложились на Kintex7 и не смогли надежно запустить SATA, даже в усеченном виде, с поддержкой только перекачки данных. Когда стали разбираться и задавать вопросы Xilinx, те тупо открестились что они нигде не сказали, что можно реализовать SATA на Xilinx. И даже на сайте Xilinx нет родных корок SATA, можно найти корку от третьестороннего разработчика, в спецификации есть пунктик "SATA spec validated NO". Я бы постарался не связываться с Kintex и вообще с Xilinx, у них там где то глубоко, не помню в чем, есть засада с трансиверами, которая не позволяет реализовать SATA. Переходите на Altera, там вроде ситуация намного лучше. Не проверял, но навскидку они явно рекламируют свои IPCore SATA.

 

Конечно, люди сталкиваются с проблемами при реализации SATA на Kintex-7, но вроде бы успешно их решают. Есть там не мало тонкостей, но это не значит что нельзя сделать стабильную конфигурацию. тыц

Кстати, надеяться что визард вам все настроит, это сомнительно. На Virtex-6, по крайней мере, пришлось основательно разобраться какой параметр за что отвечает и править руками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вполне может оказаться что Вы так и не решите эту проблему. Знакомые ребята заложились на Kintex7 и не смогли надежно запустить SATA, даже в усеченном виде, с поддержкой только перекачки данных. Когда стали разбираться и задавать вопросы Xilinx, те тупо открестились что они нигде не сказали, что можно реализовать SATA на Xilinx. И даже на сайте Xilinx нет родных корок SATA, можно найти корку от третьестороннего разработчика, в спецификации есть пунктик "SATA spec validated NO". Я бы постарался не связываться с Kintex и вообще с Xilinx, у них там где то глубоко, не помню в чем, есть засада с трансиверами, которая не позволяет реализовать SATA. Переходите на Altera, там вроде ситуация намного лучше. Не проверял, но навскидку они явно рекламируют свои IPCore SATA.

 

Очень похоже на агитацию за "советскую власть".

 

По делу - вот корки для работы с SATA для Xilinx.

Все ок с ними.

http://www.intelliprop.com/sata-bridge-videos-demos.htm

Кому надо - у меня есть контакты человека из этой конторы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что за плата? Что за опорный генератор? Как дела обстоят с терминацией (такта и данных)? Используете ли вы FSM для сброса, которая идет с примером к GTX визарду? - были там какие-то заморочки. Можно наверно выложить трансивер сюда на форум.

 

Плата самопадельная, что вносит некоторые опасения. Клоки идут с PLL TI CDC62005. От нее же тактируется много всего еще, в том числе Serial RapidIO 5.0Gbps на той же FPGA (и вроде работает).

Да, использую встроенный FSM для сброса. Изначально рисовал на бумажке по юзергайду, хотел сделать сам - но в итоге то, что генерирует встроенный контроллер совпало с моими представлениями.

Вот с терминацией вопрос хороший оказался. Я стал уже сам смотреть и выяснилось, что схему делали из общих соображений, поставив разделительные конденсаторы по 100 нФ на приемной линии. А в sata просят не более 12 нф, причем ставят с обеих сторон и на приемник и на передатчик. Сейчас коллеги думают как быть... Но у меня сомнения в том, что это корень проблемы...

 

 

Кстати, надеяться что визард вам все настроит, это сомнительно. На Virtex-6, по крайней мере, пришлось основательно разобраться какой параметр за что отвечает и править руками.

 

На счет править руками настройки визарда - пока только RXCDR_CFG, больше не накопал ничего. Остальное либо вещи функциональные, которые вроде и не надо трогать, либо настолько невнятные, что остается только 2^n комбинаций перебирать. Может порекомендуете, какого рода настройки вам пришлось править?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот с терминацией вопрос хороший оказался. Я стал уже сам смотреть и выяснилось, что схему делали из общих соображений, поставив разделительные конденсаторы по 100 нФ на приемной линии. А в sata просят не более 12 нф, причем ставят с обеих сторон и на приемник и на передатчик. Сейчас коллеги думают как быть... Но у меня сомнения в том, что это корень проблемы...

 

Не забывайте что на такт тоже требуются разделительные конденсаторы по 0,1 мкФ.

 

На счет править руками настройки визарда - пока только RXCDR_CFG, больше не накопал ничего. Остальное либо вещи функциональные, которые вроде и не надо трогать, либо настолько невнятные, что остается только 2^n комбинаций перебирать. Может порекомендуете, какого рода настройки вам пришлось править?

В моем случае была проблема с TXDIFFCTRL. Визард ставил 4'b0000 вместо 4'b1000. Но в этом случае вообще ничего не работало.

 

Убедитесь перед работой что все такты устаканились. При появлении ошибок эластичного буфера его нужно сбросить, иначе может не заработать. Ну и в принципе, не плохо было бы промониторить его работу. Воспринимает ли он ALIGNp...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не забывайте что на такт тоже требуются разделительные конденсаторы по 0,1 мкФ.

 

Да, это есть.

 

В моем случае была проблема с TXDIFFCTRL. Визард ставил 4'b0000 вместо 4'b1000. Но в этом случае вообще ничего не работало.

 

Увы, там по умолчанию уже стоит 1000. Пробовал увеличить - без разницы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вполне может оказаться что Вы так и не решите эту проблему. Знакомые ребята заложились на Kintex7 и не смогли надежно запустить SATA, даже в усеченном виде, с поддержкой только перекачки данных. Когда стали разбираться и задавать вопросы Xilinx, те тупо открестились что они нигде не сказали, что можно реализовать SATA на Xilinx. И даже на сайте Xilinx нет родных корок SATA, можно найти корку от третьестороннего разработчика, в спецификации есть пунктик "SATA spec validated NO". Я бы постарался не связываться с Kintex и вообще с Xilinx, у них там где то глубоко, не помню в чем, есть засада с трансиверами, которая не позволяет реализовать SATA. Переходите на Altera, там вроде ситуация намного лучше. Не проверял, но навскидку они явно рекламируют свои IPCore SATA.

Объясните как же SATA 3G у нас работает на Xilinx Virtex6? Причём на древнем отладочнике ML605 много Б/У, с припаянным советскими проводами МГТФ к FMC разъёму SATA коннектором ?

"Родных корок SATA" на сайте нет, потому что и у конкурентов их нету: "Altera's partners developed SATA and SAS IP for both host and device interfaces". На xilinx.com тоже ссылка на сторонних разработчиков, которые за десятки килобаксов барыжат корками. Вообще в целом у Альтеры кол-во платных ядер поболее будет.

 

:bb-offtopic:

А ещё документация у Альтеры написана очень мутно. Недавно захотели выяснить могут ли serdes'ы Arria V работать в DDR режиме, перечитали несколько раз волшебный Handbook - не нашли.

Помнится уважаемый DES00 писал, что Стратихс 4 так не умеет делать, вот и захотели посмотреть не научилась ли Arria V, делать то, что давно умеют делать все FPGA хилых, начиная с Virtex4 (V4,V5,V6,V7,S6,A7,K7).

Даже яндекс про это слышал: http://electronix.ru/forum/index.php?showtopic=94403

Вот и непонятно - толи доки кривые, толи так действительно до сих пор не умеют и боятся сказать прямо об этом.

У хилых такие базовые вещи, как режимы работы сердезов, расписаны досконально.

 

З.Ы. Чуток похоливарили и хватит:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, в даташите пишут что нельзя верить сигналу RXBYTEISALIGNED - это учли?

 

В смысле вот это?

 

In systems that use the RX OOB block, such as PCIe and SATA, after locking to a valid byte boundary and asserting the RXBYTEISALIGNED signal, the byte align block might occasionally deassert the RXBYTEISALIGNED signal even when there is no change in the byte boundary. In such applications, RXBYTEISALIGNED should not be used as a valid indicator of the change in byte boundary after the first assertion.

 

Ага. Но на практике я такой ситуации пока не наблюдал...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вполне может оказаться что Вы так и не решите эту проблему. Знакомые ребята заложились на Kintex7 и не смогли надежно запустить SATA, даже в усеченном виде, с поддержкой только перекачки данных. Когда стали разбираться и задавать вопросы Xilinx, те тупо открестились что они нигде не сказали, что можно реализовать SATA на Xilinx. И даже на сайте Xilinx нет родных корок SATA, можно найти корку от третьестороннего разработчика, в спецификации есть пунктик "SATA spec validated NO". Я бы постарался не связываться с Kintex и вообще с Xilinx, у них там где то глубоко, не помню в чем, есть засада с трансиверами, которая не позволяет реализовать SATA. Переходите на Altera, там вроде ситуация намного лучше. Не проверял, но навскидку они явно рекламируют свои IPCore SATA.

"Переходи на тёмную сторону, у нас есть печеньки!" (с)

 

У нас SATA отлично работает в Kintex7. Большая часть проблем - собственные ляпы и особенности работы отдельных моделей винчестеров. Но это уже уровень транспортника, к кристаллу не имеет отношения. С физикой вопросов не было.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...