Jump to content

    

gin

Участник
  • Content Count

    220
  • Joined

  • Last visited

Community Reputation

0 Обычный

About gin

  • Rank
    Местный

Recent Profile Visitors

3155 profile views
  1. Вот этим мне Грей и не нравится - универсальности нет. Последнее время для меня более критичны сроки разработки, нежели оптимизация по объему/потреблению. И мне легче написать параметризуемый универсальный код, подходящий для решения различных задач (пусть и избыточный по ресурсам), чем каждый раз делать что то новое под новую задачу. Но это уже немного оффтоп в данной теме)
  2. Мне тоже хендшейк (он же запрос-ответ) больше нравятся. Часто бывают случаи, когда счетчик меняется не на единицу, а на какую то случайную величину. Там Грей будет только вредить.
  3. Если счетчик Грея передается через цепочку регистров, то вопрос снимается :)
  4. Про фатальность - это вопрос) Например, попал триггер в метастабильность - на выходе у него хз что. Это и не ноль и не один. И далее, если выход этого триггера пойдет на разные логические элементы, то они могут это воспринять по разному. Один за ноль примет, второй за единицу. И тогда схема в раскоряку встанет.
  5. А как передача значения счетчика в коде Грея защищает от метастабильности при переходе между клоковыми доменами?
  6. Удаленное, либо частично удаленное взаимодействие рассматриваете?
  7. Давно работал с STM-4 и STM-16, но на АrriaV. Каких то проблем с джиттером не было
  8. 4. Следующий шаг - в визарде я создаю код для 10GBASE-R. Но там вообще нет никаких настроек для выбора нужного мне REFCLK и Quad! Также нет вариантов выбора NORTHREFCLK и SOUTHREFCLK! Есть только один дифференциальный вход для опорного клока и всё! То есть, используя визард в Vivado я никак не могу управлять выбором клока и расположения элемента внутри кристалла! А в данном случае у меня клок идет из верхнего банка (BANK 116) в нижний Квад банка 117 (Quad 2). Т.е. я никак не могу указать визарду, что мне нужно использовать не вход GTREFCLK0, а вход GTSOUTHREFCLK0 5. Я могу только указать что то в XDC-файле: В итоге естественно вся эта байда не собирается и я не понимаю, что мне нужно делать, чтобы правильно подключить 2 трансивера!
  9. Видимо я точно ничего не понимаю... В ug476 нашел описание на reference clock для Квадов. Там на картинке нарисована схема подключения клоков в зависимости от того, находятся ли они в том же банке или нет. Вроде выглядит всё логично. Также есть схема с управлением для подключения клоков к конкретному GTXE2_CHANNEL. Пока вроде всё логично и понятно. 1. Я использую gtwizard для создания трансивера. Там выбираю требуемый мне GTXE2_CHANNEL и REFCLK. В данном варианте выбран REFCLK0 Q2 и GTX_X0Y8 также для Quad2. 2. Далее генерится код. В нем я подключаю мой входной клок на соответсвующий input Вроде всё правильно, но если посмотреть на весь код сгенерированного компонента, то там нет возможности выбора для опорного клока (нет портов, как на картинке 2-3). Т.е. я при всем желании не смогу использовать входы NORTHREFCLK и SOUTHREFCLK. Хотя в данном случае этого вроде бы и не требуется (так как REF CLK находится в том же Кваде). 3. Далее в XDC файле я указываю конкретные пины для клока и положение для GTXE2 канала:
  10. для 3.125 используется CPLL, так что проблема не в этом А вот в PG168 увидел следующее: CPLL/QPLL/PLL0/PLL1REFCLKSEL has been always tied to 001 for REFCLK0, and 010 for REFCLK1 irrespective of whether the clock is from the North or South Quad. If you plan to use a reference clock from either North or South Quad, you must following the guidelines for changing the reference clock, which is found in the respective transceiver user guides for the device. Видимо нужно копать в этом направлении...
  11. Спасибо, описания обязательно посмотрю, возможно я что то упустил. По поводу структуры проекта: 1. Для 3.125 трансивера клок заведен на BANK_117, MGTREFCLK0. Данные (TX и RX) заведены на тот же банк BANK_117, канал X0Y8 2. Для 10GBASE-R клок заведен на BANK_116, MGTREFCLK0. Данные (TX и RX) заведены на банк BANK_117, канал X0Y10 Источники клоков все внешние от разных источников Может здесь я что то неправильно сделал, хотя действовал согласно описанию на плату
  12. А как указать конкретный Квад для 10G BASE-R? В визарде такого нет, в отличии от визарда для трансивера. Тем более, когда трансивер отключен, а есть только 10G Ethernet, то такой проблемы не возникает
  13. Завел клок через аттенюатор Si5324. Проект собрался, частота правильная. Единственное, пока не могу проверить на реальных данных - нет сетевой карты с 10G. Ну да ладно Но возникла новая проблема. Теперь не хотят одновременно собираться модули 10G BASE-R и 3.125 Гбит трансивер, который я подключал ранее. По отдельности всё собирается, но вместе ни в какую! Какая то непонятная для меня проблема с PLL и клоками. Ошибка [Place 30-140] Unroutable Placement Может кто сталкивался с чем то подобным, так как я не могу понять, что от меня хочет Vivado??? Подробнее:
  14. Эх, была бы у меня Altera - я бы себе сам рассказал)) Но у меня Xilinx Kintex7, плата KC705. И сейчас 2 варианта: либо заводить клок через микросхему JITTER ATTENUATOR, либо делать упрощенный тестовый вариант с использованием внутреннего клока (если такое возможно) Кстати, когда с Альтерой работал - у меня была плата на Стратикс5. Там я использовал внешний клок от генератора Si570
  15. Кстати, а в корке для 10G ethernet (10G BASE-R) есть вариант использования внутреннего клока с PLL для Kintex7? Или не вариант, и придется заводить внешний?