Politeh
May 19 2008, 08:12
Дорбый день!
Прошу совета по поводу формы фронтов тактового сигнала.
Сигнал идёт от ЦП к ПЛИС к основной тактовый для работы ПЛИС. Пример на рисунке.
Будет ли работать корректно ПЛИС с таким клоком? Частота тактового сигнала - 100 МГц.
Зелёный - передатчик(ЦП), красный - приёмник(ПЛИС).
Последовательно на обоих концах поствавил резисторы для уменьшения выбросов, но для провалов фронтов это не помогает. Помогает только уменьшение длины линии, а уменьшить длину нет возможности.
Может нужно ставить повторитель?
Спасибо.
atlantic
May 19 2008, 08:38
Цитата(Политех @ May 19 2008, 11:12)

Дорбый день!
Прошу совета по поводу формы фронтов тактового сигнала.
Сигнал идёт от ЦП к ПЛИС к основной тактовый для работы ПЛИС. Пример на рисунке.
Будет ли работать корректно ПЛИС с таким клоком? Частота тактового сигнала - 100 МГц.
Зелёный - передатчик(ЦП), красный - приёмник(ПЛИС).
Последовательно на обоих концах поствавил резисторы для уменьшения выбросов, но для провалов фронтов это не помогает. Помогает только уменьшение длины линии, а уменьшить длину нет возможности.
Может нужно ставить повторитель?
Спасибо.
если ставить то CLK Driver(возможно дифференциальный), а один резистор вроде лишний(возле load).
p.s. Странная архитектура CLK у вас , обычно делают:
OSC-> FPGA(PLL,DLL)->[CLK Driver(опционально)] -> все остальное ->обратная связь->FPGA
Для 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
May 19 2008, 10:25
Процессор TMS320DM643.
(ПЛИС)Spartan-3, две SDRAM(Micron) и Flash(Atmel) сидят на EMIF этого процессора.
Для тактирования шины EMIF используется отдельный клок, а этот, выше рассматриваемый клок, используется именно как основной клок для ПЛИС.
В HyperLynx это всё и моделирую с соответсвующими IBIS моделями.
Резистор последовательный у LOAD убрал, и в общем-то немного лучше. Ширину дорожки менял и пробовал делать согласование с резисторами, но всё равно провал остаётся. Помогает только уменьшение длины линии.
Думаю, что без повторителя здесь не обойтись.
Посоветуйте какой лучше поставить повторитель(в смысле доступности среди известных поставщиков в России) и какие могут быть проблемы?
Что значит "резать плату"? Это же пока моделирование и проектирование.
Вообще-то странно - если согласовать линию, то фронт должен быть вполне нормальным. Ну не 50см же у Вас ее длина?
Кстати да - приведите длину линии, и стэк слоев, тогда легче прикидывать будет.
Ну а в общем, при моделировании техасовские процы не отличаются качественными сигналами на выходах, есть такое. Поэтому может действительно придется ставить какой-нибудт драйвер по выходу.
atlantic
May 19 2008, 10:50
Цитата(Политех @ 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
May 19 2008, 11:54
Цитата(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, 12:24
Цитата(Политех @ May 19 2008, 14:54)

Длина линии 95 мм.
Стэк на рисунке.
Нет, все клоки(синхронизация EMIF и основной клок) идут от процессора к ПЛИС.
Упомянутый вами документ так же смотрел.
по идее на такую длину не надо никакого clk драйвера, вполне последовательного резистора(~22 Om) должно хватить(и то можно наверно без него).
Politeh
May 19 2008, 12:30
Цитата(atlantic @ May 19 2008, 15:24)

по идее на такую длину не надо никакого clk драйвера, вполне последовательного резистора(~22 Om) должно хватить(и то можно наверно без него).
Без резистора слишком большой всплеск на принимающей стороне до 4.4 В. Конечно может это и не смертельно, но всё таки так сигналы красивее и соответсвенно без всплесков и помехи будут меньше наводиться.
Может есть смысл пустить дорожку по внутреннему слою, между полигонами земли\питания (полагаю, это 3-ий проводящий сверху).
Или может что-то рядом кростоки наводит, тогда нужно увеличить расстояние до соседних трасс.
Если толщина слоев варьируема, то можно попробовать уменьшить толщину диэлектрика между слоем с клоком и земельным полигоном.
Ковылин_Константин
May 19 2008, 15:43
На картинке 100мгц изображено. Примерно 5 клеток период. Максимальная частота, с которой работает в этом спартане входной буфер максимально поддерживает где-то 600мгц. Те период минимальный одна клетка.
Теперь смотрим время нарастания сигнала - оно похоже на RC поцесс с временем тау около полклетки. Отсюда вывод, что ничего плохого от такого фронта не случится - клок не сможет два раза переключиться за время нарастания сигнала.
При добавлении последовательных резисторов в цепь увеличивается импеданс и как следствие увеличивает подверженность электростатическим наводкам на достаточно длинную линию. Например ссоседних проводников.
Думаю правильнее оставить два равных резистора и подобрать им минимальный номинал по картинке осциллографа. Осиллограф у вас так хорошо показывает в периодическом режиме?
Ещё длинная линия может сказаться например при близко работающем мобильнике. А у вас как раз получается длина близко к четверти волны мобильных...
Цитата(Ковылин_Константин @ May 19 2008, 17:43)

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

Цитата(Ковылин_Константин @ May 19 2008, 17:43)

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

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

И это не осцилл, это именно программа моделирования(там же на картинке так и написано - Hyperlynx 7.7:)
Цитата(Ковылин_Константин @ May 19 2008, 17:43)

Ещё длинная линия может сказаться например при близко работающем мобильнике. А у вас как раз получается длина близко к четверти волны мобильных...
А какая длина волны на плате для 900МГц? Как-то она с диэл. проницаемостью материала связана... И это не промоделишь

Только натурные испытания нужны.
В данном случае похоже все-таки именно характеристика драйвера сказывается, слабенький он что-ли... Есть мысль - попробуйте уменьшить емкостную составляющую дорожки. Положить ее например на топе, а в плэйнах под ней сделать вырез на один-два слоя вглубь и только на 3-4м слое референсную землю, т.е. фактически увеличить межслойный зазор. Емкость уменьшится, фронт должен стать менее заваленым. Правда для сохранения импеданса придется увеличивать ширину трассы(одлновременно с увеличением емкости к земле

, но тут имхо лучше поиграться послед. резистором в цепи. Лучше она будет поуже а согласование резистором подтянуть.
Вообще-то по этой теме есть учебники...
Теперь по сути. Заявлена частота 100 МГц. Значит период 10 нсек. На осциллограмме они занимают 5 делений, т.е. 2нсек на деление. Длительность фронтов примерно в 10 раз меньше деления. Значит длительность фронта около 0.2 нсек. И тепер забудьте про частоту!!! Важна длительность фронта. Длина линии заявлена почти 10 см. При соединении точка - точка ( это лучший случай ) задержка сигнала на обычной печатной плате будет приблизительно 0.5 нсек. Все, у Вас длинная линия, т.к. длительность фронта меньше времени распространения, а не больше хотя-бы в 4 раза.
Вывод первый - согласование обязательно.
Далее. При передаче тактовой частоты использование последовательных резисторов крайне скользкий путь - легко получить немонотонные фронты сигнала.
Вывод второй - применить обычное согласование у приемника сигнала, например резисторный делитель на питание и землю. Если не намудрить с номиналами, то дает прекрасные результаты.
Все вышесказанное проверялось на практике, например при согласовании тактовых сигналов с фронтами порядка 0.3 нсек.
Politeh
May 19 2008, 16:39
Согласен с BSP. Я тоже много ковырялся в книгах, и дело именно в крутизне фронта, а не в частоте. Извиняюсь за не правильно сформулированный вопрос. Согласование с подтяжкой резисторов не пробовал, буду моделировать.
Спасибо всем за советы.
Politeh
May 21 2008, 09:10
Ещё вопрос.
Какие могут быть проблемы при использовании одного генератора тактовых импульсов для ПЛИС и ЦП с использованием распределителся тактовых сигналов? Тогда не нужно будет вести длинную линию от ЦП к ПЛИС в качестве источника тактового сигнала.
Politeh
May 29 2008, 19:44
Фронты сигнала удалось улучшить, однако хотелось бы увеличить крутизну фронтов.
Во-первых, сигналы улучшились при увеличении длины линии.
Линию также продлил за приёмник и поставил 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 @ Jun 2 2008, 07:17)

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

Не обязательно из-за несогласованности. Уже не помню с каким именно чипом было, но видимо особенность драйвера - при любых согласованиях полочка оставалась. Правда работе устройства это в итоге не помешало.
Согласен. Не обязательно, если мы рассмотрим реальное устройство. Так-же были прецеденты

.
Но это ведь результаты моделирования. Неужели корявости работы драйвера заложены в его модель?
Ну по идее должны быть заложены, иначе толку с такой модели?

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

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

Может кто-нибудь знает, как готовится инфа для ИБИС-файлов, поделиться знаниями...
Вот Вы и задали главный вопрос, из-за которого я не совсем доверяю моделированию.
Точнее отношусь к результатам моделирования с некоторым скепсисом. И скепсис этот тем выше, чем меньше параметров в модели учтено.
А реально у коллеги выходной имеданс ДСП ~200Ом, линия 50Ом, нагрузка высокомная, емкосная по сути.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.