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

Проблема с PCIe в Arria10.

2 hours ago, influenza said:

что не завели user_clk

это чего за зверь такой?

pci корка тактируется двумя клоками:

1) Непосредственно refclk, который можно взять со слота pcie, либо свой от куда нибудь с платы
2) Затактировать реконфигурейшен контроллер (может у вас это и есть user_clk), тоже 100Mhz или 125. Я прям беру тот же клок со слота.

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


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

1 minute ago, new123 said:

Я прям беру тот же клок со слота

Я побоялся его брать - не уверен, что все материнки всегда его там поддерживают не снимая.

Возможно, в BIOSе компа это управляется, не стал рисковать.

Где-то в описании PCIe корки его параметры указаны, кажется (но не точно) , что он может быть и меньше 100 МГц.

Но если у ТС не завели его на ноги микросхемы на самодельной плате - то попробовать можно в качестве его взять refclk со слота PCIe. Или попробовать имеющуюся 25 МГц использовать - напрямую или через PLL поднять до 100МГц.

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


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

1 minute ago, Yuri124 said:

Где-то в описании PCIe корки его параметры указаны, кажется (но не точно) , что он может быть и меньше 100 МГц.

Gen1 можно еще завести с ~62Mhz (точно не помню). А так в настройке корки выставляется только или 100 или 125.

3 minutes ago, Yuri124 said:

Или попробовать имеющуюся 25 МГц использовать - напрямую или через PLL поднять до 100МГц.

Я кстати пробовал так. Сильно от чипа зависит. Надо чтобы pll была в том же банке, где hard ip. Учитывая, что сама корка занимает гору pll в этом же банке, дизайн можно не уместить

 

6 minutes ago, Yuri124 said:

Я побоялся его брать - не уверен, что все материнки всегда его там поддерживают не снимая.

если не конфигурировать ПЛИС через pcie на старте, то да, можно с платы с какой нить pll взять. Так многие альтеровские доски и делают.

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


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

1 minute ago, new123 said:

Gen1 можно еще завести с ~62Mhz (точно не помню). А так в настройке корки выставляется только или 100 или 125.

Я про другой клок - который на реконфигурационный контроллер идет. Он независим от PCIe. Там то ли от 70 МГц можно клок использовать, не помню уже.

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


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

Проверьте генератор на соответствие PCIe, была похожая проблема, эзернет трансиверы заводились с полпинка, а PCIe не поднимался.

Проблема оказалась в генераторе, что-то со спектром, точно уже не помню, дело было года 2 назад.

Заменили генератор и все заработало.

 

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


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

Кстати, интересный вопрос - каков алгоритм отладки, когда на Stratix-V не поднимается линк на PCI Express?

Есть плата, на которой все работает, и вторая, где то же самое ядро (Hard IP, самое простое сгенеренное из визарда) не заводится. Само собой, материнка после неудачных попыток соединения отключает тактовый сигнал.

С чего начать разбираться?

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


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

40 minutes ago, Flood said:

С чего начать разбираться?

я тут уже не раз написал как делал это я. 

1) Если не вышла из резета корка, то выводим в сигналтап (в визарте активируем все статусные сигналы корки и статусные сигналы реконфигурейшен контроллер), либо в какие логи полностью всю последовательность Reset Sequence сигналов и сверяем с документацией. Вся последовательность сигналов при выходе из резета должна выглядеть 1 в 1 как по мануалу. Если что то пошло не так, смотреть какой там сигнал залип и думать чего с ним делать.

2) Если из резета вышла, но застряла. Смотрим ltssm, открываем мануал. В конце есть раздел Debug..... Смотрим на каком этапе застрял ltssm и выполняем рекомендации

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

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


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

10 hours ago, Flood said:

С чего начать разбираться?

Проблемы с железом (питание, тактовые генераторы, конденсаторчики развязывающие в трансиверах, пайка микросхемы, плата) тоже бы не исключал.

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


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

Генератор меняли. Не помогло. Ранее тоже были подобные проблемы с гигабитными трансиверами, работали нестабильно. стали использовать клок с внутренней pll и все заработало стабильно. С PCIe так не прокатывает.

Здесь неоднократно упоминали реконфигурационный контроллер. Имею квартус 18.1 и ПЛИС Arria10 022. Не могли бы Вы "пальцем ткнуть" где взять реконф. контроллер? И куда его цеплять к корке? 

Кстати, не стоит забывать что этот же проект прекрасно заработал на КИТе.

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


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

1 hour ago, influenza said:

не стоит забывать что этот же проект прекрасно заработал на КИТе.

Вот потому я про железо в первую очередь.

1 hour ago, influenza said:

реконфигурационный контроллер

Это в старой корке PCIe, которая была еще в 13-м Квартусе - там кроме собственно PCIe к нему цепляются два блока - alt_xcvr_reconfig и pcie_reconfig_driver, работающие в паре и нужные для динамической "подстройки" трансиверов.

Эта связка в готовом виде со всеми подключениями есть в альтеровских примерах, работает из коробки. Только в головном файле top_msgdma_ep_g2x4 я, возможно, подправил логические уровни на проводах test_in[31:0] в соответствии с описанием корки.

Позже Альтера выпустила корку поновее, во встроенным DMA. Там, вполне возможно, эти контроллер и драйвер уже встроены внутри и для пользователя явно не видны. Но мой CycloneV полноценно ее не потянул (PCIe заработало сразу, но с внутренними блоками памяти нужного размера времянка не сходилась на 10-15%, хотя и работало). ArriaV самая медленная - времянка сошлась с запасом.

 

Вот написал "эти контроллер и драйвер уже встроены внутри и для пользователя явно не видны" - а ведь это запускалось на том же ките, с теми же клоками - один клок для трансиверов и PCIe - 100МГц со слота PCIe материнки, второй - 100МГц - с генератора на ките.

Вот еще вспомнил - когда сделал свою плату, но немного на другом кристалле (попроще), чем на ките, и в Квартусе поменял микросхему и, естественно, порты микросхемы - не хотел работать этот генератор - он был заведен в блок с трансиверами !!! (т.е. сигнал не проходил внутрь проекта, кажется, PCIe не работал). И не помню уже, что там было с ворнингами. Но я на всякий случай заложил еще один такой же генератор на свою плату, на другие ноги микросхемы - с ним все запускалось без проблем. 

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

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

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


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

1 hour ago, Yuri124 said:

и pcie_reconfig_driver

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

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


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

2 hours ago, influenza said:

десь неоднократно упоминали реконфигурационный контроллер.

качнул готовую корку для вашей Арии 10 с дма контроллером, там его действительно нет. Интересно, может уже и не надо

Но есть галка Enable Dynamic Transciever Reconfig и появляются интерфейсы для него. Я бы попробовал цепануть, у меня без него плохо все работало

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


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

1 hour ago, new123 said:

тоже стартует, но в боевых условиях не проверял, все же решил оставить

Думаю - правильно. У альтеры было где-то workaround кажется при загрузке через PCIe, какой-то трабл с этими контроллерами. Заключался этот workaround в том, что тупо какое-то число цеплялось вместо конроллера (или драйвера, не помню). Т.е. без них - работать может и будет (но, вполне вероятно, нужно при старте что-то прописать в регистры, управляющие трансиверами). Но как долго - хз, т.к. от температуры, разброса параметров плат, от экземпляра к экземпляру может потребоваться подстройка трансиверов.

А так альтера писала, что при 2,5ГГц они не нужны.

1 hour ago, new123 said:

качнул готовую корку для вашей Арии 10 с дма контроллером

А клоки какие туда подаются (ну, кроме refclk)?

 

 

Вот еще подумал - т.к. плата самодельная, может такое быть, что PCIe не выходит из reset из-за плохого качества сигнала (плохая разводка или что-то с деталями) трансиверов, хотя трансиверы запускаются и PLL работает...

Вроде как и нелогично такое поведение, но...

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

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


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

Разобрались.

У Арии10 есть вход CLKUSR. На него требуется подавать 100-125 МГц. "This pin is used as the clock for transceiver calibration...". (pcg-01017.pdf)

Припаяли генератор 100 МГц.

Все заработало, coreclk_out пошел, линки поднялись.

Вообщем не дочитали доки, когда Э3 делали. Теперь на этот вход надо подавать 100 МГц всегда, если используешь гигибитные трансиверы.

При старом режиме такого не было... )))

 

Всем спасибо, учитесь на наших ошибках)

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


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

Quote

This pin is used as the clock for transceiver calibration...". (p

поздравляю. ВСе таки дело в реконфигурации трансиверов

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


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

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

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

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

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

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

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

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

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

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