|
Cyclone III PLL bug, Откуда дровишки(+) |
|
|
|
Dec 29 2009, 08:16
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Добрый день господа! Есть у меня проект 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 поможет выяснить ситуацию
--------------------
|
|
|
|
|
 |
Ответов
(45 - 59)
|
Jan 3 2010, 14:26
|

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

|
Цитата(des00 @ Jan 3 2010, 19:48)  попробывать то можно, но вот логического обоснования не вижу %). Ушел коннект с c0 на внешний пин, затем пошел на ближайший CLKCTRL блок, там прошел через мультиплексоры и ушел через буфер. Буфер этот скорее всего с высокоомным входом и сильно низкоомным выходом. ну, омы буфера слабо коррелируют с reverse isolation. по аналогии с усилителем, он имеет мощный выход(такую сеть на такой тактовой тянуть), маленькие размеры, меры по защите входа от выхода уже нужны. а если еще и вход высокоомный, сами понимаете.. Цитата Каким местом выход этого буфера даст наводку на вход этого буфера, а тем более на выделенную линию связи PLLCLKOUT в принципе не понятно. выход буфера - мощный, согласование - хреновое в общем случае, линия связи соединена с входом буфера.
|
|
|
|
|
Jan 6 2010, 05:01
|

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

|
Цитата(des00 @ Jan 5 2010, 17:55)  Т.е. enable chain не сильно то и причем. Получается косяк в количестве хлопающей логики. мысль о недостаточной развязке клоков на этом и основывалась: клок логики самый разветвленный, большие блоки при срабатывании вполне могут давать просадку (по уровню, на самом клоке). судя по децибелам, что вы привели, просадку в момент строба должно быть хорошо видно на осциллографе. непонятен механизм наводки этого "грязного" клока на клок АЦП. а если попробовать так: задействовать 2 PLL, одна только для АЦП, вторая только для логики. upd: собрал на стартер-ките(EP3CF324) системку с PLL и ниосом. входной клок 50 МГц идет на PLL, c0 (66 МГц) идет на пин PLLCLKOUT, с1 - на ниос (50 МГц, имитирует логику проекта). смотрю спектр с PLLCLKOUT (выведен на разъем), интересная картина:  видны гармоники и свои, и 50 МГц(паразитные). так что BGA не спасает )
|
|
|
|
|
Jan 6 2010, 08:37
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(vadimuzzz @ Jan 5 2010, 23:01)  а если попробовать так: задействовать 2 PLL, одна только для АЦП, вторая только для логики. сейчас смоюсь на работу и проверю Цитата видны гармоники и свои, и 50 МГц(паразитные). так что BGA не спасает ) ндя и это на альтеровском ките.... Цитата(Postoroniy_V @ Jan 6 2010, 00:25)  может это SSN?  Насколько я понимаю SSN относиться к наводкам на сигналы ввода/вывода когда много пинов переключаются одновременно. Под данную конкретную ситуацию это не сильно подходит %) Цитата(SM @ Jan 6 2010, 02:27)  Да это явно оно, к бабке не ходи, только я думаю, скорее всего это SSN в части SSO, особенно тех O, что рядом с PLL. ну вот откуда возьмутся наводки, когда клок выводился в отдельный, неиспользуемый порт, при этом по бокам у него была земля ?  UPD при этом slew rate везде выставлен самый медленный
--------------------
|
|
|
|
|
Jan 6 2010, 08:42
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(des00 @ Jan 6 2010, 11:37)  ну вот откуда возьмутся наводки, когда клок выводился в отдельный, неиспользуемый порт, при этом по бокам у него была земля ?  А какая разница-то, куда и как выводится клок, если, например, прыгает потенциал подложки под PLL-кой из-за того, что ее обложили скоростными портами с fast slew rate, нагруженными аццкими емкостями... Уже очень давно как все эти дела производителями ПЛИС свалены на разработчика содержимого ПЛИС, и ПЛИСы имеют ограничение по SSO куда более жесткое, чем можно максимально нагрузить при помощи среды разработки. Насчет расположения дифпар об этом среда хоть как-то заботится, а вот о расположении PLL по видимому нет. Да и есть уверенность в грамотности топологии разводки питания на плате? То, что это кит, вовсе не говорит, что индус, его разрабатывавший, все предусмотрел.
|
|
|
|
|
Jan 6 2010, 08:48
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(SM @ Jan 6 2010, 02:42)  А какая разница-то, куда и как выводится клок, если, например, прыгает потенциал подложки под PLL-кой из-за того, что ее обложили скоростными портами с fast slew rate, нагруженными аццкими емкостями... Уже очень давно как все эти дела производителями ПЛИС свалены на разработчика содержимого ПЛИС, и ПЛИСы имеют ограничение по SSO куда более жесткое, чем можно максимально нагрузить при помощи среды разработки. Насчет расположения дифпар об этом среда хоть как-то заботится, а вот о расположении PLL по видимому нет. Все так, но как уже писал. У ПЛИС используется 23 порта(!!!). При этом 10 это данные АЦП (вход), 1 клок АЦП(выход), 8 inout USB, 2 USB стробы (выходы), 2 USB флаги (входы). ВСЁ. USB используется в асинхроне, там эквивалентная частота около 8МГц. Остальные порты заглушены, в них выдается 0. Какие сверхскоростные интерфейсы вы тут видите? Цитата Да и есть уверенность в грамотности топологии разводки питания на плате? То, что это кит, вовсе не говорит, что индус, его разрабатывавший, все предусмотрел. Про кит да, никакой. А в человеке который разводил мою плату есть %) эффект проявляющейся на ней тот же самый.
--------------------
|
|
|
|
|
Jan 6 2010, 08:59
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(SM @ Jan 6 2010, 02:52)  Тогда остается превышение SSN не по SSO, а по количеству одновременно переключаемых тяжело нагруженных LE внутри. Как вариант - попробуйте уменьшить max_fanout синтезатору (точно знаю, что синплифай с латисом это умеют, а вот квартус - не знаю, но думаю должен ). спасибо за наводку, почитаю отчеты синтезатора и проверю эту идею. Цитата Или поставить более толстый кристалл, совместимый по пинам. в данном корпусе TQFP144, это самый жирный кристал. Проект и так заоптимален по размеру по самые помидоры, еле всё влезло %)
--------------------
|
|
|
|
|
Jan 6 2010, 11:44
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(SM @ Jan 6 2010, 03:10)  Вот это и есть IMHO основная причина. Я тут как-то с привидениями в латисе воевал - триггер сам изредка асинхронно сбрасывался... А причина была околопохожая. Наводка появилась когда заполненность кристалла была 40-50% и ИМХО плохой это метод ставить печеньку много толще чем нужно %) Хроники расследования : 1. Идея подвинуть клок на 90 градусов. PLL2/PLL3 - клок на АЦП отдельный со сдвигом на 90 градусов. не инвертированный. Результат -(23-25)Дб. Т.е. эффекта не дало 2. Максимальные фанауты в проекте : на одном сегменте enable - chain цепи 2532, остальные не выше 950. Поставил на ту enable секцию фанаут = 1000. результата не дало.
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|