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

Fen1xL

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный
  1. Бросил ковыряться со старой версией IP ядра и ISE (и не зря). Перешел на Vivado. Напомню, там был исправлен баг, если SGMII не запущен, то IP ядро не запустится. Я немного схитрил, до инициализации настроил через SMI режим SGMII. И о чудо все заработало. Всем спасибо, решил вопрос. Всё очень просто. Да, поэтому SGMII не 1Gb, а 1.25Gb. Насчет неясности в регистрах. Для меня у Marvell есть две части Fiber/SGMII и Copper, вот на стороне Copper было все нормально (правильные режимы, скорости), а вот со стороны Fiber/SGMII были непонятные значения. Ну это так, уточнение
  2. А как может отрезок "сеть - физика" влиять на SGMII? Кстати, для полноты картины, пробовал делать loopback SGMII ip ядра, я так понимаю этот loopback на уровне трансиверов проходит. Там всё отлично, работает стабильно. Также раньше на плате средняя точка трансформатора была подтянута к земле, сейчас к питанию.
  3. Пробовал, в PHY штук 5 ресетов, и вроде как нужные дёргал. Причём я вижу, что Marvell переключается в SGMII, ведь в регистрах ловится SYNC и LINK UP от FPGA и осциллографом вижу наличие сигнала на второй дифпаре (от PHY к MAC). Мне все-таки кажется проблема именно в IP ядре. P.S. Еще странность заметил в регистрах значится полудуплекс у SGMII, как это возможно?
  4. Если это XPS, то можно в текстовом редакторе найти и заменить "_pin" на "" в файле с расширением *.mhs. Только будьте осторожны, перепроверьте или лучше забекапьте.
  5. Здравствуйте Была подобная темя, ее закрыли http://electronix.ru/forum/index.php?showt...03&hl=sgmii. Суть моей проблемы такова. Есть Marvell, который железно неправильно сконфигурирован (не SGMII), необходимо настроить через SMI. Есть Kintex-7. Собираю систему с MicroBlaze и axi_ethernet. Запускаю SDK, создаю проект тестирования периферии. Тест не проходит. Повисает на функции XAxiEthernet_Reset, точнее при чтении регистра XAxiEthernet_ReadReg(InstancePtr->Config.BaseAddress, XAE_IS_OFFSET) & XAE_INT_MGTRDY_MASK В симуляции тоже самое, полез в код, выяснил, PCS модуль не выдает resetdone. Как я понял, нет синхронизации по SGMII линии MAC <-> PHY. Это действительно так, ведь Marvel работает в другом режиме. Т.е. получается, чтобы сконфигурировать PHY, необходимо обратиться по SMI, а пока resetdone от PCS не придет, SMI недоступен. Замкнутый круг. Что делать, непонятно. Начал читать change log для axi_ethernet, увидел, ранее был глюк в ядре и resetdone давался ложный. Я попробовал использовать старую версию (правда не в Vivado, а в ISE 14.7). Получилось так, что функция XAxiEthernet_Reset, выполнилась успешно. Я получил доступ к SMI, настроил как мне надо. По регистрам я также узнал, что PHY поймал синхронизацию по SGMII. Также увидел на дифпаре SGMII (от PHY к FPGA) слабый сигнал ~200mV, хотя обратная дифпара (от FPGA к PHY) была ~500mV. Через регистры PHY настроил выходное напряжение, по уровню стало также ~500mV. Но все равно я так и не смог увидеть на стороне FPGA (MAC) наличие принятой синхронизации. Т.е. получается Marvell видит линию, а FPGA нет. Вывод, мне так и не удалось поднять линк по SGMII. - Как использовать последнюю версию ядра (т.к. она доступна только в Vivado и наоборот), когда синхронизации нет, а настроить через SMI необходимо? - Есть идеи почему синхронизация может не заработать?
  6. Здравствуйте Используем микросхему MARVELL 88E1322. Из 4 каналов, используются только 2. Два канала SGMII <-> 100Mb медь (да-да именно 100). При проектировании платы были допущены ошибки - неправильно подключены сигналы CONFIG. Из-за этого используется неправильный интерфейс (не SGMII) для связки phy с mac. Через SMI я пытаюсь переключить на SGMII, но непонятно как это работает. Переключаю через 20 регистр 6 страницы, затем даю софтварный reset (того же регистра, требует reset, биты помечены Update). После этих действий, очень редко начинается обмен, но я так и не понял зависимость. Может кто-нибудь использовал эту микросхему?
  7. Всем спасибо, пока отделался: TIMESPEC ts_from30_to200 = FROM "grp_clk30mhz" TO "grp_clk200mhz" 5 ns DATAPATHONLY; TIMESPEC ts_from200_to30 = FROM "grp_clk200mhz" TO "grp_clk30mhz" 33 ns DATAPATHONLY;
  8. Т.е. получается, все не кратные частоты, которые синтезируются pll или dcm невозможно развести по умолчанию?Тогда зачем среда использует такие значения, которые заведомо невозможно реализовать? Или здесь какая-то хитрость в работоспособности?
  9. Здравствуйте. У меня вопрос, бьюсь уже несколько дней, может подскажете?! Плис Xilinx Spartan-6 lx150. Вот у меня есть частота, которая приходит на чип, потом через pll делается 200МГц и 30МГц (т.е. не кратные частоты). Написал логику, где требуется кросс-доменное взаимодействие этих частот, там из 30МГц триггера сигнал приходит на 200МГц. Это кусочек асинхронного fifo. Не могу развести дизайн, PAR берет между ними 1.6нс (это нереально), получает их 35(т.е. 1/200МГц * 7) - 33.333(т.е. 1/30МГц) = 1.6. Внимание вопрос, возможно ли нормально развести НЕ кратные частоты (если вместо 30МГц использовать 100МГц, то вопросов нет, но нужно именно 30)? Кусочек Trace report. Slack: -0.840ns (requirement - (data path - clock path skew + uncertainty)) Source: read_5 (FF) Destination: full (FF) Requirement: 1.667ns Data Path Delay: 1.781ns (Levels of Logic = 2)(Component delays alone exceeds constraint) Clock Path Skew: -0.436ns (2.136 - 2.572) Source Clock: s_clk30mhz rising at 33.333ns Destination Clock: s_clk200mhz rising at 35.000ns Clock Uncertainty: 0.290ns На форуме новичок. Честно пытался найти похожее.
×
×
  • Создать...