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

Коллеги, пытаюсь запустить SERDES на 800МГц, но никак не могу победить разваливающиеся времянки.
Тактирование SERDES сделал от внешнего клока. И выскочастотный и низкочастотный клоки получаю посредством примитивов BUFGCE_DIV.
В документации Xilinx вроде именно так и рекомендуют делать.
Частоты вроде небольшие, но чтобы я ни пробовал писать в констрейнах, все время получаю ругань на Pulse Width.
Прошу совета у товарицей имеющих опыт запуска этих SERDES на подобные или более высокие частоты.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(BSACPLD @ May 2 2018, 12:25) <{POST_SNAPBACK}>
Коллеги, пытаюсь запустить SERDES на 800МГц, но никак не могу победить разваливающиеся времянки.
Тактирование SERDES сделал от внешнего клока. И выскочастотный и низкочастотный клоки получаю посредством примитивов BUFGCE_DIV.
В документации Xilinx вроде именно так и рекомендуют делать.
Частоты вроде небольшие, но чтобы я ни пробовал писать в констрейнах, все время получаю ругань на Pulse Width.
Прошу совета у товарицей имеющих опыт запуска этих SERDES на подобные или более высокие частоты.
Мои прикидки на пальцах для обычного кинтекса давали границу в районе 250Мгц. После которой необходима динамическая подстрока этого самого serdes.

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

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(MegaVolt @ May 2 2018, 12:31) <{POST_SNAPBACK}>
Мои прикидки на пальцах для обычного кинтекса давали границу в районе 250Мгц. После которой необходима динамическая подстрока этого самого serdes.

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

Немного странно, т.к. даже на Cyclone IV я без проблем получал 800МГц без всяких ухищрений. А здесь намного более шустрый чип.
Под динамической подстройкой Вы имели ввиду фазовые соотношения между низкочастотным и высокочастотным клоком?

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(MegaVolt @ May 2 2018, 12:42) <{POST_SNAPBACK}>
речь шла про 250 DDR

Я здесь пытаюсь использовать OSERDESE3. Он может работать 4x или 8x.

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


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

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

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

Цитата(BSACPLD @ May 2 2018, 12:44) <{POST_SNAPBACK}>
Я здесь пытаюсь использовать OSERDESE3. Он может работать 4x или 8x.
Внутреннее деление роли не играет. Я говорил про входную частоту.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(BSACPLD @ May 2 2018, 12:25) <{POST_SNAPBACK}>
Коллеги, пытаюсь запустить SERDES на 800МГц, но никак не могу победить разваливающиеся времянки.
Тактирование SERDES сделал от внешнего клока. И выскочастотный и низкочастотный клоки получаю посредством примитивов BUFGCE_DIV.

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

Полезные ссылки: xapp585, xapp1064.

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


Ссылка на сообщение
Поделиться на другие сайты
У меня здесь немного другая проблема.
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)
) ;

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


Ссылка на сообщение
Поделиться на другие сайты
Так речь идёт про выход????? Тогда моё написанное выше можно удалять sad.gif

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(blackfin @ May 2 2018, 12:54) <{POST_SNAPBACK}>
Вы бы хотя бы указали тип вывода: HP или HR, напряжение питания банка и тип вывода клока: MRCC или SRCC.

Питание 1.8В.
HR
Клок заведен как дифф. пара на GCLK.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(BSACPLD @ May 2 2018, 13:02) <{POST_SNAPBACK}>
Питание 1.8В, HR
Клок заведен как дифф. пара на GCLK.

Осталось узнать какой speed grade у кристалла.. biggrin.gif
[attachment=112310:Screensh...13_46_27.jpg]

PS. Для HR частоту 800 МГц вроде как никто и не обещает:
[attachment=112311:Screensh...13_57_11.jpg]

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(blackfin @ May 2 2018, 13:15) <{POST_SNAPBACK}>
Осталось узнать какой speed grade у кристалла.. biggrin.gif

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

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

Непосредственно 800МГц мне не нужно.
Мне нужно подстраивать фазу выходного сигнала с шагом 1.25нс.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(BSACPLD @ May 2 2018, 13:46) <{POST_SNAPBACK}>
Мне нужно подстраивать фазу выходного сигнала с шагом 1.25нс.
В каком диапазоне?

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(MegaVolt @ May 2 2018, 14:53) <{POST_SNAPBACK}>
В каком диапазоне?

В пределах такта 200МГц, т.е. 5нс = 4 шага.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(BSACPLD @ May 2 2018, 15:55) <{POST_SNAPBACK}>
В пределах такта 200МГц, т.е. 5нс = 4 шага.
По идее это делается сдвигом тактовой на 90 градусов. В DCM или PLL

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти