Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Kintex UltraScale SERDES
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
BSACPLD
Коллеги, пытаюсь запустить SERDES на 800МГц, но никак не могу победить разваливающиеся времянки.
Тактирование SERDES сделал от внешнего клока. И выскочастотный и низкочастотный клоки получаю посредством примитивов BUFGCE_DIV.
В документации Xilinx вроде именно так и рекомендуют делать.
Частоты вроде небольшие, но чтобы я ни пробовал писать в констрейнах, все время получаю ругань на Pulse Width.
Прошу совета у товарицей имеющих опыт запуска этих SERDES на подобные или более высокие частоты.
MegaVolt
Цитата(BSACPLD @ May 2 2018, 12:25) *
Коллеги, пытаюсь запустить SERDES на 800МГц, но никак не могу победить разваливающиеся времянки.
Тактирование SERDES сделал от внешнего клока. И выскочастотный и низкочастотный клоки получаю посредством примитивов BUFGCE_DIV.
В документации Xilinx вроде именно так и рекомендуют делать.
Частоты вроде небольшие, но чтобы я ни пробовал писать в констрейнах, все время получаю ругань на Pulse Width.
Прошу совета у товарицей имеющих опыт запуска этих SERDES на подобные или более высокие частоты.
Мои прикидки на пальцах для обычного кинтекса давали границу в районе 250Мгц. После которой необходима динамическая подстрока этого самого serdes.

Т.е. иными словами при фиксированной задержке в idelay можно работать на частотах ниже 250 Мгц. Выше нужно как то её крутить.
BSACPLD
Цитата(MegaVolt @ May 2 2018, 12:31) *
Мои прикидки на пальцах для обычного кинтекса давали границу в районе 250Мгц. После которой необходима динамическая подстрока этого самого serdes.

Т.е. иными словами при фиксированной задержке в idelay можно работать на частотах ниже 250 Мгц. Выше нужно как то её крутить.

Немного странно, т.к. даже на Cyclone IV я без проблем получал 800МГц без всяких ухищрений. А здесь намного более шустрый чип.
Под динамической подстройкой Вы имели ввиду фазовые соотношения между низкочастотным и высокочастотным клоком?
MegaVolt
речь шла про 250 DDR
BSACPLD
Цитата(MegaVolt @ May 2 2018, 12:42) *
речь шла про 250 DDR

Я здесь пытаюсь использовать OSERDESE3. Он может работать 4x или 8x.
MegaVolt
Цитата(BSACPLD @ May 2 2018, 12:42) *
Немного странно, т.к. даже на Cyclone IV я без проблем получал 800МГц без всяких ухищрений. А здесь намного более шустрый чип.
Под динамической подстройкой Вы имели ввиду фазовые соотношения между низкочастотным и высокочастотным клоком?

Я говорю лишь про свой опыт. Т.е. может быть можно и без ухищрений но я не нашёл как.

Про подстройку речь идёт про подбор входной задержки линий данных так чтобы клок попадал в середину окна данных.
И делать это с некоторой регулярностью.

Цитата(BSACPLD @ May 2 2018, 12:44) *
Я здесь пытаюсь использовать OSERDESE3. Он может работать 4x или 8x.
Внутреннее деление роли не играет. Я говорил про входную частоту.
blackfin
Цитата(BSACPLD @ May 2 2018, 12:25) *
Коллеги, пытаюсь запустить SERDES на 800МГц, но никак не могу победить разваливающиеся времянки.
Тактирование SERDES сделал от внешнего клока. И выскочастотный и низкочастотный клоки получаю посредством примитивов BUFGCE_DIV.

Вы бы хотя бы указали тип вывода: HP или HR, напряжение питания банка и тип вывода клока: MRCC или SRCC.

Полезные ссылки: xapp585, xapp1064.
BSACPLD
У меня здесь немного другая проблема.
SERDES работает на выход и используется для грубой подстройки фазы выходного сигнала.
Точную подстройку я делаю через ODELAY.
Проблема с Pulse Width именно со стороны выскочастотного клока заходящего на SERDES.
Именно на него ругается Timing Analyzer.
Клоки для SERDES:
CODE

IBUFDS #(
.DQS_BIAS("FALSE") // (FALSE, TRUE)
)

ibufds_clk_800MHz (
.I (clk_800MHz_p),
.IB (clk_800MHz_n),
.O (clk_800MHz)
) ;

BUFGCE_DIV #(
.BUFGCE_DIVIDE (4),
.IS_CE_INVERTED (1'b0),
.IS_CLR_INVERTED (1'b0),
.IS_I_INVERTED (1'b0)
)

bufg_clk_sys (
.I (clk_800MHz),
.CE (1'b1),
.CLR (1'b0),
.O (clk_sys)
) ;

BUFGCE_DIV #(
.BUFGCE_DIVIDE (1),
.IS_CE_INVERTED (1'b0),
.IS_CLR_INVERTED (1'b0),
.IS_I_INVERTED (1'b0)
)

bufg_clk_io (
.I (clk_800MHz),
.CE (1'b1),
.CLR (1'b0),
.O (clk_io)
) ;
MegaVolt
Так речь идёт про выход????? Тогда моё написанное выше можно удалять sad.gif
BSACPLD
Цитата(blackfin @ May 2 2018, 12:54) *
Вы бы хотя бы указали тип вывода: HP или HR, напряжение питания банка и тип вывода клока: MRCC или SRCC.

Питание 1.8В.
HR
Клок заведен как дифф. пара на GCLK.
blackfin
Цитата(BSACPLD @ May 2 2018, 13:02) *
Питание 1.8В, HR
Клок заведен как дифф. пара на GCLK.

Осталось узнать какой speed grade у кристалла.. biggrin.gif
Нажмите для просмотра прикрепленного файла

PS. Для HR частоту 800 МГц вроде как никто и не обещает:
Нажмите для просмотра прикрепленного файла
BSACPLD
Цитата(blackfin @ May 2 2018, 13:15) *
Осталось узнать какой speed grade у кристалла.. biggrin.gif

Блин. Слона то я и не приметил...
У них на DevKit speed grade 2 запаян.
Похоже придется изобретать свой SERDES на связке логика + ODDR с тактированием от 400МГц...
Хотя я так однажды уже делал для Arria GX...

Цитата(blackfin @ May 2 2018, 13:15) *
PS. Для HR частоту 800 МГц вроде как никто и не обещает:

Непосредственно 800МГц мне не нужно.
Мне нужно подстраивать фазу выходного сигнала с шагом 1.25нс.
MegaVolt
Цитата(BSACPLD @ May 2 2018, 13:46) *
Мне нужно подстраивать фазу выходного сигнала с шагом 1.25нс.
В каком диапазоне?
BSACPLD
Цитата(MegaVolt @ May 2 2018, 14:53) *
В каком диапазоне?

В пределах такта 200МГц, т.е. 5нс = 4 шага.
MegaVolt
Цитата(BSACPLD @ May 2 2018, 15:55) *
В пределах такта 200МГц, т.е. 5нс = 4 шага.
По идее это делается сдвигом тактовой на 90 градусов. В DCM или PLL
BSACPLD
Цитата(MegaVolt @ May 2 2018, 16:19) *
По идее это делается сдвигом тактовой на 90 градусов. В DCM или PLL

Не вариант.
Каналов много + нужно перестраивать за 1 такт 200МГц, так что только SERDES.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.