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

 
 
 
Reply to this topicStart new topic
> Spartan6: странное поведение GTP
olegras
сообщение Dec 23 2013, 13:00
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



Суть проблемы: Камень XC6SLX75Т-3 с двумя GTP_DUAL tile. В каждом tile GTP0 настроен как трансивер SATA, GTP1 не используется. Между GTP0 - заворот SATA кабелем.
Атрибуты GTP - на основе визарда + ug386. При синтезе для скорости SATA2 - GTP видят данные друг друга без сбоев, как примитивы, так и данные.
При синтезе для скорости SATA1 - один из трансиверов работает стабильно, на передаче второго - абракадабра. Прием второго работает нормально.
Поиск в сети возможных решений навел на факт, что с подобным поведением сталкивались уже несколько разработчиков. Ни в одном случае решение так и не предложено.
Настройки и перенастройки GTP (ессно по ug386) ни к чему хорошему не привели sm.gif.
Каждым из GTP подключался и к материнке (как device), и и к HDD (как host). Поведение одинаково: при 3 Гб/с линк проходил в обе стороны, как в спецификации SATA. При 1,5 Гб/с на одном GTP линк происходит стабильно, на втором - после обмена OOB сигнализацией ответная сторона не видит корректных сигналов от GTP.
Собственно поэтому и пришлось переходить к завороту кабелем. Так определил, что проблема именно в TX.
Кто что может посоветовать?
Да, имеется две одинаковых платы. Обе имеют одинаковое вышеописанное поведение, т.е. не корректно работает передатчик одного и того же GTP.

На "неисправном" GTP после дергания GTPRESET -> TXBUFSTATUS(1) выставляется в единицу практически сразу вместе с RESETDONE. То есть происходит немедленное событие переполнения буфера передачи. А вот вследствии чего - никак не могу разобраться. Пробовал отдельно дергать TXRESET (как приписано в ug386) - поведение такое же: при установлении в единицу RESETDONE сразу же выставляется и TXBUFSTATUS(1).

Сообщение отредактировал olegras - Dec 23 2013, 13:03
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Dec 23 2013, 13:05
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933



В виртексе шестом такая проблема была, визард лажал с параметрами, а именно нужно:
Код
        TXDIFFCTRL                      =>      "1000",--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            --/*The Transmitter Differential Voltage Swing is set by the TXDIFFCTRL parameter
        -- in the GTX transceivers. It defaults to 4'b0000 resulting in a voltage of 110 mV p-p.
        -- Set it to 4'b1000 to raise the voltage to 810 mV p-p. (Refer Pg 174 of V6 GTX user guide).
        -- This is necessary for the transmission of OOB signals during PHY Initialization. */


Может поможет?


--------------------
Go to the top of the page
 
+Quote Post
olegras
сообщение Dec 23 2013, 13:12
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



Цитата(dm.pogrebnoy @ Dec 23 2013, 17:05) *
В виртексе шестом такая проблема была, визард лажал с параметрами, а именно нужно:


Игрался я с этим параметром. Ставил о 0000 до 1111. Результат одинаковый. И вообще как я понял этот параметр в основном играет роль для OOB сигнализации, а она у меня проходит без проблем. Проблемы начинаются при передаче данных. Причем как примитивы, так и данные передаются одинаковой кашей. А второй GTP абсолютно стабилен...
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Dec 23 2013, 13:19
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933



Помнится была жесть когда такт как-то криво завел - схему тактирования можете привести здесь?. Что говорит RXBYTEISALIGNED?


--------------------
Go to the top of the page
 
+Quote Post
olegras
сообщение Dec 23 2013, 14:55
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



Цитата(dm.pogrebnoy @ Dec 23 2013, 17:19) *
Помнится была жесть когда такт как-то криво завел - схему тактирования можете привести здесь?. Что говорит RXBYTEISALIGNED?

Схему тактирования представлю завтра. Но проблема врядли из-за нее - на 3 Гб/с ведь работает. RXBYTEISALIGNED выведу в чипскоп и отпишусь.


Завернул tx на rx "неисправного" GTP. Передаю константу, через каждые 254 дворда - два ALIGN. RXBYTEISALIGNED всегда единица. На приеме вместо данных и примитивов - каша.

Схема тактирования
Прикрепленное изображение


Не могу понять как создать новое сообщение а не писать в старом sad.gif

Сообщение отредактировал olegras - Dec 23 2013, 15:02
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Dec 23 2013, 16:39
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933



