Уменьшение метастабильности в проектах FPGA

Jason Howie
|  Создано: 21 Февраля, 2017  |  Обновлено: 11 Ноября, 2020

Здесь мы рассмотрим концепцию метастабильности в отношении цифровых схем – и, следовательно, проектов FPGA – и как её "проявление" может быть значительно уменьшено, просто соблюдая проверенные принципы проектирования, которые снижают её воздействие.

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

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

Здесь мы рассмотрим концепцию метастабильности в отношении цифровой схемы – и, следовательно, проектов FPGA – и как её "проявление" может быть значительно уменьшено, просто соблюдая проверенные принципы проектирования, которые снижают её воздействие.

Объяснение метастабильности

Метастабильность касается выходов регистров (или триггеров с тактированием в старом изложении) в цифровых схемах и потенциала для выходного терминала входить в «метастабильное состояние». Устройства FPGA обычно используют триггеры типа D. Прежде чем рассматривать, как может быть достигнуто такое состояние, хорошей идеей будет освежить в памяти некоторые базовые ключевые элементы времени, связанные с работой регистра:

«Время установки» – это минимальное время, в течение которого вход регистра должен оставаться стабильным до прихода следующего тактового сигнала. Обычно обозначается как Tsu в технических описаниях.

«Время удержания» – это минимальное время после прихода тактового сигнала, в течение которого вход регистра должен продолжать находиться в том же стабильном состоянии. Обычно обозначается как Th в технических описаниях.

«Задержка от такта до выхода» – это количество времени после прихода тактового сигнала, когда изменяется выход регистра. Это также называется «временем установления» или «временем распространения» регистра. Может быть указано в технических описаниях как, например, Tco, или Tphl и Tplh.

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

На следующем изображении показаны два примера входа асинхронных сигналов в синхронную систему. В верхнем примере сигнал передается между различными областями тактирования. В нижнем примере сигнал из незатактированной системы подается в затактированную (синхронную) систему.

Asynchronous System and Synchronous System Graphic

Проблема возникает, когда сигнал данных из одной области тактирования прибывает к логике регистра в другой области тактирования. Входящий сигнал данных из исходной области может изменяться в любой момент по сравнению с тактовым сигналом в целевой области – между двумя областями нет синхронности, нет знания о скоростях переходов в двух логических подсхемах. Если сигнал данных изменяется в момент, нарушающий требуемые времена установки или удержания для целевого регистра, выход этого регистра может войти в 'метастабильное состояние' – состояние, когда выходной сигнал не является ни логическим Низким, ни логическим Высоким, а находится в нестабильной зоне между ними.

Продолжительность времени, в течение которого выход остается метастабильным, может превышать указанное для регистра время задержки «от такта до выхода» (время установления). В большинстве случаев регистры быстро устраняют эту нестабильность выхода и возвращаются к одному из двух определенных (и стабильных) состояний. Однако проблема для дизайна заключается в том меньшинстве случаев, когда время для перехода в стабильное состояние недостаточно быстро, или выходной сигнал переходит в неправильный логический уровень.

На следующем изображении показан выход регистра в зависимости от перехода входного сигнала данных.

Output of a register

Рассмотрим три входа:

Вход A: Вход соблюдает время установки и удержания регистра, а выход доступен после времени задержки «от такта до выхода» устройства.

Вход B: Вход переходит во время установки регистра, с выходом, становящимся метастабильным до установления на правильный стабильный уровень за пределами времени задержки «от такта до выхода».

Вход C: Вход переходит во время удержания регистра, с выходом, становящимся метастабильным. Выход не только устанавливается в стабильное состояние за пределами времени задержки «от такта до выхода», но и устанавливается на неправильный логический уровень!

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

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

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

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

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

Синхронизация Асинхронных Сигналов

Возможно, наиболее распространенным и широко принятым решением проблемы метастабильности является добавление передней цепи для синхронизации входящего асинхронного сигнала с тактовым сигналом целевой синхронной схемы. В своей самой простой форме эта цепь состоит из одного или нескольких D-триггеров, соединенных вместе и тактируемых с использованием системного тактового сигнала цели. Это называется «цепочкой регистров синхронизации» или просто «синхронизатором». Дополнительная задержка, налагаемая каждым регистром, позволяет входящему сигналу восстановиться из любого метастабильного состояния, в которое он мог войти. Чем больше регистров в цепочке, тем больше задержка и, следовательно, больше времени для разрешения метастабильного выхода. Общая задержка часто называется «Временем Устранения Метастабильности». Обычно схема синхронизации состоит из двух регистров, но для критически важных приложений – таких как медицинские и военные – использование трех регистров не является редкостью. На следующем изображении показан пример добавления 2-ступенчатого синхронизатора на передний край синхронной системы для синхронизации входящего асинхронного сигнала.Логика рукопожатия между схемами в различных областях тактирования и/или логика FIFO также используется – в дополнение к синхронизации на переднем крае – для обеспечения приема корректных значений данных. Это особенно важно при работе с объединенной группой множественных асинхронных сигналов, каждый из которых может изменяться в любой момент и независимо друг от друга.

Самое слабое звено...

В цифровом дизайне может быть несколько различных областей тактирования и множество сигналов, передаваемых между ними. Кроме того, может быть множество внешних, асинхронных сигналов – поступающих извне (особенно для дизайна, реализованного на FPGA и использующего внешние периферийные компоненты и интерфейсы связи). В таких случаях не редкость нахождение множества синхронизирующих регистровых цепочек, обрабатывающих различные асинхронные передачи сигналов в рамках всей системы.

В терминах СКН (среднего времени наработки на отказ), каждая синхронизирующая цепь будет иметь своё 'значение'. Поскольку общая частота отказов для дизайна является суммой индивидуальных частот отказов для входящих в него синхронизирующих цепей, и частота отказов равна 1/СКН, вы можете легко увидеть, что синхронизирующая цепь с уменьшенным СКН по сравнению с другими, будет иметь общее негативное влияние на общий СКН для дизайна. Фактически, СКН для дизайна будет в основном следовать за СКН худшей синхронизирующей цепи – что может быть катастрофическим, если пять цепей имели СКН в миллион лет, а шестая цепь имела СКН всего 50 лет!!

Чтобы справиться с этим, решение заключается в добавлении еще одной стадии регистра к худшей синхронизирующей цепи в дизайне, тем самым увеличивая время установления метастабильности и значительно (если не экспоненциально!) улучшая СКН для этой цепи - и, следовательно, для всего дизайна.

Технология устройств - Быстрее против Меньше

Подводя итог, метастабильность (хотя об этом состоянии ничего стабильного и говорить не приходится!) возникает, когда входящий асинхронный сигнал переходит в нарушение времени Установки и/или Удержания регистра. Общая продолжительность времени, Установка + Удержание, по сути, определяет 'окно' для возникновения метастабильности – если хотите, 'окно метастабильности'.

Логично, что чем быстрее времена установки и удержания регистра, тем меньше окно метастабильности. Действительно, более быстрые семейства логики демонстрируют эти более короткие времена и, следовательно, снижают вероятность метастабильного события. Если метастабильное событие произойдет (напомним, что метастабильность нельзя полностью искоренить), регистры достаточно быстры, чтобы быстро восстановиться. Например, регистр из семейства 74F приведет к лучшему MTBF, чем устройство из семейства 74LS – два крайних полюса спектра скорости устройств.

С FPGA уменьшение размеров процесса (с 180 нм через 90 нм и далее до 65 нм, 40 нм и за их пределы) способствует увеличению скорости переключения транзисторов – что, как правило, улучшает MTBF из-за метастабильности. Однако преимущества уменьшенного размера не обходятся без потенциальных недостатков. Уменьшение геометрии естественным образом приводит к снижению напряжения питания. Во время метастабильного состояния выход с регистра обычно составляет половину от напряжения питания. По мере уменьшения напряжения питания разница напряжений между полным и половинным уровнями сокращается, что приводит к снижению усиления схемы и увеличению времени, необходимого регистрам для восстановления из метастабильного состояния.

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

Полезные ссылки

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

Метастабильность в цифровой логике (www.interfacebus.com)

FPGA-FAQ 0017: Расскажите о метастабильности (Филип Фридин)

Метастабильность в электронике (Википедия)

Что такое метастабильность? (www.asic-world.com)

Метастабильность в проектировании (The VLSI Homepage)

Белая книга: Понимание метастабильности в FPGA (Altera)

Примечание к применению: Восстановление метастабильного состояния в FPGA Virtex-II Pro (Питер Альфке, Xilinx)

Примечание к применению: Метастабильность и семейство ECLinPS (Инженерное приложение, ON Semiconductor)

Метастабильный отклик в 5-вольтовых логических схемах (Texas Instruments)

Об авторе

Об авторе

Джейсон Хоуи (Jason Howie) – руководитель отдела технической документации в Altium. Он обладает богатым опытом составления технических документов, чем он любит заниматься в ранние часы. До прихода в Altium в мае 2000 года Джейсон проработал чуть более 4 лет в Joint European Torus в Оксфордшире, Великобритания, в составе отдела машинного оборудования и систем защиты.

Связанные ресурсы

Связанная техническая документация

Вернуться на главную
Thank you, you are now subscribed to updates.