
- •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.4. Минимизация полного теста
Задача минимизации полного теста может
быть сведена к задаче поиска кратчайшего
покрытия булевой матрицы. Сопоставим
столбцам матрицы неисправности, строкам
– тесты, элемент с номером
положим равным единице, если и только
если
-й
тест обнаруживает
-ю
неисправность. Затем найдем кратчайшее
покрытие этой матрицы. Так как задача
поиска покрытия является вычислительно
сложной, имеет смысл заранее ее упростить,
например, выделить неисправности,
обнаруживаемые единственным тестом
(аналог ядерных столбцов и строк таблицы),
и т.д.
Пример. Рассмотрим тесты,из предыдущего примера.
‑тесты
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
‑тесты
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выделим сначала те неисправности, для которых существует единственный тест.
1000 |
0010 |
0000 |
1100 |
1010 |
0100 |
0011 |
0101 |
0110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Внесем эти тесты в кратчайший полный тест и удалим обнаруживаемые ими неисправности из списка. Не обнаружены неисправности и , для их обнаружения достаточно добавить в кратчайший тест, например, наборы 0111 и 1001.
Кратчайший полный тест состоит из 11 наборов (вместо 16 в полном тесте).