novartis 0 31 мая, 2016 Опубликовано 31 мая, 2016 · Жалоба Пытаюсь запустить проект для платы XPRESSGX5-LPA7SE-GEN3 от Reflexces. Я его уже и так и эдак. Взял пример, который генерится в qsys, его и эксплуатирую. Вот сигнал тап что показывает: Как я понимаю: serdes_pll_locked = 1 - частота захвачена, то етсь 100МГЦ с разъема pcie подается, reset_status = 0 - не под сбросом находится, npor, perstn = 1 - сброса нет. А LTSSM = 00001: Detect.Active. Как это правильно интерпретировать? Корка не может pcie линки обнаружить или что? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 31 мая, 2016 Опубликовано 31 мая, 2016 (изменено) · Жалоба Здравствуйте. Что-то у вас на этапе детектирования сторон не проходит. Либо хост не видит плату, либо наоборот. Приёмная сторона терминирование включает для того, чтобы ответная сторона её детектировала. Пробовали ли на другой матери? Не повреждены ли конденсаторы на плате на линиях PCIe? Не знаю как на альтере (думаю там всё так же), надо проверить RX_ELECIDLE пин на корке PCIe, он отвечает за то, что хост увидел плату. Изменено 31 мая, 2016 пользователем Inanity Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novartis 0 1 июня, 2016 Опубликовано 1 июня, 2016 · Жалоба Спасибо за ответ! Решил добавить в сигнал тап еще сигналы (какие то внутренние). Скомпилил проект, залил, в сигнал тапе вижу LTSSM = 0x0F, то есть плата перешла в нормальное рабочее состояние! В jungo windriver тоже свою плату вижу, можно драйвер сгенерить. Тут же перезаливаю прошивку - LTSSM = 0x01. Опять перезаливаю прошивку - LTSSM = 0x0F. SDC файл в проект добавлен. Указаны частоты 100МГц - реф клок для pcie, 125МГц - для компонентов реконфигурации трансиверов, 100МГц - для светодиодов. Тайм квест говорит, что все констрейны удовлетворены. Что же делать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 1 июня, 2016 Опубликовано 1 июня, 2016 (изменено) · Жалоба Тут же перезаливаю прошивку - LTSSM = 0x01. Опять перезаливаю прошивку - LTSSM = 0x0F. А вы перезагружаете хост после заливки прошивки? Я не уверен, что обычный PCIe умеет hotplug (вот expresscard умел). Если ваша плата поддерживает внешнее питание, то по идее нужно питать отдельно от хоста, конфигурировать ПЛИС и только после этого включать хост. Если это невозможно, то нужно каждый раз зашивать конфигурирующую память (И, кстати, если ПЛИСина жирная, то нужно, чтобы она успела законфигурироваться после подачи питания. Там вроде для PCIe 100ms допустимо). И ещё, насколько я помню, после link training плата должна в состоянии 0x16 находиться, т.е. L0. Изменено 1 июня, 2016 пользователем Inanity Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_su 1 1 июня, 2016 Опубликовано 1 июня, 2016 · Жалоба Спасибо за ответ! Решил добавить в сигнал тап еще сигналы (какие то внутренние). Скомпилил проект, залил, в сигнал тапе вижу LTSSM = 0x0F, то есть плата перешла в нормальное рабочее состояние! В jungo windriver тоже свою плату вижу, можно драйвер сгенерить. Тут же перезаливаю прошивку - LTSSM = 0x01. Опять перезаливаю прошивку - LTSSM = 0x0F. SDC файл в проект добавлен. Указаны частоты 100МГц - реф клок для pcie, 125МГц - для компонентов реконфигурации трансиверов, 100МГц - для светодиодов. Тайм квест говорит, что все констрейны удовлетворены. Что же делать? Добрый день. После перезаливки конфигурации попробуйте в диспетчере устройств выполнить поиск устройств. Удачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 1 июня, 2016 Опубликовано 1 июня, 2016 · Жалоба А вы перезагружаете хост после заливки прошивки? Я не уверен, что обычный PCIe умеет hotplug (вот expresscard умел). Если ваша плата поддерживает внешнее питание, то по идее нужно питать отдельно от хоста, конфигурировать ПЛИС и только после этого включать хост. Если это невозможно, то нужно каждый раз зашивать конфигурирующую память (И, кстати, если ПЛИСина жирная, то нужно, чтобы она успела законфигурироваться после подачи питания. Там вроде для PCIe 100ms допустимо). Перезагрузка ПК не ведет к сбросу питания на PCIe плате (на моём ПК это так). Но чтобы каждый раз не перезагружаться после перепрошивки FPGA под Windows делал так: 1. До перепрошивки FPGA удаляется драйвер для PCIe устройства. 2. Перепрошивается FPGA. 3. Создаётся новый драйвер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novartis 0 1 июня, 2016 Опубликовано 1 июня, 2016 · Жалоба после link training плата должна в состоянии 0x16 находиться, т.е. L0. Вы опечаталмсь наверно, L0 = 0x0F, я об этом состоянии и писал, что иногда в нормальное рабочее состояние прошиваться стала. После перезаливки конфигурации попробуйте в диспетчере устройств выполнить поиск устройств. Если плата повисла в L0 = 0x01, то комп ее не видит и все тут, ни поиск в винде в диспетчере устройств не помогает, ни перезагрузка компа. Перезагрузка ПК не ведет к сбросу питания на PCIe плате Питание для платы сбрасывать и не нужно. Я заливаю не во флешку, а в саму плис (sof файл). После прошивки я пробовал и перезагружать комп. Как я понимаю процесс. Перезагружаем комп, в момент перезагрузки дергается нога perstn на разъеме pcie. Происходит сброс корки pcie в ПЛИС, сброс компонентов реконфигурации и т.п. Если бы образ для ПЛИС разворачивался из флешки, то это должно было бы выполниться за 100мс. Но образ в ПЛИС уже загружен, поэтому требование про 100мс тут удовлетворяется. Надо попробовать на другой материнской плате... Хотелось бы рассказать про саппорт в reflexces.com: на обращение в саппорт сам саппорт отводит себе 48 часов (business hour) - 48 рабочих часов, карл!! Это 6 рабочих дней!! Ужас... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 1 июня, 2016 Опубликовано 1 июня, 2016 · Жалоба Вы опечаталмсь наверно, L0 = 0x0F, я об этом состоянии и писал, что иногда в нормальное рабочее состояние прошиваться стала. Я на xilinx делал, там L0 = 0x16. Наверное у альтеры по другому кодируются состояния LTSSM, хотя странно. Если плата повисла в L0 = 0x01, то комп ее не видит и все тут, ни поиск в винде в диспетчере устройств не помогает, ни перезагрузка компа. Detect.Active это не начальное состояние, перед ним Detect.Quiet вроде должен быть (у Xilinx там по крайней мере). У вас сброс этот вообще происходит? Не знаю как в альтере PCIe сделан, но если до 0x01 есть состояния, в которые она не переходит после сброса, то что-то с логикой сброса не так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novartis 0 2 июня, 2016 Опубликовано 2 июня, 2016 · Жалоба У альтеры L0 = 0x0F. Видимо у каждого по своему. Провел сейчас эксперимент. На другом компе на другой отладочной плате Stratix IV Dev Kit переразвел ноги pcie. Вместо pcie разъема указал на другие ножки (там второй pcie hard ip core есть), они в воздухе болтаются получается. Рефклок 100МГц подал. В итоге рефклок захватилась, корка работает, LTSSM циклически переходит 0x00 -> 0x01 -> 0x00 -> 0x01... Пытается обнаружить ответную сторону, но не удается. От саппорта жду ответа по поводу IO_STANDARD для pci ног, в даташите только пины были указаны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novartis 0 2 июня, 2016 Опубликовано 2 июня, 2016 · Жалоба Саппорт прислал схему на плату. На линии tx стоят конденсаторы по 100нФ. В то же время на отладке Stratix V GX FPGA Development Kit Board от альтеры-terasic кондеры по 220нФ. В стандарте на pcie GEN3 написано, что для GEN1 и GEN2 можно ставить 75-265нФ, для GEN3 176-265нФ Где то даже тема была, в которой обсуждали емкость конденсаторв для pcie, не могу найти. Незнаю с этим или нет связаны мои проблемы. Но выходит, что для GEN3 совсем всё плохо будет? PS: исправил опечатки, везде про нанофарады Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 2 июня, 2016 Опубликовано 2 июня, 2016 · Жалоба Один из вариантов -- не правильно выбран I/O standard для референсного клока. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 2 июня, 2016 Опубликовано 2 июня, 2016 · Жалоба На линии tx стоят конденсаторы по 100мкФ. В то же время на отладке Stratix V GX FPGA Development Kit Board от альтеры-terasic кондеры по 220нФ. В стандарте на pcie GEN3 написано, что для GEN1 и GEN2 можно ставить 75-265мкФ, для GEN3 176-265мкФ у вас во всех трех картинках емкость правильная (100нФ = 0.1мкФ) т.е. что 100нФ, что 0.22мкФ вполне в границах допуска, для Gen3 надо не меньше 176нФ 256мкФ - это явно ваша опечатка.. для паранойи, самостоятельно или попросите монтажника внимательно посмотреть монтаж конденсаторов - кондюки бывают лопаются или коротятся по обкладкам/монтажу, что приводит к неработоспособности линии.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novartis 0 3 июня, 2016 Опубликовано 3 июня, 2016 · Жалоба Помогите правильно назначить пины для pcie. Вот такая схема для pcie ног: Сам рефлекс предлагает использовать следующие назначения: # PCIe Signals set_location_assignment PIN_AC28 -to pcie_rstn set_location_assignment PIN_AF34 -to refclk set_location_assignment PIN_AV38 -to rx_in0 set_location_assignment PIN_AT38 -to rx_in1 set_location_assignment PIN_AP38 -to rx_in2 set_location_assignment PIN_AM38 -to rx_in3 set_location_assignment PIN_AH38 -to rx_in4 set_location_assignment PIN_AF38 -to rx_in5 set_location_assignment PIN_AD38 -to rx_in6 set_location_assignment PIN_AB38 -to rx_in7 set_location_assignment PIN_AU36 -to tx_out0 set_location_assignment PIN_AR36 -to tx_out1 set_location_assignment PIN_AN36 -to tx_out2 set_location_assignment PIN_AL36 -to tx_out3 set_location_assignment PIN_AG36 -to tx_out4 set_location_assignment PIN_AE36 -to tx_out5 set_location_assignment PIN_AC36 -to tx_out6 set_location_assignment PIN_AA36 -to tx_out7 # Misc set_location_assignment PIN_AK23 -to clk125 # Pin Constraints set_instance_assignment -name IO_STANDARD "2.5 V" -to pcie_rstn set_instance_assignment -name IO_STANDARD LVDS -to clk125 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to refclk set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in0 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in1 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in2 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in3 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in4 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in5 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in6 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in7 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out0 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out1 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out2 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out3 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out4 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out5 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out6 set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out7 Но с ними pcie встает в состояние LTSSM = 0x01 - Detect.Active, и дальше никуда не движется. По схеме у рефклока есть внешнее сопротивление 100 Ом, как его наличие указать в квартусе? По схеме это сопротивление не подключено (nc) и на плате его тоже нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novartis 0 5 июня, 2016 Опубликовано 5 июня, 2016 · Жалоба Уже во всем ищу причину)) Вот на фото на трассе референс клока какая то грязь, флюс не смыт что ли? Может это влиять на работу pcie? Как это дело очистить в условиях обычного офиса (спиртиком протереть или еще чего)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 5 июня, 2016 Опубликовано 5 июня, 2016 (изменено) · Жалоба Уже во всем ищу причину)) Вот на фото на трассе референс клока какая то грязь, флюс не смыт что ли? Может это влиять на работу pcie? Как это дело очистить в условиях обычного офиса (спиртиком протереть или еще чего)? Вроде маской закрыто всё, вряд ли. Водкой смойте, если имеется. Жидкостью для очистки мониторов в небольших количествах. Хуже не будет. Главное всё просушить. Изменено 5 июня, 2016 пользователем Inanity Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться