Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cyclone III PLL bug
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Страницы: 1, 2
des00
Добрый день господа!

Есть у меня проект Cyclone III (25 ка, 7 ка в TQFP144 корпусе), наблюдается там занятнейший баг.

Схема следующая ClockGen -> FPGA -> АЦП. Тактирование АЦП идет от ПЛИС (так сделано для удешевления, на Cyclone I/II работает без проблем). Сигнал переноситься из третьей зоны найквиста на ПЧ, потом идет обработка. С генератора идет тактовая 96МГц. Для эксперимента сделано две сборки : 1. Клок для АЦП берется с ПЛИС напрямую со входного порта. 2 Клок для АЦП берется с PLL в режиме работы 1:1. В остальном прошивки абсолютно одинаковые. С выхода АЦП сигнал сливается на комп, где по нему строим фурье.

1 ая сборка спектр сигнала чистый, а вот на второй видно что принимается два спектра сигнала, нужный и мешающий, с отстройкой по частоте на пару МГц. В процессе копания платы в спектре выходного сигнала PLL нашлась частота, преобразование которой дает мешающий спектр. Вот история в картинках

Входной клок на ПЛИС 96МГЦ
Нажмите для просмотра прикрепленного файла
Выходной клок с ПЛИС с работающей PLL
Нажмите для просмотра прикрепленного файла
Частота, преобразование с которой крайне не айс
Нажмите для просмотра прикрепленного файла
Та же частота когда работаем с 1 ой сборкой
Нажмите для просмотра прикрепленного файла

PLL стоит в режиме Auto (хотя проверял режимы Low/Medium/High), частота ГУНа 576МГц. Главный вопрос откуда взялась частота в 336МГц? На плате нет источников сигнала такой, либо кратной частоты, на гармонику ГУНа это тоже не похоже. Еще вопрос что такого PLL сделала с чистым сигналом, что его так разнесло?

Питание ПЛИС и PLL сделано как по даташиту. В схеме стоят импульсники, но замена их на хороший лабораторный источник питания результатов не дает. И самое занятное что точно так же сделаны платы на Cyclone I/II, там таких проблем нет. Это особенность третьих сыклонов, или особенность корпуса ?

ЗЫ. Может быть Stewart Little поможет выяснить ситуацию unsure.gif
cdg
Цитата(des00 @ Dec 29 2009, 11:16) *
Питание ПЛИС и PLL сделано как по даташиту.

1) Имеется в виду в соответствии с Cyclone® III Device Family Pin Connection Guidelines PCG-01003-1.0 ?
2) Включена ли компенсация фазы в PLL? (без компенсации джиттер много меньше)
vadimuzzz
Цитата(des00 @ Dec 29 2009, 14:16) *
PLL стоит в режиме Auto (хотя проверял режимы Low/Medium/High), частота ГУНа 576МГц. Главный вопрос откуда взялась частота в 336МГц? На плате нет источников сигнала такой, либо кратной частоты, на гармонику ГУНа это тоже не похоже. Еще вопрос что такого PLL сделала с чистым сигналом, что его так разнесло?

частота ГУНа 576МГц будет толькр в режимах Low/Medium, в High - 480. причем в Low он сначала опору поделит на 17, а в Medium - на 1. соответственно, в варианте Low ожидается большое число шпор. вариант High почти такой же как Medium, только несимметричный (duty cycle 40/60).
des00
Цитата(cdg @ Dec 29 2009, 02:46) *
1) Имеется в виду в соответствии с Cyclone® III Device Family Pin Connection Guidelines PCG-01003-1.0 ?
2) Включена ли компенсация фазы в PLL? (без компенсации джиттер много меньше)


1. Да.
2. Режим работы Normal mode, как я понимаю выходные частоты петлюются ко входной.

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

Цитата(vadimuzzz @ Dec 29 2009, 02:52) *
частота ГУНа 576МГц будет толькр в режимах Low/Medium, в High - 480. причем в Low он сначала опору поделит на 17, а в Medium - на 1. соответственно, в варианте Low ожидается большое число шпор. вариант High почти такой же как Medium, только несимметричный (duty cycle 40/60).


Для моих частот, по отчету мегавизарда в Low/Medium будет 576МГц, в High 384МГц, 336, ну никак не получается %)
cdg
Цитата(des00 @ Dec 29 2009, 11:56) *
Режим работы Normal mode, как я понимаю выходные частоты петлюются ко входной.

Интересно было бы видеть результат для MegaWizard=>Operation Mode=>With no compensation.
С капризами Cyclone III PLL пока не сталкивался, а вот Cyclone II PLL c сериалайзерами TI только в режиме With no compensation заработало.
vadimuzzz
Цитата
Для моих частот, по отчету мегавизарда в Low/Medium будет 576МГц, в High 384МГц, 336, ну никак не получается %)

странно, я ваши частоты и подставлял, пишет - 480 ). я имел в виду не 336, а вообще шпоры. многовато их у вас на картинке.
des00
Цитата(cdg @ Dec 29 2009, 03:03) *
Интересно было бы видеть результат для MegaWizard=>Operation Mode=>With no compensation.
С капризами Cyclone III PLL пока не сталкивался, а вот Cyclone II PLL c сериалайзерами TI только в режиме With no compensation заработало.


спасибо за идею посмотрю

Цитата(vadimuzzz @ Dec 29 2009, 03:07) *
странно, я ваши частоты и подставлял, пишет - 480 ). я имел в виду не 336, а вообще шпоры. многовато их у вас на картинке.


у меня 9.0сп1 пишет то, что я привел %)
des00
Хроники расследования.

Нашелся источник этой частоты. Проект представляет собой демодулятор, большая часть которого (~15K логики из 25) хлопает по enable который идет на частоте 96/2 = 48МГц, еще ~5K на 24МГц. И это лезет 7ая гармоника этой частоты. Enable подается не тупо из одного источника на все блоки, а выстроен в цепочку. Т.е. заходит на модуль, который хлопает на нем, и через триггер выходит на следующий модуль. Выяснилось это с помошью введения динамического отключения enable цепочки на разных участках.

Т.е. наводка садиться внутри корпуса и немного зависит от разводки. Качество питания линий 1.2(цифра, аналог)/3.3/2.5 при отключении enable цепи не изменяется. Проверялось на осциллографе и панорамнике. ПЛИС обвешана кондерами по 1.2(цифра)/3.3 как новогодняя елка. 2.2/0.1/0.01 + танталы. По аналогу все как по документации. Источник 3.3В импульсный 6А/лабораторный 5А. Источник на ядро импульсный 6А, на 2.5В линейник. Тока на такой проект должно хватать. Пайка автомат, вероятность не пропая exposed pad мала. Кроме того эффект есть на серии плат. Проброс клока по самому короткому пути, вывод сигнала с PLL через PLL_OUTPUT ноги эффекта не дает.

Похоже что электромагнитная обстановка внутри выводных корпусов CycloneIII не фонтан %( Что же там происходит внутри у 40 ки в PQFP, остается только догадываться (она заложена у нас в паре проектов) %(
cdg
Интересно всетаки как она(наведенная помеха) пролезает в PLL, пробовали без компенсации фазы включить, по идее должно дать эффект.
des00
Цитата(cdg @ Dec 29 2009, 23:28) *
Интересно всетаки как она(наведенная помеха) пролезает в PLL, пробовали без компенсации фазы включить, по идее должно дать эффект.


это не пробывал. я сделал проще, взял генератор на 2*96 = 192. Поделил в альтере на триггере, до 96. Пустил на глобальный и на АЦП (т.е. PLL вообще убрал). Эффект тот же. Минут 5 парил в прострации, видя такое бл...во %)
vadimuzzz
Цитата(des00 @ Dec 30 2009, 10:27) *
Хроники расследования.

Нашелся источник этой частоты. Проект представляет собой демодулятор, большая часть которого (~15K логики из 25) хлопает по enable который идет на частоте 96/2 = 48МГц, еще ~5K на 24МГц. И это лезет 7ая гармоника этой частоты.

тогда должны быть и остальные гармоники. 336 - это самая большая по уровню?
des00
Цитата(vadimuzzz @ Dec 30 2009, 00:08) *
тогда должны быть и остальные гармоники. 336 - это самая большая по уровню?


на снимках кстати они есть, 336 эта та, которая больше всего мне гадит. он заворачивает мне в сигнал его копию, но со смещением по частоте. Из за этого КАМовские точки становятся КАМовскими яйцами %)
DmitryR
Цитата(des00 @ Dec 29 2009, 11:16) *
Тактирование АЦП идет от ПЛИС (так сделано для удешевления

А вот теперь скажите в назидание тем, кто пойдет за вами: с учетом полученного геммороя, вы удешевили? Ведь цена вопроса была - 1 клоковый буфер на два выхода, один доллар.
des00
Цитата(DmitryR @ Dec 30 2009, 01:07) *
А вот теперь скажите в назидание тем, кто пойдет за вами: с учетом полученного геммороя, вы удешевили? Ведь цена вопроса была - 1 клоковый буфер на два выхода, один доллар.


В данном конкретном случае 96МГц это частота опорного генератора, которую я подал для проверки, а для работы нужен ГУН с частотой 89.6МГц. На такую частоту генераторов с CMOS выходом не нашли. Поставили на 44.8. А когда я делил, я взял генератор на 179.2МГц, но т.к. он с LVPECL выходом потребовался буфер.

Т.е. цена вопроса была не один клоковый буфер. Кроме того такие схемы хорошо работают на Cyclone I/II.
_Anatoliy
Цитата(des00 @ Dec 30 2009, 09:40) *
На такую частоту генераторов с CMOS выходом не нашли.


Я стараюсь не подавать клок на АЦП из плис,а в своём демодуляторе применил генератор от Silabs Si571.
VslavX
Цитата(des00 @ Dec 30 2009, 06:27) *
Нашелся источник этой частоты.

Прошу простить за глупый вопрос (в ЦОС опыта никакого) - а как цифровой сигнал (тот что тактирует АЦП) с таким спектром выглядит - меандр с основной частотой + некоторый промодулированный джиттер?
des00
Цитата(_Anatoliy @ Dec 30 2009, 02:13) *
Я стараюсь не подавать клок на АЦП из плис,а в своём демодуляторе применил генератор от Silabs (Si570,Si571).


по идее так и надо делать, но делали дешевое решение и потому сделали так. Генераторов от силабса на требуемую мне частоту нет.

Цитата(VslavX @ Dec 30 2009, 02:15) *
Прошу простить за глупый вопрос (в ЦОС опыта никакого) - а как цифровой сигнал (тот что тактирует АЦП) с таким спектром выглядит - меандр с основной частотой + некоторый промодулированный джиттер?


несмотрел, не знаю %) а панорамник показывает анализ спектра.
_Anatoliy
Цитата(des00 @ Dec 30 2009, 10:23) *
по идее так и надо делать, но делали дешевое решение и потому сделали так. Генераторов от силабса на требуемую мне частоту нет.


Не понял - как это нет?В этих генераторах же DDS-ина стоит,самому можно программировать по I2C на нужную частоту.
Но мне было легче - условия дешевизны не было.
vadimuzzz
Цитата(des00 @ Dec 30 2009, 12:14) *
на снимках кстати они есть, 336 эта та, которая больше всего мне гадит. он заворачивает мне в сигнал его копию, но со смещением по частоте. Из за этого КАМовские точки становятся КАМовскими яйцами %)

т.е. там много палок по убывающей идут? я на снимках не разглядел. у себя в приемнике я тоже "КАМовские яйца" наблюдал, когда УКВ-радиостанцию поймал, которая близко к ПЧ была smile.gif
кстати, а можно поподробнее о питающих?
des00
Цитата(_Anatoliy @ Dec 30 2009, 02:53) *
Не понял - как это нет?В этих генераторах же DDS-ина стоит,самому можно программировать по I2C на нужную частоту.
Но мне было легче - условия дешевизны не было.


Просчет модема, разводку и конструирование платы выполняет другой человек, мой начальник. С меня прошивка и отладка модема с требуемым ТТХ. По его словам у фирмы силабс нет генераторов удовлетворяющих требуемым критериям. Мы заказываем у них генераторы но на другие частоты (для SDH систем).

UPD#1 в схеме заложены генераторы GVXO-523 на частоту 44.8МГц.

Цитата(vadimuzzz @ Dec 30 2009, 03:40) *
т.е. там много палок по убывающей идут? я на снимках не разглядел. у себя в приемнике я тоже "КАМовские яйца" наблюдал, когда УКВ-радиостанцию поймал, которая близко к ПЧ была smile.gif
кстати, а можно поподробнее о питающих?


На снимке Выходной клок с ПЛИС с работающей PLL видны первая и третья гармоники (две большие палки слева и справа от 96МГц), дальше по спектру они тоже есть. Это не наводка, модем стоит по радиошлейфу, меняя параметры спектра излучения передатчика видно что изменяются одинаково оба спектра, основной и помеха. Также это не наводка от передатчика, т.к. модулятор и демодулятор разнесены на разные чипы. И эффект есть когда модулятор и демодулятор находятся на разных платах. О питающих не совсем понял вопрос. Я уже писал параметры источников и обвязки ПЛИС %)

UPD#2 даже если положить что в демодулятор заложено не правильное решение, вопрос темы все равно не снимается. откуда такие наводки на внутренние/выходные сигналы ПЛИС при ее работе в третьем сыклоне в выводном 144 ногом корпусе.
Harbour
Может издержки технологии производства - чем мельче мелкосхема, тем толще партиз ... подобные баги ?
DmitryR
Конечно, ближе проводники друг к другу - больше наводки. Однако вот еще вопрос: тактовая частота с PLL выведена наружу через PLLCLKOUT или нет?
des00
Цитата(Harbour @ Dec 30 2009, 05:24) *
Может издержки технологии производства - чем мельче мелкосхема, тем толще партиз ... подобные баги ?

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

Цитата(DmitryR @ Dec 30 2009, 05:34) *
Однако вот еще вопрос: тактовая частота с PLL выведена наружу через PLLCLKOUT или нет?

В посте №8 уже писал "Проброс клока по самому короткому пути, вывод сигнала с PLL через PLL_OUTPUT ноги эффекта не дает. "
DmitryR
Ну то что QFP шумнее BGA это как бы не секрет, не даром от них отказываются несмотря на то, что они дешевле. А что PLLCLKOUT не дает эффекта - это странно. А питание самой PLL отфильтровано, бусина стоит? А то может наводки-то все-таки по питанию проходят, а не внутри кристалла.
des00
Цитата(DmitryR @ Dec 30 2009, 05:57) *
Ну то что QFP шумнее BGA это как бы не секрет, не даром от них отказываются несмотря на то, что они дешевле. А что PLLCLKOUT не дает эффекта - это странно. А питание самой PLL отфильтровано, бусина стоит? А то может наводки-то все-таки по питанию проходят, а не внутри кристалла.


в посте 1 писал что все сделано по рекомендациям Cyclone® III Device Family Pin Connection Guidelines PCG-01003-1.0 ?
в посте 8 что просмотр качества питания по панорамнику не выявил изменений на выводах питания в ситуациях когда наводка есть и когда ее нет.

UPD #1 точнее эффект есть, уровень спектра помехи падает на ~3-5Дб. А что бы он не мешал надо завалить его ~25-30Дб
Iouri
а если поменять частоту клока,
или пин микрохемы,куда выдается клок
может наводка все же по плате?

удачи
des00
Цитата(Iouri @ Dec 30 2009, 07:44) *
а если поменять частоту клока,
или пин микрохемы,куда выдается клок
может наводка все же по плате?


в посте № 14 я писал про то что родной клок был с PLL на 89.6, для отладки использовался генератор на 96МГц. спектр помехи передвинулся в точном соответствии с изменением частоты %). Если двигать частоты несущего генератора передатчика/примёмника/шлейфа спектр сигнал/помехи ведет себя в полном соответствии со сдвигами частот. Пины микросхемы менял, не помогает. %(

Можно было бы подобрать частоту такую что бы увести спектр помехи подальше, но тогда я либо выхожу из третьей зоны найквиста, либо упираюсь в максимальную тактовую АЦП %(
Iouri
а есть возможность заменить микросхему/посмотреть другую плату?

если не трудно можно на картику с осцилографа взглянуть?

если есть нормальный spectrum analyzer то можно попробовать near field probe
поводить над платой
des00
Цитата(Iouri @ Dec 30 2009, 09:52) *
а есть возможность заменить микросхему/посмотреть другую плату?

если не трудно можно на картику с осцилографа взглянуть?

если есть нормальный spectrum analyzer то можно попробовать near field probe поводить над платой


В работе есть две платы, на полке еще 10ть. Баг на этих двух платах, остальные еще не заводил. Картинку с осциллографа, только после праздников. Выпрошу у соседнего отдела легрой на 10 гиг. Остальные осцилы, что у меня есть нормальную картинку не дадут. Насчет анализатора спектра не понял. Вы хотите сказать что где то ПЛИС излучает и предлагаете поискать место излучения? Думаю врядли это антенный эффект %)
Iouri
я думаю что плис не узлучает а излучает что то другое думаю что
прежде чем грешить на плис нужно разобраться с платой

на ликрое долна быть софтина которая анализирут джитер
можно попробовать ее
dvladim
Цитата(des00 @ Dec 30 2009, 07:27) *
Т.е. наводка садиться внутри корпуса и немного зависит от разводки.

И все же внутри корпуса или внутри кристалла? Попробуйте вариант, когда ядро щелкает на паразитной частоте, а выводы замаскированы? В этом случае может помочь отделить входной и выходной пины клока от других через несколько непереключающихся пинов. Если внутри кристалла, попробуйте прокинуть паразитный клок через неглобальную шину. Т.е. разделить глобальную/неглобальную для нужного и паразитного клоков (или энейблов).
vadimuzzz
Цитата(des00 @ Dec 30 2009, 16:29) *
На снимке Выходной клок с ПЛИС с работающей PLL видны первая и третья гармоники (две большие палки слева и справа от 96МГц), дальше по спектру они тоже есть.

их бы побольше (гармоник) снять, амплитуды померять, форму импульса прикинуть, тогда можно и конкретный сигнал "обвинить".
Цитата
О питающих не совсем понял вопрос. Я уже писал параметры источников и обвязки ПЛИС %)

2.5В идет только на PLL и JTAG? на I/O - везде 3,3? тогда скорее всего лезет через 1,2. если, конечно, по питанию. ткнитесь анализатором спектра в питание PLL.
Цитата
UPD#2 даже если положить что в демодулятор заложено не правильное решение, вопрос темы все равно не снимается. откуда такие наводки на внутренние/выходные сигналы ПЛИС при ее работе в третьем сыклоне в выводном 144 ногом корпусе.

разобраться надо обязательно. хотя бы ради будущих поколений )
еще вопросик, а как расположены входной пин клока/выходной пин на АЦП?
des00
Цитата(dvladim @ Dec 30 2009, 13:05) *
Попробуйте вариант, когда ядро щелкает на паразитной частоте, а выводы замаскированы?

вы имеете в виду подать на АЦП и ее обвязку один клок, а на остальную логику другой?

Цитата
В этом случае может помочь отделить входной и выходной пины клока от других через несколько непереключающихся пинов.

Так и сделано, все выводы отключены, кроме выводов АЦП и усб логера(работает на частоте ~10МГц, на противоположной стороне плис) для связи с компом.

Цитата
Если внутри кристалла, попробуйте прокинуть паразитный клок через неглобальную шину. Т.е. разделить глобальную/неглобальную для нужного и паразитного клоков (или энейблов).

В посте 8 я писал что проброс по короткому пути. минуя глобальные линии результата не дает и то что enable не сидит на глобальной линии, потому как используется enable chain.

Цитата(vadimuzzz @ Dec 30 2009, 20:50) *
их бы побольше (гармоник) снять, амплитуды померять, форму импульса прикинуть, тогда можно и конкретный сигнал "обвинить".

В посте 1 писал что две прошивки отличаются только источником тактирования. В одном случае клок идет с порта. В другом с PLL в режиме 1к1. Берем панорамник, ставим определенный частотный диапазон и сравниваем 2 прошивки, прошивая через житаг. Так нашли частоту, увидели что она может завернуться в полосу в том месте где стоит помеха. А после того как было сделано динамическое отключение enable chain вышли на этот сигнал.

Цитата
2.5В идет только на PLL и JTAG? на I/O - везде 3,3? тогда скорее всего лезет через 1,2. если, конечно, по питанию. ткнитесь анализатором спектра в питание PLL.

Да так и сделано. В посте 8 я писал что на осцилле и панорамнике проверялись все питающие линии. На них наводка не обнаружена.

Цитата
еще вопросик, а как расположены входной пин клока/выходной пин на АЦП?

Изначально входной/выходной были сделаны для PLL_3 (т.е. использовалась пара GCLK/PLLCLKOUT для этой PLL). Потом выходной пин был перекинут на другую сторону ПЛИС в свободный банк. Альтернативный генератор был подключен к PLL_2, выводились сигналы на разные стороны кристалла. Результат везде был один. Наводка не уходила, хотя уровень ее плавал.

Был такой такой баг (паразитный спектр) и при разработке демодулятора. Баг такой : наводки не было до тех пор пока ПЛИС не заполнилась больше чем на половину. Потом от разводки к разводке уровень помехи плавал в пределах +-10Дб. Один раз получилось так : когда я в ручную оптималил проект и задействовал все регистры в умножителях, наводка просела на ~20Дб (забитость была 60%), но когда я сбросил базу инкрементальной компиляции и забил полный демодулятор на 99% плис, она вылезла в полный рост. Теперь она не уходит %)
DmitryR
А что, хорошая идея, которая до сих пор почему-то никому не пришла: задайте констрейны по площади, уберите всю логику в другой угол кристалла от PLL. Если у вас кристалл не забит конечно под завязку. Еще разделите сигнал, идущий наружу и тактирующий логику (сделайте два одинаковых выхода у PLL). Но IMHO 30дБ еще к приведенным картинкам - недостижимо.
des00
Цитата(DmitryR @ Dec 31 2009, 02:29) *
А что, хорошая идея, которая до сих пор почему-то никому не пришла: задайте констрейны по площади, уберите всю логику в другой угол кристалла от PLL. Если у вас кристалл не забит конечно под завязку.

у итоговой прошивки ресурсы по умножителям 100%, память 40%, логика 99%.... %)

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

Цитата(des00 @ Dec 31 2009, 11:53) *
Изначально входной/выходной были сделаны для PLL_3 (т.е. использовалась пара GCLK/PLLCLKOUT для этой PLL). Потом выходной пин был перекинут на другую сторону ПЛИС в свободный банк. Альтернативный генератор был подключен к PLL_2, выводились сигналы на разные стороны кристалла. Результат везде был один. Наводка не уходила, хотя уровень ее плавал.

а если вывести клок на пин рядом с PLL?
dvladim
Цитата(des00 @ Dec 31 2009, 08:53) *
вы имеете в виду подать на АЦП и ее обвязку один клок, а на остальную логику другой?

Так и сделано, все выводы отключены, кроме выводов АЦП и усб логера(работает на частоте ~10МГц, на противоположной стороне плис) для связи с компом.

В посте 8 я писал что проброс по короткому пути. минуя глобальные линии результата не дает и то что enable не сидит на глобальной линии, потому как используется enable chain.

Имеется ввиду влияние топологии кристалла.
Во-первых, влияет ли количество ресурсов тактируемых от паразитной частоты? (Вы писали, что тактируется примерно 10к из 25к). Если разницы от количетсва ресурсов не будет, то возможно виновата трассировка глобальных шин (клоки). Для разделения этих вещей нужно разные клоки пустить разными путями - например один из них глобальным, а другой неглобальным. По топологии рядом они не будут и влиять будут меньше.
Если же дело в количестве элементов переключающихся на паразитрой частое, то дело в локальной просадке напряжения. Если снаружи кристалла с фильтрацией ядра все в порядке (а я так понял, что там все в порядке по словам "обвешана как елка") то с этим ничего сделать невозможно.

PS. Я вообще правильно понял, что в ПЛИС заходят два клока - из первого делается клок для АЦП, второй тактирует основное количество логики?
PPS. Я это все к тому, что подача питания и трассировка от кристалла до внешних ног в корпусах QFP и BGA сильно различается и результаты расследования могут дать информацию о том, можно ли применять такие реализации в BGA. Т.е. вопрос не праздный.
VslavX
Цитата(Iouri @ Dec 30 2009, 15:44) *
а если поменять частоту клока,
или пин микрохемы,куда выдается клок
может наводка все же по плате?

А нельзя ли по фазе попробовать отстроиться? Внутри все переключения делаем по одному тактовому, а на АЦП выдаем сдвинутый на 90 (или на любой другой подходящий угол) - тогда, по идее, все переключения что внутри ПЛИС происходят, будут иметь минимальное влияние на фронты внешнего сигнала.
des00
Цитата(vadimuzzz @ Dec 31 2009, 08:12) *
а этот enable, по которому демодулятор работает, по глобальному пути проложен?

кхм, я три раза в этой теме (последний раз в посте 33) сказал что нет %)

Цитата
а если вывести клок на пин рядом с PLL?

геометрически PLLCLKOUT находиться как раз рядом с PLL. Это видно в Fpga editore

Цитата(dvladim @ Dec 31 2009, 17:04) *
Во-первых, влияет ли количество ресурсов тактируемых от паразитной частоты? (Вы писали, что тактируется примерно 10к из 25к).

В посте 33 я писал что зависит, в посте 8 что 15к хлопает на enable == clk/2 и еще 5 к на enable == clk/4.

Цитата
PS. Я вообще правильно понял, что в ПЛИС заходят два клока - из первого делается клок для АЦП, второй тактирует основное количество логики?

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

Цитата
PPS. Я это все к тому, что подача питания и трассировка от кристалла до внешних ног в корпусах QFP и BGA сильно различается и результаты расследования могут дать информацию о том, можно ли применять такие реализации в BGA. Т.е. вопрос не праздный.

меня тоже интересует этот вопрос, когда я обнаружил сие поведение минут 5 парил в прострации от сего факта %)


Цитата(VslavX @ Jan 1 2010, 06:42) *
А нельзя ли по фазе попробовать отстроиться? Внутри все переключения делаем по одному тактовому, а на АЦП выдаем сдвинутый на 90 (или на любой другой подходящий угол) - тогда, по идее, все переключения что внутри ПЛИС происходят, будут иметь минимальное влияние на фронты внешнего сигнала.

хмм, надо подумать. Пока как запасной я хочу реализовать дробный приемник (АЦП работает на частоте не целочисленно кратной символьной приемного потока) и пробросить на АЦП сигнал от него.
vadimuzzz
еще вопросик: а как в проекте с пинами? сколько используется/не используется. как сконфигурированы те, что не используются. особенно интересно в районе клока.

и еще, возвращаясь к варианту с PLL. логика запитывается с PLL_OUT, как и АЦП? или на логику идет GCLK(PLL_IN), а на АЦП PLL_OUT?
des00
Цитата(vadimuzzz @ Jan 1 2010, 23:46) *
еще вопросик: а как в проекте с пинами? сколько используется/не используется. как сконфигурированы те, что не используются. особенно интересно в районе клока.

кхм, в посте 33 об этом писал %) Фотографии в посте 1 сделаны при использовании 10 пинов АЦП, 1 клок + 12 пинов усб. Клок выводился по разному, в том числе GND GND CLK GND GND. Уменьшения заметно не было.

Цитата
и еще, возвращаясь к варианту с PLL. логика запитывается с PLL_OUT, как и АЦП? или на логику идет GCLK(PLL_IN), а на АЦП PLL_OUT?

вопрос не понятен. Используется вывод PLLCLKOUT с с0 выхода PLL и потом глобальный тактовый буфер.
vadimuzzz
Цитата(des00 @ Jan 2 2010, 23:28) *
вопрос не понятен. Используется вывод PLLCLKOUT с с0 выхода PLL и потом глобальный тактовый буфер.

а потом с буфера и на АЦП, и на логику? я к тому, что у вас по всей микрухе параллельно идут клок и мешающий строб. тут как ни крутись, а перекрестных помех не избежать (кстати, об этом намекает спектр, помеха села аддитивно), особенно при таком кол-ве задействованной логики. поэтому клок для АЦП стоит развязывать от клока ПЛИС всеми способами. один вариант предложил VslavX. я говорю примерно о том же: вход с GCLK идет на глобальный буфер (для запитки логики) и на вход PLL (только для АЦП). при таком раскладе длина трассы клока АЦП внутри ПЛИС минимальна и на ней не сидят "левые" потребители. или логику запитать с PLL, а на АЦП пробросить входной клок. а лучше так - сделать 2 выхода с PLL, с0 - на пин для АЦП, c1 для логики.
des00
Цитата(vadimuzzz @ Jan 2 2010, 19:48) *
а потом с буфера и на АЦП, и на логику? ....

либо мы с вами читаем разные даташиты, либо что-то не так %)

Cyclone III Device Handbook -> 6. Clock Networks and PLLs in Cyclone III Devices -> Cyclone III PLL -> External Clock Outputs
Цитата
Each Cyclone III PLL supports one single-ended clock output (or one differential pair). Only the C0 output counter can feed the dedicated external clock outputs, as shown in Figure 6–9, without going through the global clock network. Other output counters can feed other I/O pins through the global clock network

Я понимаю это так, что используется самая оптимальная схема вывода клока из ПЛИС, как с точки зрения джиттера, так и с точки зрения наводок. Глобальный буфер ставиться уже после точки ответвления клока на PLLCLKOUT. Потому роли и не играет.

Цитата
вход с GCLK идет на глобальный буфер (для запитки логики) и на вход PLL (только для АЦП). при таком раскладе длина трассы клока АЦП внутри ПЛИС минимальна и на ней не сидят "левые" потребители. или логику запитать с PLL, а на АЦП пробросить входной клок.

это только в том случае если частота генератора равна требуемой частоте, в моем случае это не так.

Цитата
а лучше так - сделать 2 выхода с PLL, с0 - на пин для АЦП, c1 для логики.

В посте 8 я писал что сделал сборку вообще без PLL, используя генератор и его деление на триггере. результат тот же самый. На клоке наводка.
vadimuzzz
Цитата(des00 @ Jan 3 2010, 13:27) *
Я понимаю это так, что используется самая оптимальная схема вывода клока из ПЛИС, как с точки зрения джиттера, так и с точки зрения наводок. Глобальный буфер ставиться уже после точки ответвления клока на PLLCLKOUT. Потому роли и не играет.

я с даташитом и не спорю ), но: так уж и не играет? буфер дает бесконечную развязку вход/выход(особенно нагруженный на такую сеть)? мне как-то более правильным кажется c0 пустить на АЦП, а c1 - на логику. хотя бы тупо попробовать )
Цитата
В посте 8 я писал что сделал сборку вообще без PLL, используя генератор и его деление на триггере. результат тот же самый. На клоке наводка.

так клок для триггера и для логики общий? результат не удивляет. кстати, это был пост №10 )
des00
Цитата(vadimuzzz @ Jan 3 2010, 03:51) *
я с даташитом и не спорю ), но: так уж и не играет? буфер дает бесконечную развязку вход/выход(особенно нагруженный на такую сеть)? мне как-то более правильным кажется c0 пустить на АЦП, а c1 - на логику. хотя бы тупо попробовать )

попробывать то можно, но вот логического обоснования не вижу %). Ушел коннект с c0 на внешний пин, затем пошел на ближайший CLKCTRL блок, там прошел через мультиплексоры и ушел через буфер. Буфер этот скорее всего с высокоомным входом и сильно низкоомным выходом. Каким местом выход этого буфера даст наводку на вход этого буфера, а тем более на выделенную линию связи PLLCLKOUT в принципе не понятно.

Цитата
так клок для триггера и для логики общий? результат не удивляет. кстати, это был пост №10 )

уже писал что делал и общий глобальный и отдельно выделенный путь для АЦП и делитель делал отдельно выделенный с триггером для АЦП в IO буфере. Результат везде был один.

ЗЫ. побить в бубен то можно, но вот логического обоснования не видно %)
DmitryR
Цитата(des00 @ Jan 3 2010, 16:48) *
Ушел коннект с c0 на внешний пин, затем пошел на ближайший CLKCTRL блок

Таким образом, нагрузка на с0 получилась 2 вместо одного. Вобщем, я тоже уже советовал разделить на разные выводы PLL тактирование внешних и внутренних схем. IMHO искать смысл в чем-то разумно тогда, когда на пробу уходят значительные силы. Когда на это уходит одна перекомпиляция - надо попробовать и забыть.
vadimuzzz
Цитата(des00 @ Jan 3 2010, 19:48) *
попробывать то можно, но вот логического обоснования не вижу %). Ушел коннект с c0 на внешний пин, затем пошел на ближайший CLKCTRL блок, там прошел через мультиплексоры и ушел через буфер. Буфер этот скорее всего с высокоомным входом и сильно низкоомным выходом.

ну, омы буфера слабо коррелируют с reverse isolation. по аналогии с усилителем, он имеет мощный выход(такую сеть на такой тактовой тянуть), маленькие размеры, меры по защите входа от выхода уже нужны. а если еще и вход высокоомный, сами понимаете..
Цитата
Каким местом выход этого буфера даст наводку на вход этого буфера, а тем более на выделенную линию связи PLLCLKOUT в принципе не понятно.

выход буфера - мощный, согласование - хреновое в общем случае, линия связи соединена с входом буфера.
des00
ок после праздников проверю.
des00
Хроники расследования :

Забежал на пару часов на работу, проверил несколько идей. Результаты отрицательные.

1. Идея насчет изоляции клока АЦП от всего в схеме. Условия : PLL_3, с0 - только АЦП, с1/с2 - только система. c0 идет на PLLCLKOUT. Результат : помеха остается. Если инверсии клока нет то уровень помехи -28дБ. Если инверсия клока есть уровень помехи -23дБ.

2. Проверка использования другой PLL. Условия: PLL_2. Результат тот же -23/-28Дб.

Еще заметил интересную вешь. Есть у меня сигнал сброса CIC фильтров, в этом случае с выхода CIC фильтров летят нули. Так вот помеха пропадает в случаях :
1. Отключаю enable chain
2. Включаю сброс CIC фильтров.

Т.е. enable chain не сильно то и причем. Получается косяк в количестве хлопающей логики.
vadimuzzz
Цитата(des00 @ Jan 5 2010, 17:55) *
Т.е. enable chain не сильно то и причем. Получается косяк в количестве хлопающей логики.

мысль о недостаточной развязке клоков на этом и основывалась: клок логики самый разветвленный, большие блоки при срабатывании вполне могут давать просадку (по уровню, на самом клоке). судя по децибелам, что вы привели, просадку в момент строба должно быть хорошо видно на осциллографе. непонятен механизм наводки этого "грязного" клока на клок АЦП. а если попробовать так: задействовать 2 PLL, одна только для АЦП, вторая только для логики.
upd:
собрал на стартер-ките(EP3CF324) системку с PLL и ниосом. входной клок 50 МГц идет на PLL, c0 (66 МГц) идет на пин PLLCLKOUT, с1 - на ниос (50 МГц, имитирует логику проекта). смотрю спектр с PLLCLKOUT (выведен на разъем), интересная картина:

видны гармоники и свои, и 50 МГц(паразитные). так что BGA не спасает )
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.