Про метастабильности в електроніці

Багато початківці розробники часто недооцінюють вплив асинхронності на роботу цифрових схем. У проектах з одним тактовим генератором складнощів не виникає: схема повністю синхронна, і від розробника потрібно тільки дотримуватися вимоги Setup і Hold. Але як тільки в системі з'являється другий тактовий генератор, виникає проблема CDC – Clock Domains Crossing, пов'язана з асинхронностью роботи ділянок схеми, що працюють від незалежних (асинхронних) генераторів. На практиці ця проблема виливається у ускладнення маршруту проектування, пов'язане з особливостями статичного тимчасового аналізу в САПР, а в залозі проявляється у вигляді такого ефекту як метастабильность, і аномальну поведінку тригерів. Власне, про метастабильности тут вже писали, але я пропоную трохи глибше розібратися в проблемі.

На початку кілька вступних слів. Про таких критичних для роботи параметри тригера як setup і hold докладно написано тут. У двох словах, поблизу моменту приходу тактового сигналу на вхід тригера існує якийсь мінімальний інтервал часу, всередині якого сигнал на інформаційному вході повинен залишатися стабільним. Якщо зміна сигналу відбувається за межами цього інтервалу, тригер спрацьовує правильно. Це мінімальні вимоги, які повинен дотримуватися розробник, проектуючи схему з одним тактовим генератором. І навіть якщо в проекті використовується кілька кратних частот, отриманих з однієї опорної, схема також вважається синхронною, а максимум, про що слід дбати при проектуванні, це дотримання Setup і Hold.

Тепер уявімо, що в проекті використовуються два незалежних джерела тактирования. Всі тригери в схемі поділяються на два домену, за принципом керування від однієї або іншої опорної частоти. Між цими асинхронними один одному доменами проходить межа у вигляді сигналів, сформованих на одній опорній частоті, і заходять на інформаційні входи тригерів, які працюють на іншій частоті. Фактично, сигнал на входах тригерів виявляється асинхронен їх тактового імпульсу, що означає, що необхідні часи Setup і Hold не можуть бути витримані. У результаті, в роботі тригерів на кордоні двох доменів зрідка виникають аномалії (фактично — збої), які на тимчасове моделюванні зазвичай позначається як невизначений стан тригера X, і розфарбовуються на вейвформе червоним кольором. В реальній схемі це аномальне стан тригера може виявитися тривалим спрацьовуванням, оскільки для потрапляння тригера в область метастабильности, вхідний сигнал повинен змінитися в значно вужчому відрізку часу, ніж ts + th:


На малюнку показано: tc – абсолютна час приходу фронту тактового імпульсу, що є нульовим відліком для осі Hold (спрямована вправо від нуля), і осі Setup. Вісь Setup спрямована вліво, оскільки час установки відраховується в негативному напрямку від моменту приходу фронту клока. Далі, ts і th – параметри Setup і Hold тригера: між відмітками ts і th сигнал на інформаційному вході тригера зобов'язаний бути стабільним (червона область малюнка). Поза вікна ts + th сигнал може змінюватися довільно (синя область малюнка). При зміні сигналу всередині вікна ts + th, перемикання тригера може сильно затягнутися. Останній елемент малюнка – область метастабильности, виділена помаранчевим кольором. Це певний інтервал часу, при попаданні в який поведінку виходів тригера стає непередбачуваним, про що буде докладно розказано нижче. На практиці, час th часто буває від'ємним (вікно ts + th з тієї або іншої причини виявляється зрушено вліво відносно нульової позначки), а ширина області метастабильности повинна визначатися індивідуально для кожної схеми тригера і параметрів транзисторів – експериментально, або з допомогою спайс-моделювання.

Розглянемо пристрій класичної схеми D-тригера і складової його RS-скоби:



Уявімо, що на вхід R (Reset) засувки приходить короткий імпульс з активним нулем, а на вході S (Set) – пасивний сигнал (лог. 1). Якщо імпульс зовсім короткий, то засувка може не перейти. А якщо збільшити тривалість імпульсу? Проведемо серію експериментів, подаючи на вхід засувки імпульси різної тривалості. Наступний малюнок запозичений з статті Л. Н. Марино General Theory of Metastable Operation:


