Комментарии 14
Прикольно, спасибо за статью Такими темпами скоро можно будет заменить проект Exostiv Lab :)
https://www.exostivlabs.com/
https://fpga-systems.ru/news/exostiv_labs_ip_8gb_39_ajtnyj_signaltap/2019-10-10-138
Да, наверное подобрал не самое правильное выражение. Входы операционных усилителей платы-мезонин просто подключаются к tx/rx проводникам. Анализатор не ретранслирует сигнал, а только принимает, подслушивая происходящее на шине.
Подключаюсь непосредственно к пинам разъёма PCIExpress, подпаиваясь к нему проводниками плоского кабеля по принципу щупа осциллографа. Таким же образом подключается Lecroy Analyzer (http://cdn.teledynelecroy.com/files/pdf/gen2_multi-lead_probe_datasheet.pdf)
Благодарю за замечание! Да, Вы правы, поправил таблицу.
Частота сигнала, передаваемого по каналам, зависит от версии PCIExpress-протокола (Таблица 1).
«Один канал связи представляет собой две дифференциальные пары, работающие одна на приём, другая на передачу данных. То есть х1-канал работает по 4 проводникам, а каналу х-32 необходимо уже 128. Каналы связи всегда симметричны — то есть количество пар в обоих направлениях одинаково.»
Встречал плату расширения HDMI ADD по типу DVI ADD, но без собственно чипа формирователя интерфейса, т.е. на плате из активных элементов были только буферные транзисторы. Судя по всему сигнал HDMI формировался программно, возможно драйверами. Расширитель пришёл без родной материнской платы, проверить не удалось — в неродных МП он ожидаемо никак не виделся. Драйвера не особо отличались от версий для других МП на том же чипсете. В общем, артефакт из разряда «разработчики материнских плат шутят».
Здорово!
А на сколько анализатор влияет на линию, не вносит ли сильные помехи? Не проводили ли такие измерения?
И другой аспект. У меня есть два устройства, соедиенные длинным (под 1м) проводом. Иногда при включении они начинают работать в Gen1, хотя поддерживают Gen2. Хотя если подергать линк (через регистры с помощью setpci), то переключаются на Gen2 и скорость больше не сбрасывают. Можно ли с помощью анализатора понять, почему так происходит? И вообще, перехватить процедуру поднятия линка, договаривания о скорости и остальную начальную инициализацию?
Не проводили ли такие измерения?
Нет, пока ещё не проводил. Но, думаю, в скором будущем сделаю это.
Можно ли с помощью анализатора понять, почему так происходит? И вообще, перехватить процедуру поднятия линка, договаривания о скорости и остальную начальную инициализацию?
В спецификации к PCIExpress написано, что после сброса Link initialization и Link training используют по умолчанию скорость 2.5 ГБ/с для обеспечения обратной совместимости. Если на обоих устройствах доступны более высокие скорости, то возможно переключиться на них после завершения Link training. Устройства должны автоматически пройти через этап быстрого link re-training'а и начать работу на более высокой скорости.
С помощью данного устройства можно захватывать TS1 и TS2 пакеты во время link training. Но сложность заключается в том, что PCS должно изначально синхронизировать свою битовою частоту (bit lock) с частотой передатчика/приёмника, затем синхронизироваться с символьной частотой (symbol lock). И лишь после этого возможна стабильная работа устройства. Поэтому первые пакеты TS1 и TS2 могут теряться или неправильно декодироваться.
Вторая сложность заключается в переключении приёмников анализатора с Gen1 на Gen2. Думаю поддержку этого режима в ПЛИС ECP5UMG возможно обеспечить, но я ещё не задумывался над её реализацией.
Поэтому понять почему в Вашем случае так происходит, с помощью данного устройства будет скорее всего затруднительно.
PCIExpress 1.0 2.5GT/s analyzer на базе ПЛИС своими руками