Костян 0 28 октября, 2011 Опубликовано 28 октября, 2011 · Жалоба Есть обычный порт ввода/вывода. На него поступает сигнал тактирования ClkIn. Как его передать на GBUF внутри плис так, чтобы фаза тактового сигнала на порте совпадала с фазой GBUF ? DCM есть в наличии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 4 28 октября, 2011 Опубликовано 28 октября, 2011 · Жалоба Есть обычный порт ввода/вывода. На него поступает сигнал тактирования ClkIn. Как его передать на GBUF внутри плис так, чтобы фаза тактового сигнала на порте совпадала с фазой GBUF ? DCM есть в наличии. Т.к. телепаты после летних отпусков сразу впали в зимнюю спячку, то прийдётся задать ряд вопросов: 1. И главное: какая ПЛИС используется ? 2. С какой точностью необходимо обеспечить совпадение фронтов ? 3. Какая частота сигнала ? 4. Сколько и каких линий данных привязано к этому тактовому сигналу ? 5. На какой частоте передаются данные (т.е. есть там DDR/QDR и пр. заморочи) ? 6. Какая среда используется ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
superdetka 0 30 октября, 2011 Опубликовано 30 октября, 2011 · Жалоба Есть обычный порт ввода/вывода. На него поступает сигнал тактирования ClkIn. Как его передать на GBUF внутри плис так, чтобы фаза тактового сигнала на порте совпадала с фазой GBUF ? DCM есть в наличии. А зачем выравнивать фазу на входе, и после gbuf? От него и DCM в центре плис идет ветвления на тактирование элементов же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Костян 0 31 октября, 2011 Опубликовано 31 октября, 2011 · Жалоба Т.к. телепаты после летних отпусков сразу впали в зимнюю спячку, то прийдётся задать ряд вопросов: 1. И главное: какая ПЛИС используется ? Ну дело не совсем в типе ПЛИС , а в идеи подключения. Использую Virtex4..6 2. С какой точностью необходимо обеспечить совпадение фронтов ? до градуса. 3. Какая частота сигнала ? 50Мгц 4. Сколько и каких линий данных привязано к этому тактовому сигналу ? 1 5. На какой частоте передаются данные (т.е. есть там DDR/QDR и пр. заморочи) ? SDR и DDR 6. Какая среда используется ? ISE. Еще раз опишу проблему более раскрыто. Допустим есть АЦП, которая гонит поток данных и сигнал синхронизации. Сигнал синхронизации заходит в ПЛИС на обычный пин I/O (не GCLK). Внутри ПЛИС он расспространяется по линиям до GBUF и затем до DCM. C выхода DCM сигнал clk0 тактирует входные триггеры(стоят в лапах), которые принимают поток данных от АЦП. Учитывает ли ISE задержку распространения от порта I/O до GBUF тактового сигнала ? Либо эту задержку нужно вручную смотреть и корректировать фазу в DCM? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladimirB 1 31 октября, 2011 Опубликовано 31 октября, 2011 · Жалоба Ну дело не совсем в типе ПЛИС , а в идеи подключения. Использую Virtex4..6 ... Учитывает ли ISE задержку распространения от порта I/O до GBUF тактового сигнала ? Либо эту задержку нужно вручную смотреть и корректировать фазу в DCM? Конечно не учитывает, иначе зачем тогда нужны клоковые ноги. DCM выравнивает фазу выходного клокового дерева относительно своего входа. Но если вы используете V4-6, то там во всех банках полно пинов типа "Clock Capable" (CC, SRСС и MRCC) и вполне логично тактовые сигналы от всяких АЦП заводить на них - даже лучше будет работать для высокочастотных клоков т.к. Clock Skew будет меньше и драгоценные DCM не тратятся. Схема тактирования конечно отличается, но почитайте Clocking Resources User Guide и всё получится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Костян 0 1 ноября, 2011 Опубликовано 1 ноября, 2011 · Жалоба Но если вы используете V4-6, то там во всех банках полно пинов типа "Clock Capable" (CC, SRСС и MRCC) и вполне логично тактовые сигналы от всяких АЦП заводить на них Насколько я помню. Эти пины обеспечивают только Low Capacitance и Low inductance. Вопрос остается открытым, как рассчитать задержку от входного пина до GBUF и , что более важно, сделать ее постоянной от сборки к сборке проекта ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 4 1 ноября, 2011 Опубликовано 1 ноября, 2011 · Жалоба Насколько я помню. Эти пины обеспечивают только Low Capacitance и Low inductance. Вопрос остается открытым, как рассчитать задержку от входного пина до GBUF и , что более важно, сделать ее постоянной от сборки к сборке проекта ? Боюсь, вы не уловили ситу... тогда, попробую донести мыль, поэтапно. Насколько я помню. Эти пины обеспечивают только 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 сигнал. Вопрос остается открытым, как рассчитать задержку от входного пина до 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, то так может случиться, что локальное тактирование будет наилучшим выходом. Однако, закладывать оба этих решения в серийное устройство я бы не рискнул. Учитывает ли ISE задержку распространения от порта I/O до GBUF тактового сигнала ?Да, ISE учитывает и эту задержку, и, что гораздо более важно, предельный разброс этой задержки. Хотя, за древние версии, вроде 9.2 и 10.1 – не поручусь. Использовать 11.5 для V-6 крайне чревато... поэтому, в настоящее время, для V-5/V-6 остаются только 12.2 - 13.3 (а вот эти среды анализируют эти параметры). Либо эту задержку нужно вручную смотреть и корректировать фазу в DCM?Из-за различного рода зависимостей этой задержки от кучи параметров, Вам прийдётся проводить большую серию измерений, на большом количестве кристаллов из разных партий... А зачем всё это проделывать, если всю эту нудную кропотливую работу сделал Xilinx и результаты измерений внёс в среду разработки ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladimirB 1 1 ноября, 2011 Опубликовано 1 ноября, 2011 · Жалоба Боюсь, вы не уловили ситу... тогда, попробую донести мыль, поэтапно.... +500 Примерно это же я и хотел сказать, только набивать лень было, думал человек сам прочитает в UserGuide. :bb-offtopic: Вот к вопросу о том нужно ли знать архитектуру ПЛИС. А то как обычно: есть программисты умеющие запускать Matlab DSP Builder, нажимать там кнопки и наизусть знающие стандарт VHDL-2008, и есть схемотехники и проектировщики печатных плат, читающие только книги по трассировке и умеющие на миллиметровке "развести" многослойку. И только когда первые получают большой лог с кучей ошибок от ISE, а вторые получают по мягкому месту от первых - тогда только все начинают читать UG, даташиты и книги про устройство ПЛИС. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SFx 0 2 ноября, 2011 Опубликовано 2 ноября, 2011 · Жалоба еще хочу заметить, (в Virtex 5, точно) что не на все ножки которые "Clock Capable" можно заводить Single-Ended Clock (не дифференциальный). В случае, если Clock односигнальный, его нужно заводить на "_P" вход, (ни в коем случае не на "_N" ) потому, что к связке BUFIO + BUFG можно его только присоединить только сигнал с положительного входа *СС*_P. иначе только на BUFG с констрейном NET "_CLK_" CLOCK_DEDICATED_ROUTE = FALSE; и наедятся, что на серии ничего не поплывет.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yuri_d 0 2 ноября, 2011 Опубликовано 2 ноября, 2011 · Жалоба 2. С какой точностью необходимо обеспечить совпадение фронтов ? до градуса. 3. Какая частота сигнала ? 50Мгц 1e12/50e6/360=55.(5)пс Вы действительно надеетесь совместить фронты с такой точностью? А что будете делать с джиттером синтезатора ПЛИС? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Victor 0 3 ноября, 2011 Опубликовано 3 ноября, 2011 · Жалоба Небольшое дополнение по Virtex 5 - будьте внимательны! Не во всех банках есть Bufr, в "центральных" нет. По поводу учета задержки тоже небольшое имхо - при наличии OFFSET IN - её будет учитывать любой ISE, но DCM/PLL по умолчанию корректирует так, как если бы тактовая была подключена к "клоковому" входу. Остальное надо допиливать вручную (задавая фазу DCM). Ну и действительно, для АЦП - лучшего решения, чем bufr/bufio - не придумали ) P.S. BorisTS, respect! P.P.S. Думаю автору не нужна точность до градуса ;) (если мои телепатические возможности не подводят, и 50МГц DDR с АЦП - это правда :) ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться