Решение проблемы метастабильности в цифровых системах на базе FPGA


PDF версия

В статье описывается проявление метастабильности в FPGA, рассматриваются причины ее возникновения и влияние на работу схемы. Расчет среднего времени между отказами (MTBF), вызванными метастабильностью, позволяет определить, следует ли разработчику предпринимать шаги для снижения вероятности этих отказов. В статье описана методика расчета MTBF на основе параметров схемы, и предложен метод улучшения надежности системы и увеличения MTBF. Статья представляет собой перевод [1].


Что такое метастабильность?

Метастабильность — это явление, которое может вызывать сбои системы в цифровых устройствах, подобных FPGA, когда сигнал передается между асинхронными областями схемы. Для каждого регистра схемы определены требования к временным параметрам сигналов, что позволяет им корректно захватывать данные и формировать выходной сигнал. Сигнал на входе регистра должен быть стабильным в течение минимального времени установки до прихода фронта тактового сигнала (tSU) и минимального времени удержания после прихода фронта тактового сигнала (tH).
Выходной сигнал регистра доступен через определенное время задержки после прихода тактового сигнала (tCO). Если установленные значения tSU или tH нарушаются, то сигнал на выходе регистра может перейти в метастабильное состояние. Метастабильный выходной сигнал регистра некоторое время колеблется между высоким и низким уровнями, что означает появление задержки переключения выхода в стабильное состояние, которая превышает специфицированное значение времени tCO.
В полностью синхронных системах входные сигналы должны отвечать определенным требованиям, предъявляемым к временным параметрам, поэтому там метастабильность не встречается. Наиболее часто проблемы метастабильности возникают, когда сигнал передается между несвязанными областями синхронизации системы или в полностью асинхронных системах. В таких системах разработчик не может гарантировать, что сигнал будет отвечать требованиям по tSU или tH, т.к. сигнал может появиться в любой момент времени относительно тактового сигнала области назначения. Если время прихода сигнала нарушает заданные для регистра tSU или tH, то вероятность того, что регистр перейдет в метастабильное состояние, а также время установления стабильного состояния зависят от режимов работы и технологического процесса изготовления прибора.
Регистр, захватывающий сигнал данных на фронте тактового сигнала, можно сравнить с мячом, заброшенным на вершину холма, как показано на рисунке 1. Нижняя часть по обеим сторонам холма представляет собой стабильные состояния — новое и старое значения данных после переключения сигнала, а вершина холма — метастабильное состояние. Если мяч забросить на вершину холма, то теоретически он мог бы балансировать там бесконечно долго, однако на практике он смещается в ту или иную сторону и скатывается с холма. Чем дольше мяч будет находиться на вершине холма, пока не упадет вниз, тем быстрее он достигнет стабильного состояния в нижней части холма.

Рис. 1. Иллюстрация явления метастабильности с помощью мяча, заброшенного на холм

Если переключение сигнала данных происходит после прихода фронта тактового сигнала и минимального времени tH, то это сравнимо с мячом, упавшим на стороне «старого значения данных», и выходной сигнал остается в первоначальном состоянии. Когда входные данные регистра переключаются до прихода фронта тактового сигнала и минимального времени tSU, то это аналогично тому, что мяч упал на стороне «нового значения данных», и выход переходит в новое стабильное состояние достаточно быстро, так что задержка tCO соответствует установленному значению. Когда сигналы данных на входе регистра нарушают требования для tSU или tH, то этот случай аналогичен мячу, заброшенному на холм. Если мяч падает вблизи вершины холма, то ему потребуется много времени, чтобы достичь дна. Это увеличивает время задержки от момента прихода тактового сигнала до достижения стабильного состояния выходного сигнала, и специфицированное значение времени tCO нарушается.
Рисунок 2 иллюстрирует изменение уровней напряжения матастабильных сигналов во времени. Переход входного сигнала из низкого на высокий уровень во время переключения фронта тактового сигнала происходит с нарушением установленного для регистра значения времени tSU. Выходные сигналы в исходном состоянии имеют низкий уровень, а затем переходят в метастабильное состояние, колеблясь между высоким и низким уровнями. Сигнал A переходит в состояние высокого уровня, соответствующее новым входным данным, а сигнал B — в состояние низкого уровня, соответствующее исходным входным данным. В обоих случаях переключение выходного сигнала в определенное состояние происходит с задержкой, превышающей установленное значение tCO.

