Синтезировать контрольный тест для логической схемы – найти множество кубов, которые позволяют выявлять неисправности схемы. Если в схеме нет неисправностей, то на каждом кубе получается так называемая эталонная реакция схемы. Множество кубов порождает множество эталонных реакций схемы.
При наличии неисправности в схеме реакция хотя бы на одном кубе должна измениться. В итоге множество реальных реакций не совпадает с множеством эталонных реакций. Это будет говорить о том, что неисправность выявляется. Если тест позволяет выявлять любую неисправность, то он обладает 100-процентной полнотой. Однако, это не всегда бывает так. Обычно тест не обеспечивает выявление всех неисправностей, его полнота менее 100%.
В данной курсовой работе рассматривается ограниченный класс неисправностей:
1). Выход элемента тождественно равен 0,
2). Выход элемента тождественно равен 1.
Считается, что в данный момент времени в схеме может быть только одна неисправность. Это означает, что схема является высоконадежной.
Синтез теста осуществляется по методу активизации пути. Сущность этого метода заключается в том, что, задав какую-либо неисправность на выбранном входе схемы, нужно обеспечить условия для беспрепятственного прохождения сигнала, связанного с заданной неисправностью, на выход схемы. Это означает, что при прохождении указанного сигнала через элемент ИЛИ-НЕ на всех других его входах надо обеспечить нули. В свою очередь обеспечение таких входных сигналов связано с выбором подходящей строки покрытия элемента, с которого снимается нужный сигнал.
Рис. 3
Процесс активизации путей схемы (рис.3) отображен в табл. 16. Всего оказалось 20 путей.
1 2 3 4 5 6 7 | 8 9 10 11 12 13 14 | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | Пути |
1 0 0 0 1 1 0 | 0’1 1 1 0 0 1 | 1 0 1 0 0 0 1’ 0 1 0 0’ 0 0 0 1 0 1’ 0’ | 1, 8,21, 25, 31,32 |
1 0 1 1 0 1 0 | 0’1 0 0 1 0 1 | 0 1 1 0 0 1 0 0 1 0 0 1’ 0 1 0 0 0’ 1’ | 1, 8, 26, 31,32 |
1 1 0 0 1 0 1 | 0 0 1 1 0 1 0 | 1 0 0 1 0’ 0 1’ 0 1’ 1 0’ 0 0’ 0 1’ 0’ 1’ 0’ | 1, 19, 23, 27, 29, 30, 31, 32 |
1 1 1 0 0 1 0 | 0 0 0 1 1 0 1 | 1 0 1 0 0 0 0 1 1 0 0’ 0 0 1 0 0 1’ 0’ | 2, 25, 31, 32 |
1 1 1 0 0 1 0 | 0 0’ 0 1 1 0 1 | 1 0 1 0 0 0 0 1’ 1 0 0 0’ 0 1 0 0 1’ 0’ | 2, 9, 22,26, 31,32 |
0 1 1 0 1 0 1 | 1 0 0 1 0 1 0 | 1 0 0 1 0’ 0 0 0 1’ 1 0 0 0’ 0 1’ 0’ 1’ 0’ | 3, 19, 23, 27, 29, 30, 31, 32 |
0 1 1 0 1 1 0 | 1 0 0’ 1 0 0 1 | 1 0 1 0 0’ 0 0’ 1 1’ 0 0’ 0 0’ 1 0’ 1’ 0’ 1’ | 3, 10, 28, 29, 30, 31, 32 |
1 0 1 1 0 1 0 | 0 1 0’ 0 1 0 1 | 0 1 1 0 0 1 0 0 1 0 0 1’ 0 1 0 0 0’ 1’ | 3, 10, 26, 31, 32 |
0 1 0 1 1 0 1 | 1 0 1 0 0 1 0 | 0’ 1’ 0 1 0’ 0 0 0 1’ 1 0 0 0 0 1’ 0’ 1’ 0’ | 4, 15, 16, 19, 23, 29, 30, 31,32 |
1 0 0 1 0 1 0 | 0 1 1 0 1 0 1 | 0’ 1’ 1 0 0 1 0 0 1 0 0’ 0 0 0 1 0 1’ 0’ | 4, 15,16,25,31,32 |
0 0 1 1 1 1 0 | 1 1 0 0’ 0 0 1 | 0 1 1 0 0 1’ 0 0 1 0’ 0 0 0 1’ 0’ 1’ 0’ 1’ | 4, 11, 20, 24, 28, 29, 30, 31, 32 |
1 0 0 0 1 1 0 | 0 1 1 1 0’ 0 1 | 1 0 1 0 0 0 1’ 0 1 0 0’ 0 0 0 1 0 1’ 0’ | 5,12,21,25, 31,32 |
0 0 1 1 1 1 0 | 1 1 0 0 0’ 0 1 | 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 1’ 0’ 1’ | 5, 12, 30, 31, 32 |
0 1 0 0 1 1 1 | 1 0 1 1 0 0 0 | 1 0 0 1 0’ 0 0 0 1’ 1 0 0 0’ 0 1’ 0’ 1’ 0’ | 6,19,23,27,29,30,31,32 |
1 2 3 4 5 6 7 | 8 9 10 11 12 13 14 | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | Пути |
0 0 1 1 0 1 1 | 1 1 0 0 1 0’ 0 | 0 1 0 1 0 1’ 0 0 1 0’ 0 0 0 1’ 0’ 1’ 0’ 1’ | 6, 13, 20, 24, 28, 29, 30, 31, 32 |
1 0 1 1 0 1 0 | 0 1 0 0 1 0’ 1 | 0 1 1 0 0 1 0 0 1 0 0 1’ 0 1 0 0 0’ 1’ | 6, 13, 26, 31, 32 |
1 1 1 0 0 1 1 | 0 0 0 1 1 0 0 | 1 0 0’ 0’ 0 0 0 0’ 1 1 0 1’ 0 0 1 0 0’ 1’ | 7, 17, 18, 22, 26, 31, 32 |
0 0 1 0 1 1 1 | 1 1 0 1 0 0 0 | 1 0 0’ 1’ 0 0 0 0 1 1 0’ 0 0 0 1 0 1’ 0’ | 7,17,18,25,31,32 |
0 0 1 0 1 0 1 | 1 1 0 1 0 1 0’ | 1 0 0 1 0 0 0 0 1 1’ 0 0 0 0’ 1’ 0’ 1’ 0’ | 7, 14, 24, 28, 29, 30, 31, 32 |
0 1 0 0 1 0 1 | 1 0 1 1 0 1 0’ | 1 0 1 0 1 0 0 0 0 1 0 0 1’ 0 0’ 1’ 0’ 1’ | 7, 14, 27, 29, 30, 31, 32 |
После заполнения всех строк таблицы из нее следует выписать наборы входных переменных с соответствующими реакциями. При этом один набор с переменной 1’ распадается на два набора, в одном из них 1’ дает 1, а в другом – 0. В общей системе наборов обычно получаются одинаковые наборы. Лишние нужно удалить. Оставшиеся ( табл. 17 ) наборы с эталонными реакциями и являются тестом.
Реакция | Наборы | Реакция | Наборы |
0 | 0 0 1 1 0 1 1 | 0 | 0 0 1 0 1 1 1 |
1 | 1 0 1 1 0 1 0 | 0 | 0 0 1 0 1 0 1 |
0 | 1 1 0 0 1 0 1 | 1 | 0 1 0 0 1 0 1 |
0 | 1 1 1 0 0 1 0 | 1 | 0 0 0 0 1 1 0 |
0 | 0 1 1 0 1 0 1 | 0 | 0 0 1 1 0 1 0 |
1 | 0 1 1 0 1 1 0 | 1 | 1 0 1 0 0 1 0 |
0 | 0 1 0 1 1 0 1 | 1 | 1 0 0 0 0 1 0 |
0 | 1 0 0 1 0 1 0 | 0 | 0 0 1 1 0 0 1 |
1 | 0 0 1 1 1 1 0 | 0 | 1 0 1 1 0 0 0 |
0 | 0 1 0 0 1 1 1 | 1 | 0 0 1 0 1 1 0 |
1 | 0 0 1 1 0 1 1 | 1 | 0 0 1 0 1 0 0 |
1 | 1 1 1 0 0 1 1 | 0 | 0 1 0 0 1 0 0 |
Всего получилось 24 набора.
Чтобы проверить схему, надо задать три неисправности: одна касается какого-либо элемента ближе ко входам схемы, другая – к середине схемы, третья – к выходу схемы.
Надлежит установить, обнаруживается или нет каждая заданная неисправность тестом. При этом нужно брать те тестовые наборы, которые как раз и предназначены для обнаружения заданной неисправности.
Проверка схемы проведена в табл. 18. В соответствующем столбце фиксируется ошибка, сведения для столбцов, расположенных левее, берутся из табл.16, остальные заполняются самостоятельно с учетом введенной ошибки. Полученная реакция сравнивается с эталонной. Таким образом устанавливается, обнаруживается или нет заданная неисправность.
№ набора | 1 2 3 4 5 6 7 | 8 9 10 11 12 13 14 | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | Эталонная реакция | Пути |
7 | 0 1 1 0 1 1 0 | 1 0 1 1 0 0 1 | Выход 10 = 11 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 | 1 | 3, 10, 28, 29, 30, 31, 32 |
9 | 0 1 0 1 1 0 1 | 1 0 1 0 0 1 0 | Выход 19 = 10 1 0 1 1 0 0 0 0 1 0 0 1 0 0 1 0 1 | 0 | 4, 15, 16, 19, 23, 27, 29, 30, 31,32 |
11 | 0 0 1 1 1 1 0 | 1 1 0 0 0 0 1 | Выход 28 = 00 1 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 | 1 | 4, 11, 20, 24, 28, 29, 30, 31, 32 |
ЗАКЛЮЧЕНИЕ
В данной работе я выполнил синтез логической схемы по заданному в кубической форме покрытию. При этом мною предварительно была проведена минимизация и факторизация покрытия. Первоначальная стоимость покрытия была равна 48, после нахождения множества простых импликант она увеличилась на 5 (что составило 10,4% от первоначальной стоимости), после нахождения множества L-экстремалей стоимость уменьшилась на 17 (32%), а после проведения факторизации покрытия еще на 6 (16,7%). Итоговая стоимость покрытия получилась равной 30. Синтез схемы осуществлялся мною последовательно: сначала была построена схема в булевом базисе, затем по этой схеме была построена схема в универсальном базисе ИЛИ-НЕ (при этом использовались соответствия между элементами булевого и универсального базисов). После составления схемы в универсальном базисе была проведена проверка схемы путем нахождения единичного покрытия. Так как в ходе проверки были найдены все кубы множества L-экстремалей, то схема была признана правильной. И наконец, была составлена схема с учетом реально имеющихся ограничений, а именно: Квх и Кр. Обычно эта схема получается довольно громоздкой (до 50 и более элементов), но в моем случае Квх был равен 4, из-за чего схема увеличилась лишь незначительно: если в схеме в универсальном базисе было 19 элементов, то в конечной схеме их было только 32. Напоследок мною был синтезирован контролирующий тест и проведена проверка схемы тестом, которая показала, что заданная неисправность успешно обнаруживается тестом.
ЛИТЕРАТУРА
1. Триханов А.В. Синтез логических схем. Учебное пособие.-Томск,2007.
2. Майоров С.А. и др. Проектирование ЦВМ. – М.:ВШ,2006.
3. Миллер Р. Теория переключательных схем. Том 1. – М.:Наука,2006.
4. Триханов А.В. Алгоритмизация и микропрограммирование операций ЭВМ (множества, графы, кубы, кубические покрытия). Учебное пособие. – Томск: Изд-во ТПУ,2005.