- •6. Тестирование цифровых устройств
- •6.1. Модели неисправностей
- •6.1.1. Дефекты, неисправности, ошибки
- •6.1.2. Дефекты
- •6.1.3. Типовые модели неисправностей
- •6.2. Построение проверяющих тестов для комбинационных схем
- •6.2.1. Полный проверяющий тест
- •6.2.2. Методы генерации тестов
- •Алгоритм построения тестов с использованием критических путей
- •6.2.3. Структурные методы построения тестов
- •6.3. Синтез легкотестируемых комбинационных схем
- •6.3.1. Общая схема построения легкотестируемого устройства
- •6.3.2. Проявление константных неисправностей на функциональном уровне
- •6.3.3. Построение тестов для константных неисправностей
- •6.4. Минимизация полного теста
- •6.5. Тестирование последовательностных схем
- •6.6. Задачи
- •7. Самопроверяемые цифровые устройства
- •7.1. Синтез схем встроенного контроля для комбинационных устройств
- •7.1.1. Постановка задачи
- •7.1.2. Построение обобщенного графа
- •Алгоритм построения обобщенного графа
- •7.1.3. Построение общей таблицы истинности
- •7.1.4. Синтез самопроверяемых свк
- •7.2. Синтез самопроверяемых комбинационных схем
- •7.2.1. Метод дублирования
- •7.2.2. Неупорядоченные коды
- •7.2.3. Однонаправленное проявление неисправностей
- •7.2.4. Самопроверяемые детекторы кода Бергера
- •7.2.5. Самопроверяемые детекторы равновесного кода
- •7.3. Задачи
- •Литература
6.1.3. Типовые модели неисправностей
Одиночные константные неисправности (stack-at fault 0, stack-at fault 1). Один вход логической схемы принимает постоянное значение 0 или 1.
Кратные константные неисправности (multiple stack-at faults). Несколько входов логической схемы принимают постоянные значения сигналов.
Мостиковые неисправности (bridge faults). Несколько линий схемы, значения сигналов на которых не зависят друг от друга в исправной схеме, становятся зависимыми в неисправной.
Задержки (delay faults). Задержка распространения сигнала по одной или нескольким линиям схемы.
Перемежающиеся неисправности (transient faults). Вызываются изменениями внутренних параметров схемы. Ошибки возникают при некоторых (не всех!) состояниях схемы. Как правило, в итоге неисправность проявляется как постоянная.
6.2. Построение проверяющих тестов для комбинационных схем
6.2.1. Полный проверяющий тест
Пусть имеется исправная комбинационная
схема
,
и схема
– схема
с некоторой неисправностью.
Определение. Тест для данной неисправности – это такой набор значений переменных (булев вектор), на котором выход исправной схемы отличается от выхода схемы в присутствии данной неисправности.
Пример. Пусть схема имеет вид
Рассмотрим константную неисправность
.
Тестом для нее будет набор 111.
Пусть введено множество неисправностей
для схемы
.
Определение. Полный проверяющий тест для множества неисправностей – это множество наборов значений переменных (булев вектор), содержащее по крайней мере по одному тесту для каждой неисправности множества .
Пример. Для той же схемы
рассмотрим множество
,
содержащее все одиночные константные
неисправности на входах
,
.
.
Легко убедиться, что
набор 111 обнаруживает неисправности
,
,
;
набор 011 – неисправность
;
набор 101 – неисправность
;
набор 110 – неисправность
.
Остальные наборы не обнаруживают
одиночных константных неисправностей.
Значит, множество
является полным проверяющим тестом для
множества неисправностей
.
Естественно, в общем случае для одного и того же множества неисправностей можно построить несколько полных проверяющих тестов. Поэтому возникает вопрос оптимизации полного проверяющего теста по какому-либо критерию. Например, таким критерием может служить мощность теста, и мы приходим к задаче построения кратчайшего полного проверяющего теста. Если же каждый тест требует своих временных, финансовых или каких-либо других затрат, то ставится задача построения минимального полного проверяющего теста с минимальной суммой этих затрат.
Тестовые наборы (последовательности) могут быть найдены предварительно (вручную или автоматически), затем введены в соответствующее ПЗУ (постоянное запоминающее устройство). Они могут также генерироваться непосредственно в момент реализации тестирования.
Недостатком первого подхода является большой объем ПЗУ. С точки зрения минимизации аппаратурных затрат более выгодным является способ генерации тестов во время тестового эксперимента. Однако, если тест находится предварительно, то можно найти кратчайший либо минимальный полный тест.
Как правило, генерация тестов осуществляется в два этапа. На первом сравнительно быстрыми методами генерируются тесты, обнаруживающие большую часть неисправностей. На втором строятся тесты для неисправностей, не обнаружимых тестами первого этапа, при этом используются методы построения тестов для конкретной неисправности, учитывающие структуру схемы.