На малюнку позначені дві осі – напруга на X і Y виходах RS-засувки. Позначки V0 і V1 – напруга лог. 1 і лог. 0 виходів тригера, а Vm – напруга, рівна ½ Uпитания. На малюнку так само показано, що початковий стан (Initial state) знаходиться в точці площини {X=1, Y=V0} — виходи тригера {X, Y} взяли логічні значення {1,0}. На вхід засувки S (Set) поданий високий потенціал (пасивне значення), а на вхід R (Reset) подається імпульс з активним нулем різної тривалості (6-самий короткий, 1-найдовший – зображено внизу малюнка). У відповідності з номером імпульсу на вході R, на малюнку показано 6 траєкторій перемикання потенціалів пари виходів {Y,X}: для імпульсів 1-3 відбувається повне перемикання тригера, для імпульсів 5-6 тригер не перейде, а траєкторія 4 призводить тригер в центр зони метастабильности (точка {Vm,Vm}), що знаходиться посередині між порогами лог. 1 і лог. 0.

Отже, ми показали, що подавши на одне плече засувки імпульс недостатньої тривалості, його енергії може не вистачити для повного перемикання. При великій тривалості імпульсу, засувка зобов'язана переключиться. І, нарешті, можна підібрати вхідний імпульс такої тривалості, що виходи засувки виявляться посередині між двома стабільними станами. При цьому, чим ближче до області метастабильности підштовхує виходи засувки енергія імпульсу, тим довше потім ці виходи відновлюють стабільний стан.

Тепер звернемося до сучасної схему D-тригера з бібліотеки для 65нм, що використовується при проектуванні ASIC:


На схемі з інформаційного входу D варто ключ GD, перша засувка зображена у вигляді двох інверторів у зустрічному включенні I1 і G1, прохідний ключ SW поділяє засувки, а друга засувка будується так само на двох інверторах у зустрічному включенні I2 і G2. Вихід для підвищення швидкості береться з лівого плеча другої засувки. Тригер працює наступним чином: при CK=0 вхідний ключ пропускає сигнал на першу засувку з відключеною зворотним зв'язком G1, ключ між засувками закритий, а друга засувка перебуває на зберіганні, оскільки активна зворотній зв'язок G2. При CK=1 перша засувка відсікається від входу D, у неї активізується зворотній зв'язок G1, відмикається ключ між засувками, а у другої засувки вимикається зворотній зв'язок – дані з першої засувки переписуються в другу. Якщо сигнал D знімається раніше приходу переднього фронту CK, ми отримуємо на вході першої засувки імпульс з активним нулем, чия тривалість залежить тільки від співвідношення фронтів CK і D. Таким чином, ситуація аналогічна розглянутої з RS-засувкою: енергія імпульсу на одному з плечей може перемкнути засувку, не перемкнути, або ввести засувку в стан метастабильности. У статті Л. Н. Марино математично доведено, що виходи абсолютно будь-тригера, незалежно від його конструкції, можуть приймати метастабільний стан.

Спробуємо розглянути всі можливі стани виходів засувки; для цього побудуємо ще один графік з двома осями-потенціалами виходів. Графік запозичений з лекцій з логічного проектування д. т. н., професора В. Б. Мараховского:


Графік майже такий же, як і в статті Л. Н. Марино, але стрілками зображені траєкторії можливого поведінки виходів засувки. Рухаючись по траєкторіях, виходи засувки в кінцевому рахунку переключаться в стійке логічне стан {1,0} або {0,1}, відповідне станом на входах (стан входу замкнулася). Але при попаданні потенціалу виходів в якусь область по центру графіка, передбачити кінцевий стан виходів неможливо. Це область нестійкого рівноваги (метастабильности), на вихід з якої можуть впливати тільки випадкові фактори, такі як тепловий шум. Кінцеве стан виходів засувки при завершенні метастабильности заздалегідь невідомо – воно може бути будь-яким ({1,0} або {0,1}). Розмір області метастабильности вимірюється експериментально, або обчислюється за допомогою спайс-моделювання. Слід зазначити, що на практиці метастабильность проявляється не тільки у вигляді статичного потенціалу, рівного ½ Uпитания, але також і у вигляді слабких пульсацій поблизу цієї точки. Іншою важливою властивістю метастабильности є непередбачуваність часу встановлення засувки в стабільний стан. Як відомо, час виходу засувки з метастабільного стану описується розподілом Пуассона, і в теорії може бути нескінченно довгим. Таким чином, не можна заздалегідь передбачити не тільки кінцевий стан тригера після виходу з метастабильности, але і тривалість метастабільного стану в часі. Втім, якщо сигнал на вході тригера не змінюється і в наступному такті, то максимальна тривалість метастабільного стану виходів тригера на кордоні двох доменів не перевищує тривалості тактового імпульсу.

Формули і методики розрахунку розмірів області метастабильности і частоти збоїв можна подивитися в статті Variability in Multistage Synchronizers. Наведу лише результати розрахунків частоти збоїв з цієї статті. Як синхронізатора використовувалися схеми послідовного з'єднання 2х, 3х і 4х тригерів, що працюють від імпульсу з періодом 800пс, і діапазоном частот вхідного сигналу від 600пс до 2нс.


На графіку по вертикальній осі відкладено MTBF в роках – термін між збоями (попадання в метастабільний стан — збій) при використанні різних синхронізаторів на вході в домен, який працює від такту з періодом 800пс. По горизонталі відкладено період тактового імпульсу домену – джерела сигналу. Як видно з малюнка, чим більше тригерів в ланцюжку синхронізатора, тим рідше відбуваються збої.

Висновки
1. Час перемикання тригера цілком і повністю залежить від тривалості керуючого імпульсу на вході першої засувки, який виходить зсувом фази приходу сигналу до тактового імпульсу на входах тригера. При перемиканні сигналу за межами інтервалу ts + th, тригер перемикається правильно, і за заздалегідь відоме час. Але, якщо вхідний сигнал змінився всередині цього інтервалу, то стабільного стану тригер досягає тим довше, чим ближче до зони метастабильности він опинився. Якщо ж виходи тригера опинилися всередині зони метастабильности, їх кінцеве логічне стан і час спрацьовування не можуть бути передбачені.

2. Метастабильность виходів тригера виглядає на осцилографі як рівень потенціалу виходів, дорівнює ½ Uпитания, або як слабкі пульсації поблизу цього рівня. При цьому в інверторах схеми тригера тече наскрізний струм між шинами землі і харчування. Але оскільки опір відкритого каналу в n — і p — транзисторах вимірюється килоОмами, то наскрізний струм не справляє помітного впливу на такі явища як загальне споживання схеми, просадка харчування (IR drop), і электромиграция.

3. На частотах близько гігагерца збій (внаслідок метастабильности) в тригері на кордоні двох доменів відбувається раз на кілька секунд. Боротися з метастабильностью допомагає використання як синхронізатора двох і більше послідовно включених тригерів. При використанні двох тригерів, збій на виході синхронізатора трапляється вже раз в рік; трьох тригерів – раз на тисячу років; чотирьох тригерів – раз в 10 мільярдів років. Зниження робочої частоти впливає на частоту збоїв експоненціально: при використанні синхронізатора з двох тригерів і частоті близько 500 мгц, інтервал збоїв збільшиться на кілька порядків – до одного збою в мільйон років. Тому, якщо Ви проектуєте схему з частотами під гігагерц, постарайтеся використовувати як можна менше асинхронних доменів, або збільшуйте число послідовно включених тригерів в синхронизаторах до трьох.

4. На частоту збоїв сильно впливають паразитні ємності виходів першої та другої засувок (складових тригер), які залежать від параметрів використовуваних транзисторів та схеми тригера. Іншими словами, змінюючи параметри транзисторів і схему тригера, можна опосередковано впливати і на періодичність виникнення метастабильности на виході цього тригера. Рецепт годиться, тільки якщо Ви проектуєте власну бібліотеку елементів.

5. З точки зору статичного тимчасового аналізу, всі шляхи між асинхронними доменами повинні бути описані sdc констрейнтами set_false_path.

Метастабильность тригерів в Росії ніким не вивчається (поправте, якщо не правий), але на практиці розробнику досить слідувати тим простим рекомендаціями, що надані вище; сподіваюся, це кому-небудь виявиться корисним.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.