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

AVR

Свой
  • Публикаций

    1 374
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о AVR

  • Звание
    фанат Linux'а

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    SPB.RU

Посетители профиля

6 673 просмотра профиля
  1. Коллеги мне как-то сказали, что далеко не все регистры универсальны, и максимальная частота может быть разной. Протокол один, но всё же.
  2. На правах просто идеи: прикрутить через симулятор, тот же DPI, некую обертку, которая будет работать в живой сети через некую прослойку. Ну а тестов для обычного программного TCP/IP навалом должно быть. Единственное что, задержки будут сильно беспокоить, но в остальном на соответствие проверить можно, каждое поле, каждый пакет и так далее. Не смотрите что я фанатик, но в Linux задача заворота сетевого порта в симулятор решается гораздо проще.
  3. А читать как? Я очень рекомендую не только сделать запись, но и ЧТЕНИЕ всех регистров, чтобы раз в 5 секунд получать состояние всех регистров PHY. Уверяю, вылезет куча проблем, которые можно будет устранить лишь видя состояние всех 32-х например регистров. Так что не только пишем, но и читаем. У Вас в статусе значится "Профессионал", значит не составит труда сделать такую элементарную схему :) А я не профессионал, но на языке Verilog мог бы помочь ;) Какая у Вас PHY конкретно и как подключена?
  4. А должны быть какие-то проблемы? Даже целый Microblaze симулится, но долго. По теме: почему "мы все" сразу не догадались попросить автора темы собственно схему его балалайки?
  5. Хотелось бы добавить к своим словам следующее соображение: даже если что-то не симулится, что-то крупное, или данные ему задать проблематично, всегда на помощь могут прийти эмуляторы, врапперы и пустышки. Я так PCI-E ядро отлаживал - сделал имитацию его интерфейса, и удивительно - помогло отлаживать проект. Или например, подключить какой-то датчик или что-то сложнее - все равно эмулятор собственной разработки всегда помогает тестировать глубже. Я к тому клоню, что нет барьера, когда симуляция невозможна. Вечером тупо выложу тестбенч, показывающий что работает а что не работает сабжевом модуле. А то больно много текстов и вопросов вокруг пяти строк кода.
  6. Нет, всё в норме, просто я решил тут продолжать. Вашу личную почту я не свечу (разумеется).
  7. Простое правило - если дело не с аппаратным блоком, значит всегда начинаем с симуляции и тестбенча (теста). Если дело с аппаратным блоком - все равно начинаем с симуляции, благо многое симулится довольно качественно. В итоге оба варианта - начинаем с симуляции :) Так не ошибетесь никогда.
  8. Кто о чем, а я всё про симулятор. Такие вещи нужно отлаживать на симуляторе (Modelsim, ActiveHDL и так далее). И только если симулятор скажет что код верный, тогда уже лезем на железо. И в чем смысл if ((!key0)&(!key1)&(!key2)&(!key3)), если ноль и так получится в else когда все входы будут нулями?
  9. Удалось победить этот SGMII на 1 Гбит/с. Никто не ответил, я напишу решение: 1) Первое, что хочется отметить, мне стоило внимательнее отнестись к тому факту, что режим SGMII у меня "SGMII without Clock with SGMII Auto-Neg to copper" (пишется в 27-й регистр PHY), стало быть без autoneg рассчитывать на нормальную работу было странно, но я почему-то решил что тут всё как и у RGMII/GMII - выставляешь скорость и типа всё. Нетушки. Autoneg нужно ставить в единицу и у IP-ядра, которое трансивер оборачивает вокруг, не забыв забить в an_adv_config_vector + рестарт импульс. И в регистре 0 у PHY выставить тоже autoneg в 12-м бите 2) Второе, что можно отметить, что даже при rx_dv = 0 когда работает SGMII, там всё-таки валятся символы, и если это спец К-символы из пространства 8B10B, то значит линия charisk (char is k = этот символ К) будет в единице. И вот тут можно видеть много интересного, что поможет отлаживаться. Например BC 42 00 00 BC B5 00 00 которые я видел, это как раз и была попытка PHY сказать мне что там некая проблема с autonegation 3) Наконец я нашел где брать эти последовательности в стандарте IEEE Std 802.3-2015 - оказывается его можно на халяву скачать в полной версии 50 мегабайт на 4000+ страниц. Там нет упоминания SGMII, но там есть TBI (ten bit interface), по нему как раз эти 8B10B шастают. Там есть таблица Table 36–3—Defined ordered sets, и этот мой BC это как раз спецсимвол K28.5 Тема решена
  10. Это конечно эпический фейспалм, у них форум больше года тупит, а они не предпринимают действий к исправлению ситуации. Ганьба, что тут скажешь.
  11. Есть плата VC707 с Virtex-7. Там есть Ethernet PHY 88E1111 с подключением только по SGMII без клоковой линии. Эту PHY я настраиваю самостоятельно, результаты настройки регистров в приложенном к сообщению файле. PHY подключается через GTX трансивер при помощи IP-ядра 1G/2.5G Ethernet PCS/PMA or SGMII v16.1 в режиме конвертера SGMII в GMII. Работаю на 100 мегабит/с, для чего соответствующим образом настраиваю PHY (видно в приложенном файле), также выставляю режим "0100 - SGMII without Clock with SGMII Auto-Neg to Copper", что также видно в txt-файле в строке, показывающей 4 младших бита регистра 27 означающих HWCFG_MODE. На плате конфиг-пины выставляют неверный режим по умолчанию, что странно зачем они так сделали в схеме, но не суть - через SMI я это изменил. Что наблюдаю: не приходят пакеты и не отправляются. rx_dv не работает и никогда фронт на нем не возникает, PHY loopback не работает (когда что отправил то и получил). Видимо косячный линк SGMII. Когда включаю GTX loopback (Loopback Control == 1) то вижу - данные на rxd и rx_dv, т.е. GTX PMA loopback работает, значит с моей стороны всё сделано верно, и лишь вопрос что там в регистрах PHY не так, а быть может сама PHY дохлая. Кроме того, если просто мониторить, что же валится на rxd при rx_dv == 0, то можно видеть, когда PHY опускаю в reset, rxd ловит всякий случайный мусор из случайных байт, но как только я отпускаю PHY reset то микросхема PHY всё время одну и ту же последовательность: BC BC BC BC BC BC BC BC BC BC 00 00 00 00 00 00 00 00 00 00 - десять BC и десять нулей Всё время одно и то же, причем то что по 10 раз я понимаю - я ведь выбрал именно 100 мегабит, а это значит символы дублируются 10 раз, что не знаю как совместимо с режимом "SGMII without Clock with SGMII Auto-Neg" когда скорость должна автоматом влетать на гиг. Я так и не нашел, что же значат эти загадочные последовательности BC00 которую шлет PHY в SGMII, при этом нет ошибок типа disparity error или not in table, оно явно умышленно шлет эту последовательность, но так и не нашел документа, который бы пояснил что хочет от меня PHY, на что оно жалуется??? UPDATE: В интернете пишут везде что корректная IDLE последовательность это BC-50 или BC-C5. Откуда они берут что она корректная, из какого документа, может в нем же и про BC-00 пишут? Вот симуляции я вижу BC-50 используется для обозначения IDLE когда нет данных пакета... sgmii003_smi_log.txt
  12. Потому что одно и то же напряжение бывает у множества разных стандартов. Иными словами, там не только напряжение меняется, видимо выбирается еще какой-то отдельный варианты схемы ввода-вывода, а там это напряжение всё же важно знать, ведь сама ПЛИС не обладает интеллектом это узнать самостоятельно.
  13. Они просили еще раз повторно выслать, а то не получали запросы на регистрацию. Я теперь пароль там боюсь забыть - фиг восстановлю потом.
  14. Я вот недавно экспериментировал, передавал данные по одному коаксиалу однополярный сигнал от SERDES, обрубок сантиметров 30-ть, с пол пинка получил 110 мегабит/с со своими пакетами, защищенными CRC-16. Вижу автор пытается макетными проводочками соединять платы. Есть ли возможность взять коаксиал (сделав там штырьки на концах) и соединить земли через оплетку (вторая пара штырьков)? Надеюсь я не "вредный совет" сейчас выдал. Потому что 2 МГц не может работать с проблемами, мне трудно представить как можно не принять. Еще вот советую промоделировать такую связку, добавить имитацию задержки линии, могу даже модули скинуть готовые на Verilog-е. А то мне кажется дело не в качестве сигнала, а в какой-то логике приема и передачи.
  15. Я сообщил им, ответили что даже запросы с такой почты не получали. Думают даже новый форум прикручивать. В общем да, совершенно безобразный форум, и уведомления не приходят.