Рис. 2. Пример метастабильных выходных сигналов
Когда метастабильность может вызвать сбои в схеме?

Если сигнал корректно переходит в низкое или высокое состояния до того, как следующий регистр захватит данные, метастабильный сигнал не повлияет на работу системы, которая спроектирована с учетом асинхронной работы входных сигналов. Продолжая аналогию с мячом и холмом, сбой может произойти, когда время, которое требуется мячу для достижения дна (стабильное логическое состояние), превышает заданное время. Заданное время включает установленное для регистра значение tCO плюс некоторый запас времени, необходимый для передачи сигнала к следующему регистру. Когда метастабильный сигнал не устанавливается достаточно быстро, может произойти сбой, если различные регистры назначения захватывают различные значения метастабильного сигнала.
Заметим, что асинхронные входные сигналы или сигналы, которые передаются между несвязанными областями синхронизации, могут переключаться в любой момент относительно фронта тактового сигнала. Кроме того, разработчик не может спрогнозировать последовательность переключений сигнала или число фронтов тактового сигнала точки назначения до момента переключения данных. Например, если асинхронные сигналы передаются по шине между синхронизируемыми областями, то сигналы данных могут переключаться по фронтам различных тактовых сигналов. В результате, принятые значения данных могут быть некорректны.
Разработчик должен учитывать такое поведение сигналов при проектировании схемы, например, с помощью использования FIFO-логики с двумя тактовыми сигналами для хранения промежуточных значений сигналов или логики «рукопожатий» (hand-shaking logic). FIFO-логика передает сигналы управления между двумя синхронизируемыми областями, при этом данные записываются и считываются в двухпортовую память. Разработчики могут использовать код Грея для гарантии того, что только один бит был изменен в шине данных, что позволяет обнаруживать искажение данных из-за явления метастабильности. Если асинхронный сигнал участвует в логике «рукопожатий» между двумя синхронизируемыми областями, управляющие сигналы определяют момент передачи данных между областями синхронизации. В правильно разработанной системе схема функционирует корректно при условии, что сигнал переходит в стабильное состояние до того момента, когда он будет использоваться схемой в дальнейшем.

Регистры синхронизации

Когда сигнал передается между узлами схемы в асинхронных областях,  он должен быть синхронизирован с тактовым сигналом новой области синхронизации. Первый регистр в новой синхронизируемой области действует как регистр синхронизации. Для минимизации числа сбоев, вызванных метастабильностью, разработчики используют последовательность регистров (цепочку регистров синхронизации или синхронизатор) в новой области назначения. Эти регистры предоставляют для потенциально метастабильных сигналов дополнительное время, необходимое для переключения сигнала в известное состояние до того, как сигнал будет использован другими узлами схемы. С помощью FIFO-логики или логики «рукопожатий» сигналы управления синхронизируются путем выделения достаточного времени для установления метастабильных состояний. Резерв времени (пауза) на выходе каждого регистра позволяет переключить метастабильный сигнал в известное состояние. Это время называется доступным временем установления метастабильности.
Синхронизатор можно определить как последовательность регистров, которые отвечают следующим требованиям:
– все регистры в цепи синхронизированы от одного или одинаковых по фазе тактовых сигналов;
– первый регистр в цепи управляется от тактового сигнала несвязанной области синхронизации или асинхронно;
– выход каждого регистра поступает на вход только одного регистра, за исключением последнего регистра в цепи.
Длина синхронизатора — это количество регистров в синхронизируемой области. На рисунке 3 представлен пример синхронизатора длиной в два регистра.

Рис. 3. Пример цепи регистров синхронизации
Расчет среднего времени между отказами из-за метастабильности

