Анализ цифровых схем на риски сбоя
В булевой алгебре, используемой для моделирования работы цифровых схем, не учитывается время перехода (или инертность) логических элементов (например, «И», «ИЛИ») из одного состояния в другое (например, из 0 в 1). В случаях, когда время распространения сигнала внутри элемента достаточно мало, задержку перехода можно не учитывать. Но с повышением частоты изменения входных сигналов в реальных схемах начинает сказываться влияние времени распространения сигнала внутри ее элементов. Такие задержки могут порождать неустойчивую работу устройств (т.е. в сигналах после последовательного прохождения через узлы схемы появляются не учитываемые моделью схемы переходы, называемые сбоями). Многие производители современных процессоров держат в тайне, как они борются со сбоями, порождаемыми задержками, на частотах порядка ГГц. Ведь обычный проводник с множеством близких изгибов на плате в таком режиме работы уже превращается в индуктивность.
Чтобы проанализировать простейшие схемы на риски сбоя, обычно применяют метод временных диаграмм, ставший уже классическим. Сигналы в каждом узле прочерчиваются строго друг под другом; где нужно, производится искусственная задержка перехода из одного состояния в другое, а далее по булевому представлению строятся выходные сигналы. Данный метод не хорош тем, что требует работы с графиками, что может внести погрешность в получаемые сигналы. А нам нужно знать, возникнет ли сбой, и какой он будет иметь вид.
В 2005-м году я касался этой темы и изложил свои мысли в данной заметке на английском языке. Однако мой хороший знакомый посоветовал написать в Хабрахабр для обсуждения с пользователями.
В данном топике процедура анализа схем переведена из графического представления в математическое представление. При этом вводится в булеву алгебру параметр «время» посредством замены логических операций арифметическими. Для простоты анализа рассматриваются асинхронные, т.е. неуправляемые внешним (синхронизирующим или тактирующим) сигналом, цифровые схемы.
1. Переход от логического представления булевых функций к арифметическому представлениюРассмотрим числовое множество . На нем определены операции отрицания, конъюнкции, дизъюнкции и производимые от них (например, импликация, альтернативная дизъюнкция и др.). Выразим эти логические операции через арифметические на множестве M: (1)
Покажем справедливость закона де Моргана :
К выражениям (1) добавим правило (2) для всех натуральных значений m, справедливость которого очевидна.
Выражение для булевой функции, являющейся функцией входных сигналов схемы, теперь можно упростить по законам арифметических действий и правила (2). После упрощений перейти назад — к булевому представлению. При этом сам процесс минимизации можно автоматизировать, перейдя к символьным вычислениям.
2. Ввод в булеву алгебру параметра «время»Как известно, единичная ступенчатая функция или функция Хевисайда определена на множестве действительных чисел и возвращает число, принадлежащее множеству M:
Обозначим через t текущее время. Заметим, что функцию h еще называют выключательной функцией. Очевидно следующее утверждение: любой сигнал в логической схеме, включающий переход из одного логического состояния в другое, можно представить как сумму-разность функций Хевисайда, взятых с соответствующим аргументом.
Для функции h имеет место очевидное правило (3) где — момент времени, когда происходит изменение сигнала. Добавим правило (3) к (1) и (2).
Теперь, зная аналитическое выражение для входных сигналов логической схемы, можно найти вид функции выходного сигнала.
3. Задержки в логических элементах схемыЗадержку сигнала в логическом элементе удобно моделировать как разность аргумента функции Хевисайда и длительности задержки (т.к. для существующих логических элементов в основном задержки по фронту (переход из 0 в 1) и спаду (переход из 1 в 0) примерно одинаковы). Таким образом, любой реальный логический элемент схемы можно моделировать как последовательное соединение звена «чистого» запаздывания по каждому входу и идеального логического элемента (здесь запаздывание равно длительности задержки). Например, уравнение выходного сигнала конъюнктора с задержкой по входу имеет вид
где и — функции, описывающие соответствующие входные сигналы.
4. Алгоритм поиска сбойных состоянийПредлагаемый алгоритм поиска сбойных состояний аналогичен методу временных диаграмм; преимущество метода в том, что мы работаем не с графическими изображениями сигналов, а с их аналитическими выражениями (при этом появляется возможность аналитической оценки временных характеристик сбоя): 1. Пусть исследуемая схема функционирует в соответствии с некоторым логическим выражением, задаваемым ДНФ; 2. Задаемся функциями входных сигналов, представляющие собой переходы в таблице истинности, выражаемые через функцию Хевисайда; 3. Идем по пути следования сигналов в логической схеме с целью поиска выражения для выходного сигнала схемы, применяя правила (1) и (3); 4. Если в полученном выражении присутствует разность функций Хевисайда, то мы имеем статический сбой; если присутствует функция Хевисайда с задерживающим аргументом, то сбой динамический.
5. Пример анализа логической схемы.Исследуем переход из набора 1111 в набор 1001 таблицы истинности для схемы, показанной на рис. 1.
Рис. 1. Схема, реализующая булеву функцию .
Представим входные сигналы следующим образом (для простоты будем рассматривать изменение состояний в момент времени, равный 5 временным единицам):
Предположим, что все элементы имеют одинаковые задержки, равные . Тогда
Таким образом, мы получили статический сбой — в результирующее выражение входит разность функций Хевисайда (рис. 2).