Kostochkin 0 19 марта, 2019 Опубликовано 19 марта, 2019 (изменено) · Жалоба Здравствуйте. У меня есть плата с fpga xilinx artix200 fbg484-2. Работаю в vivado 2017.2. В этом кристалле один квадрант трансиверов, GTP - 4 шт., COMMON - 1 шт. Два внешних клока. По заданию нужно один GTP питать от одного внешнего клока, а третий от другого внешнего клока. Использую ip core "1G/2.5G Ethernet PCS/PMA or SGMII v16.1". У блока GTPE2_COMMON две pll, два клоковых входа и два клоковых выхода. Из блока COMMON вывожу все сигналы pll0 на один трансивер, а pll1 на другой трансивер. Соответственно в втором ядре переподключил блоки startup_fsm на ppl1, и для COMMON установил PLL1REFCLKSEL = B"010". В GTPE2_CHANNEL настройки не менял. Проект собрался, но при отладке ядро, работающие от clock0 поднялось(userclk есть, resetdone - ok), а второе, работающее от clock1 не запустилось(userclk нет, resetdone - not ok). В документации прямо не написано, что GTP в одном квадранте можно питать двумя разными клоками. Там написано, что можно выбрать каким клоком питать GTP. Возможно ли так сделать? И если да, то где я ошибся? Благодарю. Изменено 19 марта, 2019 пользователем Kostochkin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 19 марта, 2019 Опубликовано 19 марта, 2019 · Жалоба Насколько я помню, в Channel заходят оба клока (от PLL0 и PLL1), далее внутри выбирается какой клок используем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kostochkin 0 19 марта, 2019 Опубликовано 19 марта, 2019 (изменено) · Жалоба Да, в channel заходят два клока, а как выбрать какой клок использовать? Нигде не нашел... Изменено 19 марта, 2019 пользователем Kostochkin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 19 марта, 2019 Опубликовано 19 марта, 2019 · Жалоба RX(TX)SYSCLKSEL. Структура в UG482; Figure 2-4:External Reference Clock Use Case Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kostochkin 0 19 марта, 2019 Опубликовано 19 марта, 2019 · Жалоба Благодарю, пропустил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kostochkin 0 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба Установил в ядре, которое питается от клока PLL1 настройки трансивера: TXSYSCLKSEL = b"11"; RXSYSCLKSEL = b"11"; Ядро все равно не поднимается. Блок "TX_STARTUP_FSM" не опускает сигнал mmcm_reset в 0. Соответственно pll не выдает userclk. Что-то еще надо настроить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toshas 0 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба Второй сигнал синхронизации точно в наличии ? Номинал верный ? Как вариант попробуйте собрать проект IBERT и посмотреть работу на нем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kostochkin 0 21 марта, 2019 Опубликовано 21 марта, 2019 · Жалоба 23 hours ago, toshas said: Второй сигнал синхронизации точно в наличии ? Номинал верный ? Как вариант попробуйте собрать проект IBERT и посмотреть работу на нем. Сейчас проверю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kostochkin 0 25 марта, 2019 Опубликовано 25 марта, 2019 (изменено) · Жалоба Извините, что долго не отвечал. Разобрался. В блоке GTPE2_COMMON по умолчанию для атрибутов PLL1(настройки внутренней pll) были выбраны коэффициенты, отличные от аналогичных для PLL0. Установил атрибуты для PLL1 такие же, как и для PLL0, заработало. Изменено 25 марта, 2019 пользователем Kostochkin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться