реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Как ClkIn с обычного пина передать на GBUF, Xilinx
Костян
сообщение Oct 28 2011, 12:25
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



Есть обычный порт ввода/вывода. На него поступает сигнал тактирования ClkIn. Как его передать на GBUF внутри плис так, чтобы фаза тактового сигнала на порте совпадала с фазой GBUF ?
DCM есть в наличии.
Go to the top of the page
 
+Quote Post
Boris_TS
сообщение Oct 28 2011, 15:41
Сообщение #2


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



Цитата(Костян @ Oct 28 2011, 16:25) *
Есть обычный порт ввода/вывода. На него поступает сигнал тактирования ClkIn. Как его передать на GBUF внутри плис так, чтобы фаза тактового сигнала на порте совпадала с фазой GBUF ?
DCM есть в наличии.

Т.к. телепаты после летних отпусков сразу впали в зимнюю спячку, то прийдётся задать ряд вопросов:
1. И главное: какая ПЛИС используется ?
2. С какой точностью необходимо обеспечить совпадение фронтов ?
3. Какая частота сигнала ?
4. Сколько и каких линий данных привязано к этому тактовому сигналу ?
5. На какой частоте передаются данные (т.е. есть там DDR/QDR и пр. заморочи) ?
6. Какая среда используется ?
Go to the top of the page
 
+Quote Post
Kirill_Good
сообщение Oct 30 2011, 12:32
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



Цитата(Костян @ Oct 28 2011, 16:25) *
Есть обычный порт ввода/вывода. На него поступает сигнал тактирования ClkIn. Как его передать на GBUF внутри плис так, чтобы фаза тактового сигнала на порте совпадала с фазой GBUF ?
DCM есть в наличии.


А зачем выравнивать фазу на входе, и после gbuf? От него и DCM в центре плис идет ветвления на тактирование элементов же.
Go to the top of the page
 
+Quote Post
Костян
сообщение Oct 31 2011, 15:09
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (Boris_TS @ Oct 28 2011, 14:41) *
Т.к. телепаты после летних отпусков сразу впали в зимнюю спячку, то прийдётся задать ряд вопросов:
1. И главное: какая ПЛИС используется ?

Ну дело не совсем в типе ПЛИС , а в идеи подключения.
Использую Virtex4..6

QUOTE
2. С какой точностью необходимо обеспечить совпадение фронтов ?

до градуса.

QUOTE
3. Какая частота сигнала ?

50Мгц

QUOTE
4. Сколько и каких линий данных привязано к этому тактовому сигналу ?

1

QUOTE
5. На какой частоте передаются данные (т.е. есть там DDR/QDR и пр. заморочи) ?

SDR и DDR

QUOTE
6. Какая среда используется ?

ISE.


Еще раз опишу проблему более раскрыто.
Допустим есть АЦП, которая гонит поток данных и сигнал синхронизации.
Сигнал синхронизации заходит в ПЛИС на обычный пин I/O (не GCLK). Внутри ПЛИС он расспространяется по линиям до GBUF и затем до DCM. C выхода DCM сигнал clk0 тактирует входные триггеры(стоят в лапах), которые принимают поток данных от АЦП.

Учитывает ли ISE задержку распространения от порта I/O до GBUF тактового сигнала ? Либо эту задержку нужно вручную смотреть и корректировать фазу в DCM?
Go to the top of the page
 
+Quote Post
VladimirB
сообщение Oct 31 2011, 17:24
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219



Цитата(Костян @ Oct 31 2011, 19:09) *
Ну дело не совсем в типе ПЛИС , а в идеи подключения.
Использую Virtex4..6
...
Учитывает ли ISE задержку распространения от порта I/O до GBUF тактового сигнала ? Либо эту задержку нужно вручную смотреть и корректировать фазу в DCM?

Конечно не учитывает, иначе зачем тогда нужны клоковые ноги.
DCM выравнивает фазу выходного клокового дерева относительно своего входа.

Но если вы используете V4-6, то там во всех банках полно пинов типа "Clock Capable" (CC, SRСС и MRCC) и вполне логично тактовые сигналы от всяких АЦП заводить на них - даже лучше будет работать для высокочастотных клоков т.к. Clock Skew будет меньше и драгоценные DCM не тратятся. Схема тактирования конечно отличается, но почитайте Clocking Resources User Guide и всё получится.
Go to the top of the page
 
+Quote Post
Костян
сообщение Nov 1 2011, 14:02
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (VladimirB @ Oct 31 2011, 16:24) *
Но если вы используете V4-6, то там во всех банках полно пинов типа "Clock Capable" (CC, SRСС и MRCC) и вполне логично тактовые сигналы от всяких АЦП заводить на них

Насколько я помню. Эти пины обеспечивают только Low Capacitance и Low inductance.
Вопрос остается открытым, как рассчитать задержку от входного пина до GBUF и , что более важно, сделать ее постоянной от сборки к сборке проекта ?
Go to the top of the page
 
+Quote Post
Boris_TS
сообщение Nov 1 2011, 18:28
Сообщение #7


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



Цитата(Костян @ Nov 1 2011, 17:02) *
Насколько я помню. Эти пины обеспечивают только Low Capacitance и Low inductance.
Вопрос остается открытым, как рассчитать задержку от входного пина до GBUF и , что более важно, сделать ее постоянной от сборки к сборке проекта ?
Боюсь, вы не уловили ситу... тогда, попробую донести мыль, поэтапно.

Цитата(Костян @ Nov 1 2011, 17:02) *
Насколько я помню. Эти пины обеспечивают только Low Capacitance и Low inductance.
Нет, Вы помните совсем не правильно, сейчас (т.е. в V-4, V-5 и тем более V-6) всё по другому...
Clock Capable ноги имеют короткий dedicated routing resource, позволяющий доставить тактовый сигнал в разные полезные места с малой предопределённой задержкой и микроскопическим разбросом этой задержки.
Например, для V-5 этими "полезными местами" являются BUFIO и BUFR, предназначенные для тактирования IOB и близлежащих Clock Region соответственно.
Более того, задержки в этих трассах практически такие же, как и в соседних трассах у обычных IOB, что позволяет более точно компенсировать эти задержки. Скажу больше, в больших V-6 при тактировании IOB от BUFG уже практически невозможно принять 300 МГц DDR сигнал. В тоже время, при использовании BUFIO + BUFG можно принять 500 МГц DDR сигнал.

Цитата(Костян @ Nov 1 2011, 17:02) *
Вопрос остается открытым, как рассчитать задержку от входного пина до GBUF и , что более важно, сделать ее постоянной от сборки к сборке проекта ?
А так делать вообще неправильно, для ПЛИС такой способ тактирования - противоестественный.
При таком подходе вылезают следующие проблемы:
1. И главная: любой разводочный ресурс имеет технологический разброс параметров, зависящий от разных факторов: кривизна изготовления самого кристалла; температура выходного каскада, питающего текущий участок соединительной линии; питание ядра, от которого питается эта же пара транзисторов и пр. Следовательно, эти параметры - имеют заведомо неизвестное текущее значение. Среда проектирования может только прикинуть предельные значения этих параметров, и указать, выполнятся ли наложенные ограничения - или нет.
2. Соответственно получаем, статическую составляющую задержки и динамическую. Статическую и медленно изменяющуюся динамическую задержки возможно худо-бедно компенсировать при помощи DLL/PLL. А вот быстро меняющуюся динамическую составляющую - невозможно компенсировать. Следовательно, чем длиннее трасса - тем больше некомпенсируемый разброс, собственно он и определяет предельную частоту стабильной передачи данных.
3. А теперь посмотрим, что же Вы делаете в свете этих соображений:

1) У Вас тактовый сигнал от обычной IO ножки проходит через кучу обычных линий (может быть и длинных линий, но сути дела это не меняет), соответственно, сигнал, пришедший на вход BUFG имеет некоторые заметно большие и задержку и разброс задержки, чем тот, который пришел бы от специальной ноги, через специальные связи. Да, эти связи имеют низкие ёмкость/индуктивность/сопротивление и мощный driver.
2) Т.к. все Virtex - относительно большие ПЛИС, то и задержка распространения clock по глобальному дереву тактирования - тоже большая. Поэтому, чем больше кристалл, тем больше разбежка фронтов между различными элементами ПЛИС. При использовании компенсации, компенсируется время задержки только в одной точке прихода сигнала... в остальных - как повезёт: статическая составляющая почти полностью подавлена, динамическая приобретает первостепенную роль.
3) задержки и, в особенности, разбросы описанные в предыдущих пунктах складываются... и может стать очень даже тоскливо !

С другой стороны, если Вам необходимо ввести всего лишь 100 МГц сигнал, то даже в жирных V-6, еще есть шанс с этим справиться при таком противоестественном подходе. Для этого необходимо:
1) правильно задать constraint OFFSET IN, что позволит среде проанализировать работоспособность проекта и сообщить об этом после разводки.
2) подобрать задержку в IDELAY элементах, что даст возможность скомпенсировать смещение окна setup/hold.

Также, для любителей острых ощущений, есть возможность локального тактирования, без использования BUFR и BUFG. Т.к. Вы говорили о последовательном сигнале - если не получится через BUFG, то так может случиться, что локальное тактирование будет наилучшим выходом. Однако, закладывать оба этих решения в серийное устройство я бы не рискнул.

Цитата(Костян @ Oct 31 2011, 18:09) *
Учитывает ли ISE задержку распространения от порта I/O до GBUF тактового сигнала ?
Да, ISE учитывает и эту задержку, и, что гораздо более важно, предельный разброс этой задержки. Хотя, за древние версии, вроде 9.2 и 10.1 – не поручусь. Использовать 11.5 для V-6 крайне чревато... поэтому, в настоящее время, для V-5/V-6 остаются только 12.2 - 13.3 (а вот эти среды анализируют эти параметры).

Цитата(Костян @ Oct 31 2011, 18:09) *
Либо эту задержку нужно вручную смотреть и корректировать фазу в DCM?
Из-за различного рода зависимостей этой задержки от кучи параметров, Вам прийдётся проводить большую серию измерений, на большом количестве кристаллов из разных партий... А зачем всё это проделывать, если всю эту нудную кропотливую работу сделал Xilinx и результаты измерений внёс в среду разработки ?
Go to the top of the page
 
+Quote Post
VladimirB
сообщение Nov 1 2011, 20:27
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219



Цитата(Boris_TS @ Nov 1 2011, 22:28) *
Боюсь, вы не уловили ситу... тогда, попробую донести мыль, поэтапно....

+500
Примерно это же я и хотел сказать, только набивать лень было, думал человек сам прочитает в UserGuide.
bb-offtopic.gif
Вот к вопросу о том нужно ли знать архитектуру ПЛИС.
А то как обычно: есть программисты умеющие запускать Matlab DSP Builder, нажимать там кнопки и наизусть знающие стандарт VHDL-2008, и есть схемотехники и проектировщики печатных плат, читающие только книги по трассировке и умеющие на миллиметровке "развести" многослойку.
И только когда первые получают большой лог с кучей ошибок от ISE, а вторые получают по мягкому месту от первых - тогда только все начинают читать UG, даташиты и книги про устройство ПЛИС.
Go to the top of the page
 
+Quote Post
SFx
сообщение Nov 2 2011, 11:38
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



еще хочу заметить, (в Virtex 5, точно) что не на все ножки которые "Clock Capable" можно заводить Single-Ended Clock (не дифференциальный). В случае, если Clock односигнальный, его нужно заводить на "_P" вход, (ни в коем случае не на "_N" ) потому, что к связке BUFIO + BUFG можно его только присоединить только сигнал с положительного входа *СС*_P.


иначе только на BUFG с констрейном NET "_CLK_" CLOCK_DEDICATED_ROUTE = FALSE; и наедятся, что на серии ничего не поплывет....
Go to the top of the page
 
+Quote Post
yuri_d
сообщение Nov 2 2011, 16:32
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 28-01-05
Из: МО, Мытищи
Пользователь №: 2 274



Цитата(Костян @ Oct 31 2011, 19:09) *
Цитата
2. С какой точностью необходимо обеспечить совпадение фронтов ?

до градуса.

Цитата
3. Какая частота сигнала ?

50Мгц

1e12/50e6/360=55.(5)пс
Вы действительно надеетесь совместить фронты с такой точностью? А что будете делать с джиттером синтезатора ПЛИС?
Go to the top of the page
 
+Quote Post
Victor
сообщение Nov 3 2011, 07:12
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 122
Регистрация: 21-02-05
Из: Питер
Пользователь №: 2 811



Небольшое дополнение по Virtex 5 - будьте внимательны! Не во всех банках есть Bufr, в "центральных" нет.
По поводу учета задержки тоже небольшое имхо - при наличии OFFSET IN - её будет учитывать любой ISE, но DCM/PLL по умолчанию корректирует так, как если бы тактовая была подключена к "клоковому" входу. Остальное надо допиливать вручную (задавая фазу DCM). Ну и действительно, для АЦП - лучшего решения, чем bufr/bufio - не придумали )

P.S. BorisTS, respect!
P.P.S. Думаю автору не нужна точность до градуса wink.gif (если мои телепатические возможности не подводят, и 50МГц DDR с АЦП - это правда sm.gif )


--------------------
Dies diem docet.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01465 секунд с 7
ELECTRONIX ©2004-2016