Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Фронты тактового сигнала...
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Работаем с трассировкой
Politeh
Дорбый день!

Прошу совета по поводу формы фронтов тактового сигнала.
Сигнал идёт от ЦП к ПЛИС к основной тактовый для работы ПЛИС. Пример на рисунке.
Будет ли работать корректно ПЛИС с таким клоком? Частота тактового сигнала - 100 МГц.
Зелёный - передатчик(ЦП), красный - приёмник(ПЛИС).

Последовательно на обоих концах поствавил резисторы для уменьшения выбросов, но для провалов фронтов это не помогает. Помогает только уменьшение длины линии, а уменьшить длину нет возможности.
Может нужно ставить повторитель?

Спасибо.
atlantic
Цитата(Политех @ May 19 2008, 11:12) *
Дорбый день!

Прошу совета по поводу формы фронтов тактового сигнала.
Сигнал идёт от ЦП к ПЛИС к основной тактовый для работы ПЛИС. Пример на рисунке.
Будет ли работать корректно ПЛИС с таким клоком? Частота тактового сигнала - 100 МГц.
Зелёный - передатчик(ЦП), красный - приёмник(ПЛИС).

Последовательно на обоих концах поствавил резисторы для уменьшения выбросов, но для провалов фронтов это не помогает. Помогает только уменьшение длины линии, а уменьшить длину нет возможности.
Может нужно ставить повторитель?

Спасибо.

если ставить то CLK Driver(возможно дифференциальный), а один резистор вроде лишний(возле load).

p.s. Странная архитектура CLK у вас , обычно делают:
OSC-> FPGA(PLL,DLL)->[CLK Driver(опционально)] -> все остальное ->обратная связь->FPGA
LeonY
Для atlantic: тактовые цепочки CPU -> FPGA используются довольно часто, например в TI DSP для синхронизации циклов шин. Так что ничего странного в архитектуре CLK я не усматриваю.

Теперь по сути вопроса: картинка, конечно паршивая и неизвестно как поведет себя FPGA при таком CLK. Первое, что могу посоветовать, это убрать последовательный резистор на стороне LOAD и оставить только на стороне DRIVE. Вообще впервые слышу о такой конфигурации. Кстати, а каково значение резистора?

Вторая возможность: запустить, например, HyperLynx в режиме LineSim (а лучше BoardSim) и проверить поведение CLK на модели - может поможет изменение ширины дорожки, LayerStack, величина последовательного резистора и т.д. Естественно надо использовать правильные IBIS модели для DRIVE и LOAD.

Можно поиграться с резисторами/конденсаторами на стороне LOAD, но это уже шаманство, хотя как Short Term solution часто работает.

Ну в худшем случае поставить CLK driver чтобы уменьшить длину дорожки (хотя часто это довольно муторно - плату надо резать, корпус навесу паять, проводки тянуть - все это увеличивает количество точек неоднородностей и, соответсвенно, результат не очень предсказуем)
Politeh
Процессор TMS320DM643.

(ПЛИС)Spartan-3, две SDRAM(Micron) и Flash(Atmel) сидят на EMIF этого процессора.
Для тактирования шины EMIF используется отдельный клок, а этот, выше рассматриваемый клок, используется именно как основной клок для ПЛИС.

В HyperLynx это всё и моделирую с соответсвующими IBIS моделями.
Резистор последовательный у LOAD убрал, и в общем-то немного лучше. Ширину дорожки менял и пробовал делать согласование с резисторами, но всё равно провал остаётся. Помогает только уменьшение длины линии.

Думаю, что без повторителя здесь не обойтись.

Посоветуйте какой лучше поставить повторитель(в смысле доступности среди известных поставщиков в России) и какие могут быть проблемы?
Что значит "резать плату"? Это же пока моделирование и проектирование.
Uree
Вообще-то странно - если согласовать линию, то фронт должен быть вполне нормальным. Ну не 50см же у Вас ее длина?
Кстати да - приведите длину линии, и стэк слоев, тогда легче прикидывать будет.
Ну а в общем, при моделировании техасовские процы не отличаются качественными сигналами на выходах, есть такое. Поэтому может действительно придется ставить какой-нибудт драйвер по выходу.
atlantic
Цитата(Политех @ May 19 2008, 13:25) *
Процессор TMS320DM643.

(ПЛИС)Spartan-3, две SDRAM(Micron) и Flash(Atmel) сидят на EMIF этого процессора.
Для тактирования шины EMIF используется отдельный клок, а этот, выше рассматриваемый клок, используется именно как основной клок для ПЛИС.

В HyperLynx это всё и моделирую с соответсвующими IBIS моделями.
Резистор последовательный у LOAD убрал, и в общем-то немного лучше. Ширину дорожки менял и пробовал делать согласование с резисторами, но всё равно провал остаётся. Помогает только уменьшение длины линии.

Думаю, что без повторителя здесь не обойтись.

Посоветуйте какой лучше поставить повторитель(в смысле доступности среди известных поставщиков в России) и какие могут быть проблемы?
Что значит "резать плату"? Это же пока моделирование и проектирование.

Проблема может быть из за вносимой задержки CLK driver'a,
а если ставить драйвер то можно и от TI, там выбор есть.

Так у вас ECLKIN приходит с FPGA?

вообще есть app note
Interfacing Xilinx FPGAs to TI DSP Platforms Using the EMIF
там расписаны задержки итп. хотя наверно вы уже это читали.
Politeh
Цитата(Uree @ May 19 2008, 13:46) *
Вообще-то странно - если согласовать линию, то фронт должен быть вполне нормальным. Ну не 50см же у Вас ее длина?
Кстати да - приведите длину линии, и стэк слоев, тогда легче прикидывать будет.
Ну а в общем, при моделировании техасовские процы не отличаются качественными сигналами на выходах, есть такое. Поэтому может действительно придется ставить какой-нибудт драйвер по выходу.


Длина линии 95 мм.

Стэк на рисунке.

Цитата(atlantic @ May 19 2008, 13:50) *
Проблема может быть из за вносимой задержки CLK driver'a,
а если ставить драйвер то можно и от TI, там выбор есть.

Так у вас ECLKIN приходит с FPGA?

вообще есть app note
Interfacing Xilinx FPGAs to TI DSP Platforms Using the EMIF
там расписаны задержки итп. хотя наверно вы уже это читали.


Нет, все клоки(синхронизация EMIF и основной клок) идут от процессора к ПЛИС.
Упомянутый вами документ так же смотрел.
atlantic
Цитата(Политех @ May 19 2008, 14:54) *
Длина линии 95 мм.

Стэк на рисунке.
Нет, все клоки(синхронизация EMIF и основной клок) идут от процессора к ПЛИС.
Упомянутый вами документ так же смотрел.

по идее на такую длину не надо никакого clk драйвера, вполне последовательного резистора(~22 Om) должно хватить(и то можно наверно без него).
Politeh
Цитата(atlantic @ May 19 2008, 15:24) *
по идее на такую длину не надо никакого clk драйвера, вполне последовательного резистора(~22 Om) должно хватить(и то можно наверно без него).


Без резистора слишком большой всплеск на принимающей стороне до 4.4 В. Конечно может это и не смертельно, но всё таки так сигналы красивее и соответсвенно без всплесков и помехи будут меньше наводиться.
Rex
Может есть смысл пустить дорожку по внутреннему слою, между полигонами земли\питания (полагаю, это 3-ий проводящий сверху).
Или может что-то рядом кростоки наводит, тогда нужно увеличить расстояние до соседних трасс.
Если толщина слоев варьируема, то можно попробовать уменьшить толщину диэлектрика между слоем с клоком и земельным полигоном.
Ковылин_Константин
На картинке 100мгц изображено. Примерно 5 клеток период. Максимальная частота, с которой работает в этом спартане входной буфер максимально поддерживает где-то 600мгц. Те период минимальный одна клетка.

Теперь смотрим время нарастания сигнала - оно похоже на RC поцесс с временем тау около полклетки. Отсюда вывод, что ничего плохого от такого фронта не случится - клок не сможет два раза переключиться за время нарастания сигнала.

При добавлении последовательных резисторов в цепь увеличивается импеданс и как следствие увеличивает подверженность электростатическим наводкам на достаточно длинную линию. Например ссоседних проводников.

Думаю правильнее оставить два равных резистора и подобрать им минимальный номинал по картинке осциллографа. Осиллограф у вас так хорошо показывает в периодическом режиме?

