syoma 1 7 ноября, 2019 Опубликовано 7 ноября, 2019 · Жалоба Привет. Может знатоки в ПЛИС и PCIe подскажут, что можно делать. Короче, есть плата на Xilinx XC7VX485, втыкнутая в PCIe хост. Коммуникация с хостом PCIe Gen.2 x4. IP корка настроена через визард с рекомендуемыми параметрами - т.е. LPM. Трафик - почти 90%. Линия от свича до ПЛИС достаточно длинная - сантиметров 15-20. Постоянно вылазят физические ошибки - примерно 10-20 в час, причем чем выше температура, тем выше количество. Ближе к свичу - ошибок меньше. По рекомендации замутили внутриситемный eye scan на Microblaze и получили такую картинку в самой плохой линии во время работы. В других линиях чуть-чуточку лучше, но общая картинка все равно хреновая. Как по мне - глаз очень хреновый, так как в точке 0,0 почти отсутствует запас. Теперь такие приколы: - любая другая плата в этом слоте работает на PCIe нормально, в том числе процессорные и на Ultrascale. Ultrascale показывает весьма хороший глаз. - сам свич с другой стороны и сама материнка сделаны под PCIe Gen.3. Другие платы, работают нормально в том числе и на Gen.3. - Две таких же платы на Virtex-7 (одна в этом слоте, другая в том слоте, где был PCIe свич), посылающие IBERT на 5Гбит друг-другу показывают хороший глаз и ноль ошибок. Вопрос - что можно сделать именно с этой XC7VX485, чтобы она нормально заработала в этом слоте в PCIe Gen2? Я понимаю, что именно в этом чипе есть проблемы с Gen2, но может можно что-то сделать? Сейчас перепрограммируем корку под DFE, но может есть еще какие-то скрытые параметры, с которыми можно поиграться? Xilinx отмораживается и посылает в лес - типа сами разбирайтесь со своей платой, у нас багов нет. Спасибо за помощь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 7 ноября, 2019 Опубликовано 7 ноября, 2019 · Жалоба Глаз выглядит будто джиттер великоват? Может, проблема со spread spectrum? Кстати, по in-system IBERT - как он вообще работает? Описание у него весьма скудное. Ведь глаз снимается во время работы, значит при прохождении "плохих" точек настройки при сборке глаза должны сыпаться ошибки или рваться линк? Но этого вроде не происходит. Разве линк при этом уходит из L0, например, в Polling.Compliance? Именно по этой ситуации не знаю, что сказать, но у меня были проблемы с Gen3 на ультраскейле. По какой-то причине не проходили EQ phase 2 и 3 (EqualizationPhase2+, EqualizationPhase2-, EqualizationPhase3-). Причем, если эти фазы прошли - ошибок нет, если не прошли - будут ошибки. В процессе поиска оказалось, что шанс прохождения фаз зависит от скорости переконфигурации ПЛИС по ресету (PERSTn). Если переконфигурировать очень быстро или не переконфигурировать вообще - фазы не проходят, идут ошибки. Если переконфигурировать относительно медленно - все нормально. В результате снизил скорость загрузки и проблема ушла. В чем дело, до сих пор не могу понять. Т.к. на ген2 этих фаз вообще нет, то вряд-ли у этих ситуаций есть что-то общее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 6 7 ноября, 2019 Опубликовано 7 ноября, 2019 · Жалоба 3 minutes ago, Flood said: Кстати, по in-system IBERT - как он вообще работает? я так понимаю, что в аналоговой части трансивера есть дополнительный сэмпл/холд который может защелкивать со сдвигом по времени и с разным порогом по амплитуде. ну и дальше компаратор, который сравнивает биты защелкнутые с 0-выми офсетами (то есть данные, которые идут в цифру - десериализатор) и вот с этого второго сэмплера. если различается, то ошибка - счетчик инкрементируется. ну а вся эта логическая надстройка IBERT, какие-то динамические компенсаторы и т.п. просто считывают этот BER из регистра и передвигают точку сэмплирования "по пространству". то есть это некий псевдо eye diagram, но как я понимаю - весьма полезно ---------------------------------- но я сам никогда плат с трансиверами не делал, только баловался с дев.китами. как-то не сложилось... 16 minutes ago, Flood said: не проходили EQ phase 2 и 3 (EqualizationPhase2+, EqualizationPhase2-, EqualizationPhase3-). Причем, если эти фазы прошли - ошибок нет, если не прошли - будут ошибки. опять же из теоретических соображений - в ультраскейлах в аналоговой части всякие эхокомпенсаторы и т.д. то есть адаптивный БИХ фильтр. видимо есть какой-то алгоритм его настройки - если настроить не получается, то прут ошибки Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 8 ноября, 2019 Опубликовано 8 ноября, 2019 · Жалоба Поменял насктройки на DFE - картинка изменилась, но теперь 0,0 переместился к левому фронту. Ошибки исчезли, но сам результат на грани. Помню, это уже проходил и оно в одном случае работает, в другом нет. 14 hours ago, Flood said: Глаз выглядит будто джиттер великоват? Может, проблема со spread spectrum? Счас попробую разобраться. Spread spectrum отключен, так как используется локальный PCIe RefClk. Но кто знает, может и настройки неверные, а еще генератор перепрограммируется через I2C перед запуском - может там косяк. Счас посмотрю. По PERSTn - у нас очень редко, но бывает, что линк тренируется под Gen.1. Тогда FPGA дает генерит ресет, что сбрасывает все платы и в следующий раз все нормально. Кстати, кто как поступает - вроде по спецификации PCIe устройство должно быть готово к тренировке в течении 100мс после включения. А у меня, если учесть Virtex-7 и так медленный, да еще надо успеть запрограммировать и перезапустить внешний генератор RefClk и пока он будет готов, плата в 100мс скорей всего не укладывается. Это может повлиять на качество тренировки линии и такой результат? Quote Кстати, по in-system IBERT - как он вообще работает? Описание у него весьма скудное. Ведь глаз снимается во время работы, значит при прохождении "плохих" точек настройки при сборке глаза должны сыпаться ошибки или рваться линк? Но этого вроде не происходит. Разве линк при этом уходит из L0, например, в Polling.Compliance? Вроде в XAPP1198, XAPP743 ну и UG476 (RX Margin Analysis) достаточно доходчиво все описано. Стоит отдельный самплер, который сдвигает точку по горизонтали и вертикали относительно основного самплера и считается сколько раз биты не совпали в каждой точке. Так что на сам линк это никак не влияет. Проблема только в том, что чтобы померять относительно низкий BER нужно долго семлировать в каждой точке, а это время. Например, первая картинка делалась почти 2 часа и минимальный BER получился 1e-10. А вторая всего полчаса, но BER 1e-9. Если увеличить порядок, то мерять надо будет часов 10, наверное. и Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 10 ноября, 2019 Опубликовано 10 ноября, 2019 · Жалоба On 11/8/2019 at 10:53 AM, syoma said: Spread spectrum отключен, так как используется локальный PCIe RefClk Прошу прощения что влезаю в разговор дяденек Какой локальный генератор стоит? Какова необходимость сидеть на локальном геныче? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба 15 hours ago, AVR said: Прошу прощения что влезаю в разговор дяденек Какой локальный генератор стоит? Si5338. Quote Какова необходимость сидеть на локальном геныче? Крейт VPX Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба М.б. проблема в клоке? Все-таки сужение и сдвиг глаза по X. Просто заменить кварц, кто знает :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба 20 minutes ago, Flood said: М.б. проблема в клоке? Все-таки сужение и сдвиг глаза по X. Просто заменить кварц, кто знает :) Пробовали несколько плат - везде та же картинка. Сейчас пробуем следующее: - отключить автоадаптацию в LPM - выкинуть нафиг программирование генератора и оставить его стандартные настройки - он в этом случае генерит нормальный клок для PCIe, но остальные выходы отключены - может в этом деле. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба 1 час назад, syoma сказал: Пробовали несколько плат - везде та же картинка. Из первого сообщения понял, что проблема на одном экз платы. Если нет, то конечно дело не в конкретном кварце. Кстати, XC7VX485 отличается от всех других Virtex-7 VX типом трансиверов и PCIe ядра, они у него такие, как на Кинтексах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба 18 minutes ago, Flood said: Из первого сообщения понял, что проблема на одном экз платы. Если нет, то конечно дело не в конкретном кварце. Ааа, сорри, если было непонятно. Нет, не на одном экземпляре и версию с дефектным железом мы в первую очередь проверили. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 12 ноября, 2019 Опубликовано 12 ноября, 2019 (изменено) · Жалоба On 11/10/2019 at 8:29 PM, AVR said: Какова необходимость сидеть на локальном геныче? кстати на одной дешевой матери вообще не могу поднять pcie от ее refclck (получается поднять от своего гены). По всем отловленным ошибкам на этапе инициализации мануал альтеры говорит об одном - или напутал пины линий или кондеры на линиях подсели или с трансиверами беда. Изменено 12 ноября, 2019 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 13 ноября, 2019 Опубликовано 13 ноября, 2019 · Жалоба Отключили авто-адаптацию в LPM и задали RXLPM_HF_CFG = 0 и RXLPM_LF_CFG = 0 Получился вот такой глазик. Физических ошибок больше нет. Как думаете, по параметрам он уже нормас или надо дальше играться с настройками? По этим Voltage Codes хрен поймешь, когда еще хорошо, а когда уже нет - это не осцик и какие нибудь compliance диаграммы не подходят. Вроде от температуры зависит мало. Со слотами я еще не игрался. Изменение параметров фильтров приводит только к ухудшению картинки. Меня напрягает автоадаптация - почему она нужна? Могут ли быть случаи, что без нее система вдруг перестанет работать? Со стандартными параметрами RXLPM_HF_CFG =0xF0 и RXLPM_LF_CFG = 0xF0 и выключенной авто-адаптации картинка была значительно хуже: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor657 0 14 ноября, 2019 Опубликовано 14 ноября, 2019 · Жалоба Добрый, день, Могу предложить сделать проект с бер тестером (см список ip ядер в Vivado) Установить скорости трансиверов, соотвествующие Вашему Pcie. В этой корке есть режим перебора разных настроек трансиверов. Может найдёте какую-нибудь закономерность. Вот только как уговорить Pcie корку использовать подобранные параметры не подскажу, но исходники корок можно править в Vidado. Успехов ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 14 ноября, 2019 Опубликовано 14 ноября, 2019 · Жалоба 3 hours ago, Igor657 said: Могу предложить сделать проект с бер тестером (см список ip ядер в Vivado) Установить скорости трансиверов, соотвествующие Вашему Pcie. Я ж писал уже, что IBERT делал и там показывался отличный сигнал. Проблема была в том, что PCIe Switch - это все-таки не ПЛИС и все становится менее радужным. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться