Анализ цифровых схем на риски сбоя

Анализ цифровых схем на риски сбоя

В булевой алгебре, используемой для моделирования работы цифровых схем, не учитывается время перехода (или инертность) логических элементов (например, «И», «ИЛИ») из одного состояния в другое (например, из 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).

📎📎📎📎📎📎📎📎📎📎