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

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

Сделали модуль на Arria10 10ax022e4f29i3. Предполагали использовать HardIP PCIe. Создал тестовый проект состоящий из одного контроллера Hard PCIe. Однако, на выходе контроллера не увидели частоты 125 МГц (coreclkout_hip =0).

При этом reset_status = 1; rx_is_lockedtoref = 0; rx_is_lockedtodata = 0. Но, serdes_pll_locked = 1!

Сначала думал ref_clk 100 MHz не подается на вход, однако остальная часть схемы прекрасно видит эти 100 МГц (включая сигналтап). Такое чувство, что внутренняя pll в HardIP не заводится. Но в гигибитном трансивере все заводится и locked поднимается...

Первый раз со мной такое, обычно сгенерил контроллер и он сразу заработал. По крайней мере, на предыдущих Arria 5 и Cyclone 5 все работало с полпинка. 

Кстати, этот же проект скомпиленный под KIT'овую плату с Arria10 заработал сразу.

 

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


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

У меня когда не заводилась, я начинал все статусы просматривать. Начиная с прогрузки трансиверов, чтобы выход из резета был строго по документации. 

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


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

22 minutes ago, new123 said:

У меня когда не заводилась, я начинал все статусы просматривать. Начиная с прогрузки трансиверов, чтобы выход из резета был строго по документации. 

Были мысли о резете, пробовали соблюсти все по документации. толку ноль. 

Причем, кит-овая плата вообще без резета на входе завелась. Вытащили ее из ПК и положили на стол, и она завелась нормально, только rx_is_lockedtodata перестала выдавать, что логично.

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


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

30 minutes ago, influenza said:

Были мысли о резете, пробовали соблюсти все по документации. толку ноль.

то есть вы сделали свой контроллер резета? Я тоже так делал, когда проблемный чип был, помогало. Ну а вообще, я предложил просто проследить по статусным сигналам, начиная от Transiever Reconfiguraton, на какой стадии прогрузки что то идет не так, потому уже думать, это быстро вычисляется.

Кстати говоря, мне как то помогло вывести из под готовой sys (которая качается с сайта альтеры) Transiever Reconfiguraton, и завести этот контроллер в главный модуль и соединить руками. Но как потом оказалось, это просто слаки у меня были и такой ход частично помог.

Все таки думаю, я бы сначала статусные сигналы смотрел, идут ли они в последовательности как в доке. В свое время просто заманался так же корку запускать. А, ну и самое то главное, ltssm то смотрели? На какой стадии все зависает? Код ltssm. Если вдруг он продвинулся дальше, то там в доке есть рекомендации что сделать. Хотя если 125 не увидели, ltssm смотреть толку нет, корка из резета не вышла.

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

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


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

4 hours ago, influenza said:

проект состоящий из одного контроллера Hard PCIe

Т.е. больше ничего? 

Может, Квартус не вывел этот сигнал, раз он не нужен дальше... (хотя должен идти дальше на реконфигурационный драйвер...)  Попробовать прикрутить к нему триггер и вывести сигнал с него на ножку микросхемы...

100 МГц refclk - с разъема PCIe? А на реконфигурационный контроллер клок откуда подается, с дополнительного генератора? (хотя, думаю, это неважно)

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

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


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

Это то и странно, из резета не вышла, pll в Hardip частоту не залочила. Хотя в гигабитном трансивере pll входную частоту залочила. До ltssm дело не доходит - все в сбросе. Полярность сброса даже меняли - не помогло))

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

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


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

2 hours ago, influenza said:

из резета не вышла

это сигнал, который 

19 hours ago, influenza said:

reset_status = 1

?

Кажется - он 0 = reset, а 1 = не reset.

Как понимаю, эта плата - самодельная? Т.е. "сделали модуль" - не понятно, что имеется в виду.

А кроме refclk с PCIe еще  клок приходит на FPGA?

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


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

Плату разработали сами.

reset_status = 1 - это значит контроллер в сбросе. это точно.

есть еще частота 25 МГц с генератора общего назначения, для других потрохов ПЛИС. К PCIe не относится. Для PCIe только refclk получается..

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


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

rx_busy, tx_busy что показывает?

5 minutes ago, influenza said:

Плату разработали сами.

reset_status = 1 - это значит контроллер в сбросе. это точно.

у меня в SV, reset_status  = Active low reset signal. Только что посмотрел в доке

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


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

Попробую все таки еще раз сказать. Когда у меня были проблемы с плис, я руками создавал reset sequence (свой резет контроллер) и тогда выводил hard ip core из резета сам.

Нечто подобное для моего SV. У меня была проблема, что один из трансиверов на RX не заводился по дефолтному резету, пришлось делать самому.

 

Снимок экрана от 2019-05-15 13-57-22.png

Снимок экрана от 2019-05-15 13-56-57.png

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

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


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

Так а что с тактированием реконфигурационного контроллера?

Он у Вас вообще есть?

У меня в свое время была мысль попробовать тактировать его от refclk, а потом - пришли другие мысли, ну и поскольку еще цена вопроса дополнительного 100 МГц генератора - копейки, решил даже и не экспериментировать.

 

nreset status (так точно называется, когда выходит из корки) идет у меня на несколько входов reset_n разных блоков, из чего делаю вывод - 0 = reset)

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

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


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

ну да, nreset_status active low.

Я пишу про reset_status, который на figure 8-2 выше. Стоит в 1.

Реконфигурационного контроллера нет.

 

Пробовал не perst подавать меандр длительностью ~200 мс и 2 сек. Ничего не меняется. 
 

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


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

3 minutes ago, influenza said:

Реконфигурационного контроллера нет.

У Вас PCIe Gen1? Где-то в доках было, что для такого только можно без этого контроллера. А если Gen2 или 3 - то нужно его добавлять.

Или у Вас более новый IP, где он уже внутрях интегрирован и явно снаружи не виден. Если внутри - у меня есть предположение, что его как-то тактировать нужно, и не refclk.

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


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

21 hours ago, influenza said:

этот же проект скомпиленный под KIT'овую плату с Arria10 заработал сразу.

Проверьте, что там за клоки подаются на FPGA кроме refclk.

Уровень reset_status на рабочей плате - проверяли, стоит 0?

Подозреваю, с обозначением сигналов может быть путаница, т.к. на картинке он reset_status, а из корки выходит nreset_status.

Ну и в Альтеровских блоках (которые есть в Квартусе) - в памяти, например, reset, в DMA reset_n. И этот nreset_status идет на оба напрямую.

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


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

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

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

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

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

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

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

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

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

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