Перейти к содержанию
    

Джиттер при большой загрузке ПЛИС

У меня такое явление. Кристалл Virtex 4 sx55, по лутам загружен на 78% по триггерам на 55%, по блочной памяти на 96, DSP 75%.

 

При начале работы основной схемы возникает жуткий джиттер на выходных тактах (200 Мгц). Они тактируют очень малую часть схемы.

 

Вопрос: правильно ли я связываю это явление с шумами внутри ПЛИС из-за одновременного переключения большого числа триггеров? Или это проблемы с питанием также из-за одновременного переключения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При начале работы основной схемы

А можно подробнее.

Что значит - основная схема, когда она начинает работать?

И какой период времени - "в начале"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно подробнее.

Что значит - основная схема, когда она начинает работать?

И какой период времени - "в начале"?

 

"Основная схема", означает что функционируют (переключаются триггера, перезаписывается память) все те ресурсы, которые я указал в вопросе. Так вот, когда основная схема функционирует, как раз и существует джиттер. Если на вход значимости данных в "основную схему" подать постоянный ноль ("отключить основную схему"), то джиттер исчезнет. В этот момент работает только "оболочка основной схемы" (интерфейсы), которая занимает ничтожное количество ресурсов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Развязка питания сделана референсно?

 

Что вы имеете ввиду под словом "референсно"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня такое явление. Кристалл Virtex 4 sx55, по лутам загружен на 78% по триггерам на 55%, по блочной памяти на 96, DSP 75%.

 

При начале работы основной схемы возникает жуткий джиттер на выходных тактах (200 Мгц). Они тактируют очень малую часть схемы.

 

Вопрос: правильно ли я связываю это явление с шумами внутри ПЛИС из-за одновременного переключения большого числа триггеров? Или это проблемы с питанием также из-за одновременного переключения?

 

Я склонен считать, что это плохая ЭМС внутри кристалла. Этот эффект я долго изучал в свое время на платах с Virtex-4 SX35, по питанию весь кристалл был усеян конденсаторами 0402 по 10нФ, проверял осциллографом - пульсации не превышали 10mV. Сами по себе VCO, входящие в состав DCM обладают очень большими шумами (очень большой джиттер). Чтобы выйти из этой ситуации вручную выбирал какая именно DCM будет отвечать за тот или иной клок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы выйти из этой ситуации вручную выбирал какая именно DCM будет отвечать за тот или иной клок.

 

А как DCM выбирали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что вы имеете ввиду под словом "референсно"?

Как производитель рекомендует.

 

Сами по себе VCO, входящие в состав DCM обладают очень большими шумами (очень большой джиттер).

Это правда (потому что это DCM, а не PLL), однако этот джиттер, обусловленный ее конструкцией от загруженности ПЛИС меняться не должен IMHO.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как производитель рекомендует.

 

Всё в полном соответствии с рекомендацией. Проверяли. :(

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это правда (потому что это DCM, а не PLL), однако этот джиттер, обусловленный ее конструкцией от загруженности ПЛИС меняться не должен IMHO.

 

DCM - это и есть PLL, только другими словами, как-то копался в американских патентах и нашел описание этой DCM, там и про частоты было сказано и особенности работы. Джиттер очень сильно зависит от загруженности ПЛИС, посмотрите хотя бы на то, какими путями идет сигнал на вход CLKFB, замыкающий петлю ФАПЧ, не трудно представить как изменится джиттер если на этот сигнал чего-нибудь наведется.

Еще кстати на джиттер влияет задержка в петле ФАПЧ - "Feedback Tap Delays", если хотите джиттер поменьше ставьте "Source-Synchronous" вместо "System-Synchronous".

 

А как DCM выбирали?

Используйте аттрибут RLOC_ORIGIN, можно в самом .vhdl/.v, можно в .ucf. Читайте "Constraints Guide" cgd.pdf и "Virtex-4 User Guide" ug070.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Используйте аттрибут RLOC_ORIGIN

 

Да как установить на желаемое место я знаю. А я спросил, как вы определили подходящее место. :)

 

Теперь, думаю, придется к чертям собачьим выкинуть DCM-ку (она работала как синтезатор частоты) и попросить прислать нужную частоту из соседнего ПЛИСа.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да как установить на желаемое место я знаю. А я спросил, как вы определили подходящее место. :)

Методом научного тыка :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

DCM - это и есть PLL, только другими словами, как-то копался в американских патентах и нашел описание этой DCM, там

 

а Вы уверены? во всех бумагах ксайлинса упирается на то, что DLL (основной компонент DCM) они делают на цифровой логике, а не VCO.

поэтому оно стабильнее и по моему опыту тактирование в ксайлинсах значительно лучше тактирования альтер, кроме джитера, который обусловлен у ксайлинса дискретностью линии задержки. то есть элемент задержки 0.6нс(?) в спартанах и 0.3(?) в виртексах и является минимально допустимым джитером.

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а Вы уверены? во всех бумагах ксайлинса упирается на то, что DLL (основной компонент DCM) они делают на цифровой логике, а не VCO.

У ксайлинкс DCM состоит как минимум из двух компонентов - DLL + DFS (Digital Frequency Synthesizer). Если бы в них не было синтезатора, они занимали бы намного меньше места

 

С PLL немного погорячился, спутал с Virtex-5, соответственно и VCO там нет. Но джиттер определяется не шагом задержки, который составляет 5-60ps, а какими-то другими параметрами, возможно схемой SSC (Spread-Spectrum Clock).

 

Рост джиттера в своей схеме я обнаружил, когда с увеличением размера проекта стал периодически сбоить блок цифровой обработки. Невыполнение времянок было исключено, потому как сам блок был написан с помощью так называемых "Hard Macros", т.е. расположение на кристалле и связи были предопределены и не зависели от объема заполнения кристалла. Первоначально проблема была решена перебором всех DCM и выбором наилучшего из них, в следующих проектах просто перешел на внешний синтезатор и о проблемах со сбоями забыл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для rloc: как были сделаны "Hard Macros", только размещение или разводка тоже была зафиксирована и законстрейнена?

 

для icyrock: как и чем вы смотрите выходные сигналы на которых джиттер? что выводится на эти ножки?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...