des00 27 December 2, 2021 Posted December 2, 2021 · Report post 39 minutes ago, RobFPGA said: Но после выравнивания слова bitslip-ом выглядеть это должно как разная фаза восстановленного RX клока на низкой частоте. А вот задач по минимальной и детерминированной latency по пути RX - TX полно вот тут у меня диссонанс. Вы же сами пишете про разную фазу восстановленной низкой частоты, но при этом пишете про детерминированную задержку. Я же верно прочитал: у вас фаза восстановленной частоты плавает от 0 до 360 градусов, но при этом задержка фиксированна? Тогда относительно чего и в чем вы ее измеряете? Измерение проводится в тактах восстановленной частоты? Мысленный экспиремент: если взять не плавающую опорную, синхронную по частоте относительно восстановленной. Затактировать ей логику плис, что принимает данные с GTX. Вывести эту опорную частоту синхронно с восстановленной, при сдвиге ее фазы в 0, тогда при сдвиге фазы в 360 градусов, данные, относительно опорной частоты лягут на +1 такт, т.е. появится задержка, зависящая от фазы восстановленного RX клока на низкой частоте и временных параметров триггеров при перекладке из сдвигового регистра GTX в регистр логики. Quote Share this post Link to post Share on other sites More sharing options...
RobFPGA 99 December 2, 2021 Posted December 2, 2021 · Report post 1 minute ago, des00 said: вот тут у меня диссонанс. Вы же сами пишете про разную фазу восстановленной низкой частоты, но при этом пишете про детерминированную задержку. Я же верно прочитал: у вас фаза восстановленной частоты плавает от 0 до 360 градусов, но при этом задержка фиксированна? Тогда относительно чего и в чем вы ее измеряете? Измерение проводится в тактах восстановленной частоты? Я говорю о разной фазе RX клока на высокой частоте. 360 градусов это 1 битовый интервал. Это и есть та недетерминированная задержка которая обычно не контролируется в GTX. И эта неопределенность потому что, на сколько знаю, CDR у Xilinx выполнен по схеме интерполяции фазы, а не аналоговой PLL. По сути это цифровой DDS который дополнительно крутит в определённом диапазоне фазу восстановленного клока относительно фазы референтного клока. Выравниванием по bitslip мы синхронизируем фазу клока RX на низкой стороне c точностью до бита. Поэтому и получается детерминированная задержка (равная аппаратным задержкам реализации входных цепей RX, CDR и десериализатора) и недетерминированная в пределах 1 битового интервала. Если взять 2 таких канала, и предположить что на передающей стороне TX работает строго синхронно то на приемной мы получим после CDR 2 восстановленных RX клока одинаковой частоты с неопределенностью фазы в 1 бит из за CDR. А вот фаза клоков RX на низкой частоте (после выравнивания слов по bitslip) будет отличатся еще и на разницу задержек в каналах. И на низкой частоте 360 градусов это будет задержка в Nбит где N это размер слова. Quote Share this post Link to post Share on other sites More sharing options...
des00 27 December 2, 2021 Posted December 2, 2021 · Report post 22 minutes ago, RobFPGA said: И на низкой частоте 360 градусов это будет задержка в Nбит где N это размер слова. Ну я про это и говорил сразу +-1 слово выходного интерейса, девиация задержки. Вот и наблюдает ТС эту девиацию, затем умножает на ширину слова и получает те самые свои "коллосальные" задержки. 22 minutes ago, RobFPGA said: Если взять 2 таких канала, и предположить что на передающей стороне TX работает строго синхронно то на приемной мы получим после CDR 2 восстановленных RX клока одинаковой частоты с неопределенностью фазы в 1 бит из за CDR. но вот дальше продолжаем вашу же мысль, эта неопределенность даст вам комбинации сдвига фазы восстановленных клоков низкой частоты -1/0, 0/0, 0/-1. Что при оценке, относительно одной опорной частоты может дать вам +-1 слово интерфейса. Все зависит от фазировки этой опорной частоты относительно восстановленных клоков. Один попал до фронта, второй после фронта. Об этом я сразу и написал. А если вы один из восстановленных клоков используете в качестве измерительного, то там тем более будет девиация +-1 символ который у вас N бит. 22 minutes ago, RobFPGA said: Поэтому и получается детерминированная задержка (равная аппаратным задержкам реализации входных цепей RX, CDR и десериализатора) и недетерминированная в пределах 1 битового интервала. Но итоговая то будет недетерменированная. Понятно, у нас с вами разные подходы к термину "детерминированная задержка", точнее разные системы интерпретации этой задержки. Quote Share this post Link to post Share on other sites More sharing options...
RobFPGA 99 December 2, 2021 Posted December 2, 2021 · Report post 2 hours ago, des00 said: Ну я про это и говорил сразу +-1 слово выходного интерейса, девиация задержки. Вот и наблюдает ТС эту девиацию, Ну так это определяется в основном в выравнивании по bitslip (если считать фазу в TX и задержки в каналах одинаковыми). А если без синхронизации между каналами то тогда вообще не понятно как TC мог работать с таким тактированием. Ну а если сделать начальную синхронизацию между каналами то фазу RX (на низкой частоте) между ними можно можно подстроить опять же с точностью до бита. P.S. Вот кстати интересная презентация от CERN по похожему поводу, правда для Virtex5 Quote Share this post Link to post Share on other sites More sharing options...
Hexa 0 December 2, 2021 Posted December 2, 2021 · Report post Спасибо за активное обсуждение проблемы, теперь есть над чем подумать, задержка как раз и похожа на +- 1 слово. Quote Share this post Link to post Share on other sites More sharing options...
Bad0512 2 December 7, 2021 Posted December 7, 2021 · Report post On 12/3/2021 at 3:05 AM, Hexa said: Спасибо за активное обсуждение проблемы, теперь есть над чем подумать, задержка как раз и похожа на +- 1 слово. Самый неприятный (и не очевидный для вас) косяк вашей схемы - это разгон джиттера. В случае каскадного (последовательного) соединения подобных каналов связи ситуация с джиттером будет ухудшаться и в пределе CDR на самом дальнем в цепочке приемнике перестанет входить в захват. При увеличении длины оптического линка ситуация также будет ухудшаться. Подобные проблемы решаются в сетях SyncE с помощью специальных внешних джитееродавов, но у них тоже есть проблемы с низкочастотным джиттером (называют "вандером"). Этот шум невозможно отфильтровать петлёй ФАПЧ, поэтому это - отдельная проблема. Quote Share this post Link to post Share on other sites More sharing options...