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

CMU PLL в Arria10

Коллеги, добрый день.
Может кто сталкивался с таким блоком в Arria10 как CMU PLL. Это PLL которая стоит внутри приемопередатчиков и я не понимаю зачем она там, если есть FPLL две штуки.
Сразу скажу зачем я смотрю про неё, хочется иметь засинхронизированный к RX потоку Serial клок и передать его в качестве опоры на  TX интерфейс. 
т.е. чтобы RX и TX работали на идентичных частотах с нулевым расхождением
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там же в доке (у меня на пятой серии), большой раздел про клоки трансиверов и небольшой раздел про CMU

И во всех готовых корках, делается чуть наоборот. Подаете частоту на TX и внутри синтезируется на RX с нулевым расхождением. И отдельно можно взять частоту от RX потока.

Изменено пользователем new123

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 hours ago, new123 said:

И во всех готовых корках, делается чуть наоборот. Подаете частоту на TX и внутри синтезируется на RX с нулевым расхождением. И отдельно можно взять частоту от RX потока.

Не понятно как то...

 

Вот у меня есть проект с Transceiver Native Phy для 10G эзернета, и в проект добавлен CMU PLL. В проект входит ref_clk = 644Мгц (с копейками). Этот ref_clk подается в трансивер как rx_cdr_ref_clk (Rx Clock Data Recovery), он нужен для выделения опорной частоты из входящего rx потока. И тот же ref_clk подается в CMU PLL, из которого выходит ~5ГГц, эти 5ГГц подаются в трансивер как tx_serial_clk. Сам трансивер в итоге выдает два клока rx_pma_clkout и tx_pma_clkout, и эти два клока не синфазны, во всяком случае TimeQuest анализирует их как два разных частотных домена, и нужно принимать меры при пересечении данных этих доменов.

Вот в описанном случае мне не понятно как можно сделать, чтобы "RX и TX работали на идентичных частотах с нулевым расхождением", а было бы неплохо такое получить.

Pic0025.jpg.76be11b5813abffb4583980590783f60.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго времени суток!

rx_pma_clkout и tx_pma_clkout одинаковы по значениям, но различны с точки зрения TimeQuest.

Выхода два: 1 - забить и считать эти клоки идентичными (я так пробовал - получается не очень), 2 - в случаях ретрансляции перекидывать данные через двухклоковое fifo (так делаю почти всегда - работает).

Ну а если у вас потоки разные - тут уж думать надо, что отбрасывать или что куда добавлять.

А вот зачем нужно именно нулевое расхождение клоков - мне непонятно. Отчего не делать это на разных клоковых доменах?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 minutes ago, warrior-2001 said:

2 - в случаях ретрансляции перекидывать данные через двухклоковое fifo (так делаю почти всегда - работает).

Я так и делаю.

И если нужно сообщить из одного клока в другой о каком то событии, то приходится ставить схемы борьбы с метастабильностью и тому подобное.

А если будет нулевое расхождение клоков - это ж сколько головной боли уйдет и можно сосредоточиться на других проблемах. И ресурсов кристалла будет меньше затрачено.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

37 minutes ago, novartis said:

А если будет нулевое расхождение клоков - это ж сколько головной боли уйдет и можно сосредоточиться на других проблемах. И ресурсов кристалла будет меньше затрачено.

CDR ставит крест на вашей затее. phase alignement FIFO нужно по любому. Но, оно есть внутри самого трансивера и если опорные тактовые не плывут, то вы можете сэкономить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот кстати еще пример (там целая таблица) из доки пятой серии, когда лучше юзать CMU, ATX или FPLL. В зависимости от того, Bond не Bond, и какая пропускная способность. Может такая инфа и в десятой есть.

 

 

Снимок экрана от 2019-04-09 11-11-11.png

 

ps. Насчет нулевой задержки я еще не нашел подтверждение, в памяти отложилось.

Изменено пользователем new123

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы не плодить новых тем, напишу тут. 

Кто-нибудь знает почему CMU PLL в Arria 10 в Quartus 18.1 не даёт сгенерировать выходную частоту 1250 МГц? (пишет валидное значения 2450-5200).

Просто странно получается, что я TSE затактировать с помощью CMU PLL не могу, поскольку он требует на порт tx_serial_clk именно 1250 МГц. FPLL и ATX использовать не хочу, поскольку их всего по две на банк. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...