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

 
 
7 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Cyclone III PLL bug, Откуда дровишки(+)
dvladim
сообщение Dec 30 2009, 19:05
Сообщение #31


Знающий
****

Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



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

И все же внутри корпуса или внутри кристалла? Попробуйте вариант, когда ядро щелкает на паразитной частоте, а выводы замаскированы? В этом случае может помочь отделить входной и выходной пины клока от других через несколько непереключающихся пинов. Если внутри кристалла, попробуйте прокинуть паразитный клок через неглобальную шину. Т.е. разделить глобальную/неглобальную для нужного и паразитного клоков (или энейблов).
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Dec 31 2009, 02:50
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



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

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

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

разобраться надо обязательно. хотя бы ради будущих поколений )
еще вопросик, а как расположены входной пин клока/выходной пин на АЦП?
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 31 2009, 05:53
Сообщение #33


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(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% плис, она вылезла в полный рост. Теперь она не уходит %)


--------------------
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 31 2009, 08:29
Сообщение #34


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



А что, хорошая идея, которая до сих пор почему-то никому не пришла: задайте констрейны по площади, уберите всю логику в другой угол кристалла от PLL. Если у вас кристалл не забит конечно под завязку. Еще разделите сигнал, идущий наружу и тактирующий логику (сделайте два одинаковых выхода у PLL). Но IMHO 30дБ еще к приведенным картинкам - недостижимо.
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 31 2009, 11:08
Сообщение #35


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(DmitryR @ Dec 31 2009, 02:29) *
А что, хорошая идея, которая до сих пор почему-то никому не пришла: задайте констрейны по площади, уберите всю логику в другой угол кристалла от PLL. Если у вас кристалл не забит конечно под завязку.

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

Есть у меня пара идей, но это только после праздников.


--------------------
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Dec 31 2009, 14:12
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



а этот enable, по которому демодулятор работает, по глобальному пути проложен?

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

а если вывести клок на пин рядом с PLL?
Go to the top of the page
 
+Quote Post
dvladim
сообщение Dec 31 2009, 23:04
Сообщение #37


Знающий
****

Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



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

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

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

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

PS. Я вообще правильно понял, что в ПЛИС заходят два клока - из первого делается клок для АЦП, второй тактирует основное количество логики?
PPS. Я это все к тому, что подача питания и трассировка от кристалла до внешних ног в корпусах QFP и BGA сильно различается и результаты расследования могут дать информацию о том, можно ли применять такие реализации в BGA. Т.е. вопрос не праздный.
Go to the top of the page
 
+Quote Post
VslavX
сообщение Jan 1 2010, 12:42
Сообщение #38


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



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

А нельзя ли по фазе попробовать отстроиться? Внутри все переключения делаем по одному тактовому, а на АЦП выдаем сдвинутый на 90 (или на любой другой подходящий угол) - тогда, по идее, все переключения что внутри ПЛИС происходят, будут иметь минимальное влияние на фронты внешнего сигнала.
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 1 2010, 14:12
Сообщение #39


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(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 (или на любой другой подходящий угол) - тогда, по идее, все переключения что внутри ПЛИС происходят, будут иметь минимальное влияние на фронты внешнего сигнала.

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


--------------------
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jan 2 2010, 05:46
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



еще вопросик: а как в проекте с пинами? сколько используется/не используется. как сконфигурированы те, что не используются. особенно интересно в районе клока.

и еще, возвращаясь к варианту с PLL. логика запитывается с PLL_OUT, как и АЦП? или на логику идет GCLK(PLL_IN), а на АЦП PLL_OUT?
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 2 2010, 17:28
Сообщение #41


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(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 и потом глобальный тактовый буфер.


--------------------
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jan 3 2010, 01:48
Сообщение #42


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



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

а потом с буфера и на АЦП, и на логику? я к тому, что у вас по всей микрухе параллельно идут клок и мешающий строб. тут как ни крутись, а перекрестных помех не избежать (кстати, об этом намекает спектр, помеха села аддитивно), особенно при таком кол-ве задействованной логики. поэтому клок для АЦП стоит развязывать от клока ПЛИС всеми способами. один вариант предложил VslavX. я говорю примерно о том же: вход с GCLK идет на глобальный буфер (для запитки логики) и на вход PLL (только для АЦП). при таком раскладе длина трассы клока АЦП внутри ПЛИС минимальна и на ней не сидят "левые" потребители. или логику запитать с PLL, а на АЦП пробросить входной клок. а лучше так - сделать 2 выхода с PLL, с0 - на пин для АЦП, c1 для логики.
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 3 2010, 07:27
Сообщение #43


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(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, используя генератор и его деление на триггере. результат тот же самый. На клоке наводка.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jan 3 2010, 09:51
Сообщение #44


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



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

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

так клок для триггера и для логики общий? результат не удивляет. кстати, это был пост №10 )
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 3 2010, 13:48
Сообщение #45


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



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

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

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

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

ЗЫ. побить в бубен то можно, но вот логического обоснования не видно %)


--------------------
Go to the top of the page
 
+Quote Post

7 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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