Что-то такое впечатление, что usrclk2 должен быть в два раза быстрее.... Надо подумать.


--------------------
Go to the top of the page
 
+Quote Post
olegras
сообщение Dec 23 2013, 16:49
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



Цитата(dm.pogrebnoy @ Dec 23 2013, 19:39) *
Что-то такое впечатление, что usrclk2 должен быть в два раза быстрее.... Надо подумать.


usrclk2 рассчитан точно. По юзергайду. usrclk2 = usrclk/4, где 4 - ширина входных данных в байтах. На SATA2 работает как часы. Да и на SATA1 один из GTP работает нормально. У второго глючит только TX. PLL работает нормально - выводил клоки (через делитель) и смотрел осциллографом. BUFGMUXы выводят то что и ожидается. Переключение клоков не динамическое - своя прошивка на каждую скорость. Глючит TX верхнего GTP.
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Dec 23 2013, 21:10
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933



Да с клоком кажется все в порядке, ещё два вопроса - что за опора 150М и как там в Спартане на насчёт DCI?
Кстати, не такая ли проблема как тут тыц я имею ввиду времянки


--------------------
Go to the top of the page
 
+Quote Post
olegras
сообщение Dec 24 2013, 05:31
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



опора - DS4625P 150МГц.
Насчет ссылки - очень похоже на мой случай, только у него похоже не корректно работает RX. Я писал vicg в личку, он говорит что проблема до конца так и не решилась. Готов разобрать представленные времянки если кому интересно, да и вопросы автору надо позадавать. Но vicg говорит что проект уже сдан/закрыт.
DCI - что это? Digitally Controlled Impedance? (С Виртексами не работал, изучать пока нет времени).
Go to the top of the page
 
+Quote Post
olegras
сообщение Dec 25 2013, 11:11
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



Заработало.
В настройках "неисправного" GTP значение атрибута PMA_TX_CFG установил в "00". В юзергайде про этот атрибут написано "Reserved. Use only recommended values from the Spartan-6 FPGA GTP Transceiver Wizard". Визард дает значение "11". Чем управляет атрибут я так и не понял, понял только что какими-то параметрами передачи.

Тему можно закрывать. Всем спасибо.
Go to the top of the page
 
+Quote Post
Alex77
сообщение Dec 25 2013, 12:46
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695



Цитата(olegras @ Dec 25 2013, 15:11) *
Заработало.
В настройках "неисправного" GTP значение атрибута PMA_TX_CFG установил в "00". В юзергайде про этот атрибут написано "Reserved. Use only recommended values from the Spartan-6 FPGA GTP Transceiver Wizard". Визард дает значение "11". Чем управляет атрибут я так и не понял, понял только что какими-то параметрами передачи.

Тему можно закрывать. Всем спасибо.

А в настройках "исправного" GTP какое значение визардом устанавливалось ?
Go to the top of the page
 
+Quote Post
olegras
сообщение Dec 25 2013, 13:06
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



Цитата(Alex77 @ Dec 25 2013, 16:46) *
А в настройках "исправного" GTP какое значение визардом устанавливалось ?

Дико извиняюсь: не PMA_TX_CFG а TX_TDCC_CFG (не то скопипастил).
Повторюсь: камень с двумя GTP. Для скоростей 1,5 и 3 Гб/с для обоих GTP визард устанавливает TX_TDCC_CFG => "11". На скорости 3 Гб/с оба GTP работают как надо. На скорости 1,5 Гб/с один из GTP работает как надо, у второго неправильно работает передача. Установил TX_TDCC_CFG => "00" только для "глючного" GTP и все заработало: оба GTP корректно работают как на 1,5, так и на 3 Гб/с. Очень хотелось бы узнать что этот атрибут конфигурирует...
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Dec 25 2013, 14:24
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933



У vicg TX_TDCC_CFG был по нулям, кстати.


--------------------
Go to the top of the page
 
+Quote Post
olegras
сообщение Dec 25 2013, 14:32
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



Цитата(dm.pogrebnoy @ Dec 25 2013, 17:24) *
У vicg TX_TDCC_CFG был по нулям, кстати.

Так может ему стоило установить "11"? sm.gif Это я к тому что вполне может оказаться что этот атрибут зависит от чего угодно: от версии визарда, от ревизии камня, от способа тактирования ...
TDCC это скорей всего какой-нибудь хх Clock Correction.
Go to the top of the page
 
+Quote Post

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

 


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


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