Ещё длинная линия может сказаться например при близко работающем мобильнике. А у вас как раз получается длина близко к четверти волны мобильных...
Uree
Цитата(Ковылин_Константин @ May 19 2008, 17:43) *
...клок не сможет два раза переключиться за время нарастания сигнала.


Переключиться-то не сможет а вот сгореть... не знаю. У нас МАКСы от Альтеры сгорали когда длительность фронта клока была больше допустимой по даташитуsad.gif

Цитата(Ковылин_Константин @ May 19 2008, 17:43) *
При добавлении последовательных резисторов в цепь увеличивается импеданс и как следствие увеличивает подверженность электростатическим наводкам на достаточно длинную линию. Например ссоседних проводников.


Моделить и еще раз моделить - завал фронта не есть следствие кросталлка. Да и длина линии не большая. В материнках с ДДР2 памятью длины соизмеримы, а вот частоты нет...

Цитата(Ковылин_Константин @ May 19 2008, 17:43) *
Думаю правильнее оставить два равных резистора и подобрать им минимальный номинал по картинке осциллографа. Осиллограф у вас так хорошо показывает в периодическом режиме?


Никакого смысла оставлять два резистора нет(опять же моделитьsmile.gif И это не осцилл, это именно программа моделирования(там же на картинке так и написано - Hyperlynx 7.7:)

Цитата(Ковылин_Константин @ May 19 2008, 17:43) *
Ещё длинная линия может сказаться например при близко работающем мобильнике. А у вас как раз получается длина близко к четверти волны мобильных...


А какая длина волны на плате для 900МГц? Как-то она с диэл. проницаемостью материала связана... И это не промоделишьsad.gif Только натурные испытания нужны.

В данном случае похоже все-таки именно характеристика драйвера сказывается, слабенький он что-ли... Есть мысль - попробуйте уменьшить емкостную составляющую дорожки. Положить ее например на топе, а в плэйнах под ней сделать вырез на один-два слоя вглубь и только на 3-4м слое референсную землю, т.е. фактически увеличить межслойный зазор. Емкость уменьшится, фронт должен стать менее заваленым. Правда для сохранения импеданса придется увеличивать ширину трассы(одлновременно с увеличением емкости к землеsmile.gif, но тут имхо лучше поиграться послед. резистором в цепи. Лучше она будет поуже а согласование резистором подтянуть.
bsp
Вообще-то по этой теме есть учебники...
Теперь по сути. Заявлена частота 100 МГц. Значит период 10 нсек. На осциллограмме они занимают 5 делений, т.е. 2нсек на деление. Длительность фронтов примерно в 10 раз меньше деления. Значит длительность фронта около 0.2 нсек. И тепер забудьте про частоту!!! Важна длительность фронта. Длина линии заявлена почти 10 см. При соединении точка - точка ( это лучший случай ) задержка сигнала на обычной печатной плате будет приблизительно 0.5 нсек. Все, у Вас длинная линия, т.к. длительность фронта меньше времени распространения, а не больше хотя-бы в 4 раза.
Вывод первый - согласование обязательно.
Далее. При передаче тактовой частоты использование последовательных резисторов крайне скользкий путь - легко получить немонотонные фронты сигнала.
Вывод второй - применить обычное согласование у приемника сигнала, например резисторный делитель на питание и землю. Если не намудрить с номиналами, то дает прекрасные результаты.

Все вышесказанное проверялось на практике, например при согласовании тактовых сигналов с фронтами порядка 0.3 нсек.
Politeh
Согласен с BSP. Я тоже много ковырялся в книгах, и дело именно в крутизне фронта, а не в частоте. Извиняюсь за не правильно сформулированный вопрос. Согласование с подтяжкой резисторов не пробовал, буду моделировать.

Спасибо всем за советы.
Politeh
Ещё вопрос.

Какие могут быть проблемы при использовании одного генератора тактовых импульсов для ПЛИС и ЦП с использованием распределителся тактовых сигналов? Тогда не нужно будет вести длинную линию от ЦП к ПЛИС в качестве источника тактового сигнала.
Politeh
Фронты сигнала удалось улучшить, однако хотелось бы увеличить крутизну фронтов.
Во-первых, сигналы улучшились при увеличении длины линии.
Линию также продлил за приёмник и поставил RC-цепочку(100 Ом + 50 пкФ), хотя волновое сопротивление линии = 50 Ом.
За два сантиметра до конца линии - короткий отвод на вход ПЛИС.

Так же есть последовательный резистор 10 Ом на выходе процессора для гашения пульсаций на приёмном конце в зонах 0 и 1.

В общем фронт получается длительностью около 1 нс.

Кто что скажет?

По поводу transition time на сайте www.xilinx.com нашёл следующий ответ на чей-то вопрос:


Spartan-3 - What is the maximum Tin (input signal transition time)?
AR# 23029
Part SelectIO-Timing/Const
Last Modified 2007-03-30 00:00:00.0
Status Active
Keywords operating, condition, max, maximum, rise, fall, Spartan-3
Description
Keywords: operating, condition, max, maximum, rise, fall, Spartan-3

What is the maximum Tin (input signal transition time) for Spartan-3 devices?

This is not available in the data sheet.


Solution
The Tin is not specified for Spartan-3 devices, as it represents an endorsement of poor design techniques.

Spartan-3/3E devices have a Schmidt trigger or a comparator for all inputs. For inputs with a comparator (VREF), the logic level is determined by the comparator. For LVTTL/LVCMOS, the logic level is determined by the minimum hysterysis.

Generally, slow input transitions should be avoided for the following reasons:

1. Poor design timing -- you do not know precisely when the threshold is crossed.
2. More power consumption -- the input consumes extra mA while in the threshold.
3. More susceptibility to noise -- the input picks up noise from the board and from ground bounce while near the threshold.

Hence, Tin is design-dependent.

In a slow design, combinatorial signals are allowed to be slow. Clocks should always be fast, as any ringing or ground bounce can lead to double-triggering.
RandI
А пробывали убрать последовательный резистор на стороне передатчика? Насколько я понимаю полочка на фронте это как раз следствие применения этого резистора.
bigor
Цитата(RandI @ Jun 2 2008, 07:17) *
А пробывали убрать последовательный резистор на стороне передатчика? Насколько я понимаю полочка на фронте это как раз следствие применения этого резистора.

Полочка на фронте - следствие несогласованости источника, линии и нагрузки.
Uree
Не обязательно из-за несогласованности. Уже не помню с каким именно чипом было, но видимо особенность драйвера - при любых согласованиях полочка оставалась. Правда работе устройства это в итоге не помешало.
bigor
Цитата(Uree @ Jun 2 2008, 12:47) *
Не обязательно из-за несогласованности. Уже не помню с каким именно чипом было, но видимо особенность драйвера - при любых согласованиях полочка оставалась. Правда работе устройства это в итоге не помешало.

Согласен. Не обязательно, если мы рассмотрим реальное устройство. Так-же были прецеденты smile.gif.
Но это ведь результаты моделирования. Неужели корявости работы драйвера заложены в его модель?
Uree
Ну по идее должны быть заложены, иначе толку с такой модели?smile.gif Насколько видно по ИБИС файлу, там вообще расписана ВАХ драйвера, может она снимается с реального прибора? Тогда и "корявости" в ней конечно будут. Может кто-нибудь знает, как готовится инфа для ИБИС-файлов, поделиться знаниями...
bigor
Тогда сразу назревает вопрос: зачем использовать устройства, которые по определению работают коряво?
Сомневаюсь я что TI будет вносить такую корявость в свою модель. К тому же ступенька у коллеги имеет разное значение (по амплитуде и времени) в зависимости от режимов согласования.
Цитата(Uree @ Jun 2 2008, 13:20) *
Насколько видно по ИБИС файлу, там вообще расписана ВАХ драйвера, может она снимается с реального прибора?

ВАХ устройства, равно как и все другие его параметры достаточно отличаются как внутри партии, так и от партии к партии. В модели скорее всего заложены идеализированые параметры, никак не связанные с реальным прибором. ИМХО.
Цитата(Uree @ Jun 2 2008, 13:20) *
Может кто-нибудь знает, как готовится инфа для ИБИС-файлов, поделиться знаниями...

Вот Вы и задали главный вопрос, из-за которого я не совсем доверяю моделированию.
Точнее отношусь к результатам моделирования с некоторым скепсисом. И скепсис этот тем выше, чем меньше параметров в модели учтено.
А реально у коллеги выходной имеданс ДСП ~200Ом, линия 50Ом, нагрузка высокомная, емкосная по сути.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.