Среднее время между отказами (или MTBF), обусловленными метастабильностью, позволяет оценить среднее время между моментами, когда метастабильность может вызвать сбои в схеме. Высокие значения MTBF (например, сотни или тысячи лет между отказами) служит признаком надежной схемы. Требуемое значение MTBF зависит от системного приложения. Увеличение MTBF уменьшает вероятность того, что передача сигнала вызовет какие-либо проблемы с метастабильностью в схеме.
MTBF, вызванное метастабильностью, для цепи синхронизатора вычисляется по следующей формуле:

 .

Константы С1 и С2 зависят от процесса изготовления прибора и режимов работы. Эти константы определяются при снятии метастабильных характеристик FPGA. Трудность измерения таких характеристик заключается в том, что MTBF для типичных проектов на базе FPGA исчисляется годами, поэтому измерение времени между метастабильными событиями при использовании реальных устройств в реальных условиях работы практически невозможно. Определение констант метастабильности для определенного устройства должно выполняться с помощью тестовой схемы, имеющей невысокое MTBF, которое можно измерить в реальности. Результаты измерения MTBF в зависимости от tMET строятся в виде графика в логарифмическом масштабе. Константа С2 соответствует наклону линии общего направления экспериментальных результатов, а константа С1 определяет линейность кривой.
Параметры fCLK и fDATA зависят от параметров схемы: fCLK — это тактовая частота синхронизируемой области, принимающей асинхронный сигнал, а fDATA — частота асинхронного сигнала входных данных. Более высокая тактовая частота и частота сигнала данных уменьшает (ухудшает) MTBF.
Параметр tMET — это доступное время установления метастабильности, или запас времени, превышающий tCO и необходимый для потенциально метастабильного сигнала, чтобы перейти в какое-либо стабильное состояние. Для синхронизатора tMET — это сумма резервного интервала времени на выходе каждого регистра в цепи.
Общее значение MTBF для схемы можно определить по MTBF для каждого синхронизатора. Интенсивность отказов для синхронизатора равна 1/MTBF, а интенсивность отказов для целой схемы вычисляется путем сложения интенсивностей отказов для каждого синхронизатора:

,

где N — число цепей синхронизатора.
MTBF для схемы из-за метастабильности равно обратной величине интенсивности отказов для целой схемы.
Разработчикам, использующим FPGA компании Altera, не нужно проверять значения констант для MTBF или выполнять вычисления MTBF вручную, т.к. программный инструмент Quartus II содержит необходимые параметры метастабильности. Это программное средство представляет данные о MTBF для выбранных синхронизаторов, а также обеспечивает расчет общего значения MTBF из-за метастабильности для целой схемы.

Увеличение среднего времени между отказами из-за метастабильности

Из-за экспоненциального характера уравнения для MTBF параметр tMET/C2 оказывает наибольшее влия­ние на расчетное значение MTBF. Следовательно, увеличить среднее время между отказами из-за метастабильности можно путем снижения константы C2 с помощью совершенствования архитектуры схемы и технологического процесса изготовления или путем оптимизации схемы, увеличивая время tMET в регистрах синхронизации.

Совершенствование архитектуры FPGA

Постоянная времени метастабильности C2 в уравнении для расчета MTBF зависит от различных факторов, имеющих отношение к процессу изготовления устройства, включая быстродействие транзисторов и используемое напряжение питания. Технология, обеспечивающая повышение быстродействия транзисторов, позволяет метастабильным сигналам переключаться более быстро. Т.к. FPGA переходят со 180-нм технологии на 90-нм нормы, увеличение скорости транзисторов позволило улучшить MTBF из-за метастабильности.
Однако с уменьшением геометрии технологического процесса напряжение питания снижается, но пороговое напряжение схемы не уменьшается пропорционально. Когда регистр переходит в метастабильное состояние, напряжение на выходе примерно равно половине напряжения питания. При пониженном напряжении питания уровень метастабильного напряжения становится близким к пороговому напряжению схемы. Когда уровни этих напряжений становятся близкими, коэффициент усиления схемы снижается, и регистрам нужно больше времени, чтобы выйти из метастабильного состояния. Т.к. FPGA переходят на 65-нм и меньшие технологические нормы при напряжении питания менее 0,9 В, фактор порогового напряжения становится более важным, чем увеличение скорости транзисторов. Следовательно, MTBF из-за метастабильности в общем случае уменьшается, несмотря на то, что поставщики FPGA стараются улучшить надежность своих устройств.
Компании-поставщики FPGA могут использовать анализ метастабильности архитектуры FPGA для оптимизации схемы с целью уменьшения MTBF. Так, например, совершенствование архитектуры 40-нм FPGA компании Altera и разработка новых поколений устройств улучшили надежность этих приборов за счет уменьшения постоянной времени метастабильности C2.

Оптимизация схемы

Экспоненциальный характер уравнения расчета MTBF означает, что при увеличении величины зависящего от архитектуры схемы параметра tMET экспоненциально увеличивается и MTBF синхронизатора. Например, если константа C2 для данного устройства и режимов работы равна 50 пс, то увеличение tMET до 200 пс делает показатель экспоненты равным 200/50, что означает увеличение MTBF в e4, или более, чем в 50 раз, в то время как увеличение tMET до 400 пс увеличивает MTBF в e8, или почти в 3000 раз.
Синхронизатор с наихудшим значением MTBF играет решающую роль в общей величине MTBF для всей схемы. Рассмотрим схему, которая содержит 9 синхронизаторов с MTBF, равным миллион лет, и один синхронизатор с MTBF, равным 100 лет. Интенсивность отказов схемы равна сумме интенсивностей отказов каждого синхронизатора, или 1/MTBF: 9 цепей × 1/1000000+1/100 = 0,01009. MTBF схемы получилось равным 99 лет, что лишь немного уступает MTBF наихудшего синхронизатора в схеме. Для улучшения MTBF из-за метастабильности разработчики могут увеличить tMET путем добавления дополнительных каскадов регистров в цепь синхронизации. Резерв времени после каждого дополнительного регистра добавляется к величине времени tMET, что и используется в расчете MTBF. Разработчики обычно используют два регистра для синхронизации сигнала, однако этого может быть недостаточно для получения высокого MTBF, когда схема работает на высокой тактовой частоте. Для улучшения степени защиты от метастабильных явлений рекомендуется использовать три регистра. Для разработчиков, использующих FIFO-логику между синхронизируемыми областями, специальная FIFO-функция с набором параметров, предлагаемая компанией Altera, обеспечивает улучшение защиты от метастабильности с помощью трех и более каскадов синхронизаторов. Добавление регистра обеспечивает дополнительное время ожидания для синхронизирующей логики, поэтому разработчики должны предварительно оценить, допустимо ли это для работы схемы.
Разработчики могут также оптимизировать расположение синхронизаторов в FPGA для увеличения временной паузы и уменьшения MTBF. Программный инструмент Quartus II компании Altera предлагает анализ метастабильности и возможность оптимизации схемы для увеличения tMET в цепи регистров синхронизации. После определения параметров синхронизаторов программный инструмент позволяет разместить синхронизирующие регистры как можно ближе друг к другу для увеличения необходимого запаса времени на выходе.

Заключение

Явление метастабильности может возникать при передаче сигналов между несвязанными областями синхронизации или в асинхронных схемах. Среднее время между отказами, вызванными метастабильностью, связано с технологическим процессом изготовления устройства, параметрами схемы и временной диаграммой работы логики синхронизации. Поставщики FPGA могут улучшить метастабильность путем совершенствования технологии изготовления и архитектуры схемы. Разработчики систем на базе FPGA могут увеличить MTBF и улучшить надежность системы путем увеличения времени tMET схемотехническими методами или путем оптимизации расположения блоков схемы на кристалле. Разработчики, использующие FPGA компании Altera, могут оценить преимущества специализированного программного обеспечения, которое позволяет рассчитать величину MTBF для проекта и оптимизировать расположение узлов схемы для увеличения MTBF.

Литература
1. Jennifer Stephenson. Don’t Let Metastability Cause Problems in Your FPGA-Based Design//www.pldesignline.com.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *