Jump to content

    

RoadRunner

Участник
  • Content Count

    148
  • Joined

  • Last visited

Community Reputation

0 Обычный

About RoadRunner

  • Rank
    Частый гость

Recent Profile Visitors

1386 profile views
  1. Вот те на.. откатился обратно на 156.25МГц, и все заработало. Наверное в начале не переделал. Так скорее всего и было: когда я первый раз пробовал на 156.25 МГц, я не изменил соответствующую настройку RX CDR Reference clock frequency в мегафункции XCVR_NativePHY - она так и осталась 644.53 МГц, установленная пресетом 10GBASE-R. Неудивительно, что приемник не лочился. Удивительно другое (или по крайней мере вызывает вопросы): что уже при правильных (насколько я вижу) настройках система не работает на 322.26 МГц, взятых из дополнительной fPLL. По крайней мере, когда я убрал fPLL и вернул RX CDR Reference clock frequency на 156.25 МГц, все сразу заработало. Reset Controller можно было вообще не трогать. Короче, для тех кто будет переделывать этот проект https://fpgacloud.intel.com/devstore/platform/17.1.1/Pro/cyclone-10-gx-xcvr-toolkit-reference-design/ на 10G, надо только: 1) изменить входную частоту в ATXPLL c 125 на 156.25 МГц, выходную - с 625 на 5156.25 МГц. 2) в NativePHY задать настройки пересетом 10GBASE-R и не забыть (как сделал это я) во вкладке RX PMA скорректировать CDR Reference clock frequency на 156.25 МГц. З.Ы. Не забудьте только восстановить галочку Enable dynamic reconfiguration после задания пресета 10GBASE-R, а то при компиляции квартус не найдет порты reconfig. Всем огромное спасибо за советы!
  2. Есть только rx_is_lockedtoref, rx_is_lockedtodata. И еще rx_control[7..0]. Пока не знаю, что он показывает - надо разобраться
  3. У вообще такой галки нет) Сдается мне, придется писать самому. На другом ките (Cyclone V по-моему) с трансивером у меня так и было: без всяких резет контроллеров поднялся сразу) Правда, на 1G.
  4. 322.265625 просто ради эксперимента. Подумал, что может в ней дело. Поначалу то у меня 156.25 и была. Reset_controller альтеровский. Схема подключения как файле примера (прикрепил к посту). Там вариант с одинаковым клоком для rx_cdr_clkref и ATX PLL (обозначен как clk_125M - не обращайте внимания, там 156.25) top.v
  5. Одна из первых там галочка "Separate interface per channel/PLL", но это вроде для различных пар каналов трансиверов. Вы ее имели ввиду? Есть еще галочки "Use separate TX reset per channel" для передатчика, и "Use separate RX reset per channel" для приемника. Это больше похоже на то, о чем Вы говорите. Я включил их обе - не помогло. Может поодиночке надо?
  6. нет, не поднялся. Я так понимаю, он поднимется, когда лок будет на приеме.
  7. Всем доброго времени суток. Пытаюсь сейчас переделать xcvr example для Cyclone 10 GX c 1G на 10G. В проекте изначально были Tranceiver PHY Reset Controller, Native PHY и ATX PLL. На вход ATX PLL подавалось 125 Ггц, на выходе она давала 625 Ггц для tx_serial_clk Native PHY. rx_xdr_refclk того же Native PHY тактировался входными 125 Ггц. И все работало: в Tranceiver ToolKit передатчик передавал, приемник принимал через loopback на плате.Чтобы переделать все на 10G, в настройках Native PHY я включил пересет 10BASE-R, входной клок переделал на 156.25, чтобы на выходе ATX PLL давала 5156.25. rx_cdr_refclk переделал на 322.265625 (10312.5/32) Для этого добавил fPLL,которая из 156.25 делает 322.265625 В результате передатчик работает, а приемник - не лочится ни по reference clock, ни по recovered clock. Смотрю все так же в Tranceiver ToolKit. Посоветуйте, что может быть не так?
  8. Всем доброго времени суток. Задача такая: надо частоту avalon-MM интерфейса контроллера памяти установить в районе 100 Мгц (плюс/минус 10Мгц). Т.е. это частота, с которой логикой планирую писать и читать туда. Проблема в том, что на ките с которым в данный момент работаю (CYclone 10 GX Development Kit), частота входного для памяти клока pll_ref_clk = 21,186 МГц (другие клоки не подключишь - Квартус ругается). При этой входной частоте большой получается частота работы чипа памяти (932 МГц) и как следствие генерируемая частота для тактирования логики emif_user_clk = 932/4 = 233 МГц. Понизить бы ее как-нибудь до 100 МГц. Такая скорость работы чипа мне тоже ни к чему. В предыдущей версии мегафункции DDR3 контроллера был отдельный тактирующий вход для avalon-MM интерфейса. Можно было emif_user_clk понизить на сколько хочешь через внешнюю PLL, завести на этот вход и всю приходящую на него логику. В версии 19.2 такого тактирующего входа у avalon-MM интерфейса я пока не нашел. Т.е. получается, что avalon-MM тактируется напрямую emif_user_clk и это не изменить, а стало быть и приходящая на него логика тоже должна им же тактироваться. И частоту эту ни понизить, ни повысить. Или я что-то неправильно понимаю и есть какие-то возможности? Подскажите, кто знает. Спасибо.
  9. Всем доброго времени суток. Возникла необходимость сделать пакетный уровень для физического канала lvds. В принципе Ethernet полностью подходит, за исключением того, что он довольно громоздкий и, возможно, поддерживают много фич, особенностей, которые мне и не понадобятся. Соответственно, естественным образом возникают вопросы, что оставить, а что нет. Конкретный вопрос у меня в данный момент такой: какой смысл заполнять пространство между пакетами такими на мой взгляд нетривиальными последовательностями, как /K28.5/D5.6/ (IDLE1) и /K28.5/D16.2/ (IDLE2) ? По документации IDLE1 всегда инвертирует диспаритет, а IDLE2 оставляет его без изменения. Т.е. насколько я понимаю, IDLE1 используется для установления диспаритета в отрицательное значение по окончании пакета, если это необходимо, а IDLE2 передается далее, чтобы держать постоянным это значение. Вопрос, зачем? Почему это важно? Почему не менять диспаритет (как обычно это происходит при передаче данных в пакете), передавая, например, /K28.1/ в качестве idle-сигнала?
  10. Всем доброго времени суток. Начал переносить с 13-ого Квартуса на 17-ый и наткнулся вот на такой сюрприз: нет LPM_CONSTANT. Причем в 17.1 Standart Edition она осталась. Исчезла только в Pro. В коде то я ее заменю, разумеется, но она мне нужна для отладки: для ввода значений через In-System Memory Content Editor. Не посоветуете, как из положения выйти?
  11. Вопрос еще вот какой возник. Какая задержка передачи и приема у встроенных в ПЛИС трансиверов, кто-нибудь измерял?
  12. 11x11 может и втисну) Но лучше с запасом взять: там ширина всей платы то максимум 15 мм должна быть. У четвертого циклона видел 8x8 мм. Вот это было бы идеально.
  13. Так там еще внешняя память SDRAM к нему, Ethernet-коммутатор, АЦП. Один коммутатор только греется как кипятильник и жрет соответственно. Не знаю, правда, сколько будет жрать ПЛИС с почти гигабитным трансивером, пусть и встроенным. Но пока прихожу к выводу, что стоит эту версию попробовать. Помучаю Custom PHY с требуемым кабелем, посмотрю, что получится. О результатах отпишусь. Всем спасибо за соображения. Да, я и хочу только ПЛИС и АЦП оставить. Так в идеале по энергопотреблению и должно получиться. А основной вопрос сейчас: можно ли обойтись тупо SerDes-ом или придется юзать трансивер с его примочками. Использование трансивера конечно несколько сужает выбор микросхем. Может даже Cyclone IV придется взять, т.к. у пятых со встроенными трансиверами корпуса больно большие. А Вы на ALTLVDS_RX делали или сами на сдвиговых регистрах и PLL? Какая длина LVDS-линии была? 8 - это фактор десериализации? Т.е. по линии 3,6 ГГц шло?