Московский государственный университет путей сообщения
Опубликован: 06.09.2012 | Доступ: свободный | Студентов: 1233 / 168 | Оценка: 5.00 / 5.00 | Длительность: 35:22:00
Специальности: Разработчик аппаратуры
Лекция 16:

Синтез тестов для комбинационных схем

< Лекция 15 || Лекция 16: 123 || Лекция 17 >

Понятие критических кубов первоначально было введено для вентиля НЕ-И [16.8] и использовано при генерации тестов в системе LASAR. Далее это понятие было распространено на основные вентили [16.9,16.10]. При этом критические кубы для простых вентилей И, ИЛИ, НЕ, НЕ-И, НЕ-ИЛИ во всех работах одинаковы (хотя трактуются различно). Для более сложных логических элементов критические кубы в этих работах определены по-разному. Мы при определении критических кубов используем подход, близкий к предложенному в работе [16.8].

Таблица 16.1.
Функция a b c Аналитическая запись куба
1 2 3 4 5
C=ab 1^{*} 1^{*} 1^{*} 
c^{1*}=a^{1*}b^{1*}\\
c^{0*}=a^{0*}b^1\vee a^1b^{0*}
0^{*} 1^{*} 0^{*}
1^{*} 0^{*} 0^{*}
C=a\vee b 0 1^{*} 1^{*} 
c^{1*}=a^{0}b^{1*}\vee a^{1*}b^{0}\\
c^{0*}=a^{0*}b^{0*}
1^{*} 0 1^{*}
0^{*} 0^{*} 0^{*}
C=\overline{a} 0^{*} - 1^{*} 
c^{1*}=a^{0*}\\
c^{0*}=a^{1*}
1^{*} - 0^{*}
c=\overline{ab} 0^{*} 1 1^{*} 
c^{1*}=a^{0*}b^1\vee a^1b^{0*}\\
c^{0*}=a^{1*}b^{1*}
1 0^{*} 1^{*}
1^{*} 1^{*} 0^{*}

c=\overline{a\vee b} 0^{*} 0^{*} 1^{*} 
c^{1*}=a^{0*}b^{0*}\\
c^{0*}=a^0b^{1*}\vee a^{1*}b^{0}
0 1^{*} 0^{*}
1^{*} 0 0^{*}

c=\overline{a\oplus b} 0^{*} 1 1^{*} 
c^{1*}=a^{0*}b^1\vee a^{0}b^{1*}\vee a^{1*}b^0\vee a^{1}b^{0*}
0 1^{*} 1^{*}
1^{*} 0 1^{*}
1 0^{*} 1^{*}
0^{*} 0 0^{*} 
c^{0*}=a^{0*}b^0\vee a^{0}b^{0*}\vee a^{1*}b^1\vee a^{1}b^{1*}
0 0^{*} 0^{*}
1^{*} 1 0^{*}
1 1^{*} 0^{*}
C=a\thicksim b 0^{*} 0 1^{*} 
c^{1*}=a^{0*}b^0\vee a^{0}b^{0*}\vee a^{1*}b^1\vee a^{1}b^{1*}
0 0^{*} 1^{*}
1^{*} 1 1^{*}
1 1^{*} 1^{*}
0^{*} 1 0^{*} 
c^{0*}=a^{0*}b^1\vee a^{0}b^{1*}\vee a^{1*}b^0\vee a^{1}b^{0*}
0 1^{*} 0^{*}
1^{*} 0 0^{*}
1 0^{*} 0^{*}

Для комбинационных ДУ основной алгоритм генерации тестов методом критических путей можно сформулировать следующим образом.

  1. Выбрать внешний выход схемы и присвоить ему критическое значение 0^{*}.
  2. Для элемента, имеющего критическое значение на выходе, выбирая соответствующие критические кубы из таблицы *-кубов его типа, распространить значения на входы элемента.
  3. Присвоить соответствующие значения выходам элементов, которые соединены с входами, получившими новые значения в п. 2. Выполнить операцию импликации для всех таких выходов.
  4. Если импликация показывает несовместимость вновь полученных значений со старыми (противоречивая ситуация), перейти к п. 5, иначе к п. 6.
  5. Вернуться к последнему выбору критических кубов. Если выбора нет (все варианты распространения критических значений рассмотрены), то перейти к п. 7, иначе выбрать *-куб и перейти к п. 3.
  6. Выбрать "необработанный" элемент с критическим выходом и вернуться к п. 2. Если таких элементов нет, перейти к п. 8.
  7. Для рассмотренного критического значения на внешнем выходе не существует выходного набора с критическими путями. Если это был 0^{*}, то внешнему выходу присвоить значение 1^{*} и вернуться к п. 2, если же - 1^{*}, то в случае наличия "необработанных" внешних выходов схемы вернуться к п. 1. Если все выходы обработаны, то конец.
  8. Выполнить процедуру доопределения для оставшихся "неподтвержденными" некритических значений на выходах элементов.
  9. Если это невозможно вследствие несовместимости вновь полученных значений со старыми, то вернуться к п. 5. В противном случае (если набор построен) вернуться к п. 1; если на внешнем выходе был 0^{*}, то присвоить этому выходу значение 1^{*} и перейти к п. 2.

Приведенный алгоритм порождает в лучшем случае по два набора для каждого выхода схемы. Для большей полноты теста можно получить дополнительные критические пути (соответственно наборы теста) с помощью того же алгоритма, отрабатывая в процессе генерации теста всевозможные варианты выбора критических кубов, как это было показано для схемы, изображенной на рис. 6.2.

Такова укрупненная общая схема алгоритма для комбинационных схем. Следует отметить, что в процессе реализации для ускорения генерации тестов целесообразно использовать некоторые эвристические приемы. Например, при выборе *-куба предпочтительней брать куб с критическими значениями для неисправностей, не проверенных к текущему моменту. При генерации нового набора теста для того же критического значения выхода целесообразно начинать не с самого начала, а с места последнего выбора варианта, сохраняя частично значения сигналов на линиях схемы, полученные на предыдущем наборе. Следует отметить, что там, где генерация теста требует многомерной активизации путей, этот метод не гарантирует построения теста.

После выполнения начального этапа генерации теста одним из приведенных методов выполняется моделирование схемы с неисправностями, определяется полнота теста и список непроверяемых неисправностей. Далее для непроверенных неисправностей используются методы генерации тестов для конкретной неисправности, которые применяются на заключительном этапе и рассматриваются ниже.

Ключевые термины:

Проверяющий тест - множество входных воздействий, проверяющее заданное множество неисправностей.

Псевдослучайный метод - основан на псевдослучайной генерации входных воздействий.

Критический куб - определяет зависимость выхода логического от его входов таким образом, что изменение значений на входах ведет к изменению значение сигнала на выходе элемента.

Краткие итоги

В лекции рассмотрена задача построения проверяющих тестов для комбинационных схем. Изложены методы генерации тестов, которые используются на начальном этапе построения проверяющего теста и не ориентированы на конкретную заданную неисправность.

В "Синтез тестов для комбинационных схем" описана общая архитектура, цели и задачи программной системы построения проверяющих тестов

В "Синтез тестов для комбинационных схем" представлен псевдослучайный метод построения проверяющего теста, который основан на псевдослучайной генерации входных наборов с последующей оценкой с помощью логического моделирования с неисправностями.

В "Синтез тестов для комбинационных схем" рассмотрен метод критических путей, который основан на активизации путей в схеме в обратном порядке от выходов ко входам схемы.

Вопросы и упражнения

  1. Чем структурные тесты отличаются от функциональных?
  2. Как генерируется новый входной набор в ПС-методе?
  3. Каким образом оценивается новый входной набор в ПС-методе?
  4. Какие вы можете предложить критерии окончания ПС-генерации тестов?
  5. Какие проблемы есть у ПС-генерации тестов для последовательностных схем?
  6. С какой вероятностью генерируются значения 0,1 для входов схемы?
  7. Как можно изменять вероятности значений 0,1 для входов схемы?
  8. Что такое критический куб?
  9. Приведите и объясните критические кубы для вентиля НЕ_И.
  10. Приведите и объясните критические кубы для вентиля ИЛИ.
  11. Приведите основной алгоритм построения теста методом критических кубов.
  12. Сколько входных наборов генерирует этот алгоритм для каждого выхода схемы?
  13. На каком этапе целесообразно использовать псевдослучайный метод генерации тестов?
  14. Для каких схем целесообразно применять метод критических кубов?
  15. Построить проверяющий тест для одиночных константных неисправностей схемы рис. 16.4 методом критических путей.
    Схема для упражнения 15

    Рис. 16.4. Схема для упражнения 15
< Лекция 15 || Лекция 16: 123 || Лекция 17 >
Дмитрий Медведевских
Дмитрий Медведевских

Добрый день  можно поинтересоваться где брать литературу предложенную в курсе ?Большинство книг я не могу найти  в известных источниках