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

Методы генерации тестов PODEM, FAN и SOCRATES

< Лекция 18 || Лекция 19: 1234 || Лекция 20 >

19.3 Метод SOCRATES

Метод SOCRATES (structure-oriented cost-reducing automatic test pattern generation) [19.4] основан на алгоритме FAN с улучшенными процедурами импликации, уникальной активизации путей и кратной процедуры обратного распространения. Кроме этого, в этом алгоритме сокращается число возвратов за счет раннего обнаружения конфликтов и используется несколько эвристик на разных этапах алгоритма, которые также повышают эффективность метода. Кроме этого, в данном методе могут обрабатываться (выступают в роли примитивов - базовых элементов) сложные логические элементы такие как мультиплексоры, сумматоры, кодеры и декодеры, исключающее ИЛИ с произвольным числом входов.

Рассмотрим сначала процедуру импликации на примере схемы рис. 19.9 [19.3].

Импликация в SOCRATES

Рис. 19.9. Импликация в SOCRATES

Здесь входной сигнал A=1 (рис. 19.9а)) имплицирует 1 на выходах вентилей ИЛИ и И. С другой стороны, на рис. 19.9b) значение D=0 имплицирует значение A=0, что следует из тождества контрапозиции импликации (A\Rightarrow D)\Leftrightarrow (\thicksim D\Rightarrow \thicksim A), где \thicksim обозначает дополнение. Из этого следует, что если в процессе обратного распространения выходу вентиля И будет присвоено значение D=0, то отсюда вытекает значение входа A=0. Такая импликация, в свою очередь, может привести к раннему обнаружению конфликтов и сокращению числа возвратов при поиске решения.

Для распознавания таких ситуаций перед фазой генерации тестов выполняется фаза обучения. В процессе обучения значение 0 присваивается схеме n_{i} с последующей импликацией и анализом результатов. Этот процесс повторяется для значения 1. Предположим, что в процессе импликации n_{i} инициализируется значением v_i,v_i\in \{0,1\} и схема n_{i}принимает значение v_j\in \{0,1\} в результате выполнения импликации, то есть (значение(n_i)=v_i)\Rigtharrow(значение(n_j)=v_j). Пусть n_{j} управляется вентилем g. Таким образом, если: 1) v_j требует, чтобы все входы g имели неконтролирующие значения и 2) прямая импликация дает значение v_j схеме n_{j} , то импликация (значение(n_i)=\overline{v}_i)\Rigtharrow(значение(n_j)=\overline{v}_j)имеет место. Условие 1) удовлетворяется, если v_j имеет значение 0(1) и g является вентилем типа И/НЕ -И(ИЛИ/НЕ-ИЛИ) или исключающее ИЛИ. При этом дополнительная функция проверяет отсутствие прямого пути от n_{j} к n_{i} . Для комбинационной ранжированной схемы при j>i эта функция дает значение 0. Это подтверждает выполнение условия 2). Возможно, что описанная выше процедура не всегда найдет все возможные импликации, но в целом затраты на этапе обучения окупаются за счет сокращения возвратов в поиске решения.

Уникальная активизация в методе FAN обрабатывает ситуации, где D-граница состоит из одного вентиля и все возможные пути D-распространения проходят через этот вентиль. В методе SOCRATES улучшена также процедура уникальной активизации.

Определение 19.1. Говорят, что сигнал y доминирует над сигналом x-y\in dom(x), если все ориентированные пути от x ко внешним выходам схемы проходят через y.

Пусть x является единственным в D-границе и множество сигналов dom(x)=\{y_{1}, y_{2},…, y_{n}\} - выходы сигналов соответствующих вентилей множества G=\{g_{1}, g_{2},…, g_{n}\}. Тогда для всех вентилей g\in G неконтролирующие значения присваиваются всем входам g, которые могут быть достигнуты из x любым путем. Это иллюстрируется на рис. 19.10.

Улучшенная одномерная активизация

Рис. 19.10. Улучшенная одномерная активизация

Здесь выход вентиля a имеет D-значение, который разветвляется на вентили b и c, которые далее сходятся на вентиле g. Очевидно, в этой ситуации сигнал d должен быть установлен в неконтролирующее значение d=1.

Определение 19.2. Сигнал y называется непосредственным доминатором сигнала x, если y\in dom(x) и y является элементом dom(x) с минимальным рангом схемы.

Если непосредственные доминаторы всех сигналов известны, то доминаторы любого сигнала могут быть определены рекурсивно. Например, если сигнал y является непосредственным доминатором сигнала x, и сигнал z является непосредственным доминатором y, то сигнал z является доминатором x.

Предложено дополнительное правило для уникальной активизации, которое требуется для обработки ситуаций, представленных на рис. 19.11.

Уникальная активизация кратных путей

Рис. 19.11. Уникальная активизация кратных путей

Предположим, что сигнал a является единственным сигналом D-границы или доминатором такого единственного сигнала. Он разветвляется на три вентиля И, на вход которых поступает сигнал b. Кроме этого, один из И вентилей имеет третий вход c. Предположим, что сигнал a - единственный сигнал в D-границе, или доминатор такого сигнала и разветвляется на вентили g_{1}, g_{2},…, g_{n} , которые все требуют одинаковых неконтролирующих значений - 0 или 1. Если сигнал b разветвляется на те же вентили g_{1}, g_{2},…, g_{n} , то b присваивается неконтролирующее значение.

Кратное обратное распространение в SOCRATES использует тот факт, что некоторые часто встречающиеся схемные конфигурации обрабатываются как примитивы (базовые элементы). Например, это относится к схемам, реализующим исключающее ИЛИ. Важнейшим свойством этого элемента является то, что активизированный путь на входе двухвходового элемента распространяется на его выход независимо от значения второго входа. Например, значения (D,0) дают на выходе значение D, а (D,1) соответственно - D'. Более того, при распространении через (НЕ) исключающее ИЛИ необходимо только следить за тем, чтобы входы имели определенные значения и не имели одновременно два D-значения. Это можно расширить на произвольное число входов элементов исключающее ИЛИ, которые SOCRATES также поддерживает.

Отметим, что метод PODEM не поддерживает исключающее ИЛИ (как примитив) в отличие от D-алгоритма, который имеет примитивные D-кубы для этого элемента.

Таблица 19.4.
Формулы Условия
n_0(x_1)=n_0(y) n_0(x_2)=n_0(y) c_{00}< c_{11}
n_1(x_1)=n_0(y) n_1(x_2)=n_0(y) c_{00}\ge c_{11}
n_0(x_1)=n_0(x_1)+n_1(y) n_1(x_2)=n_0(x_2)+n_1(y) c_{01}< c_{10}
n_1(x_1)=n_1(x_1)+n_1(y) n_0(x_2)=n_0(x_2)+n_1(y) c_{01}\ge c_{10}

В методе SOCRATES исключающее ИЛИ обрабатывается в соответствии с правилами, представленными в табл. 19.4. Здесь c_{ij} представляют значения управляемости, которые отражают сложность установки x_{1} в i и x_{2} в j для i,j\in\{0,1\}, где x_{1} и x_{2} - входы для двухвходового вентиля исключающего ИЛИ и y - его выход. Этот подход можно использовать и для других примитивов высокого уровня, для которых получены соответствующие формулы. Основное преимущество этих примитивов лежит в сокращении числа разветвлений (потенциальных конфликтов). Но иногда это можно реализовать и на вентильном уровне. Например, если двухвходовой мультиплексор имеет 1 на обоих входах данных, то выходу следует установить значение 1 даже при наличии неопределенного значения на управляющем входе.

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

D-распространение - распространение в схеме символов D, D', характеризующих различие значений сигналов в исправной и неисправной схеме.

Обратное распространение (продвижение назад) - процедура поиска значений сигналов, обеспечивающих значения сигналов для элементов, находящихся ближе к выходам. Выполняется в обратном порядке: от выходов ко входам.

Прямая импликация - процедура снятия неопределённости на линиях схемы, выполняемая в прямом порядке от входов к выходам.

Обратная импликация - процедура снятия неопределённости на линиях схемы, выполняемая в обратном порядке от выходов ко входам.

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

В лекции продолжено рассмотрение задачи построения проверяющего теста для конкретной заданной неисправности с использованием 6-значного алфавита.

В "Методы генерации тестов PODEM, FAN и SOCRATES" изложен метод PODEM, разработанный первоначально для схем контроля четности и основанный на другой по сравнению с D-алгоритмом стратегии поиска решений. Представлены основные этапы построения теста этим методом, включающие распространение назад, прямую импликацию и перебор возможных решений в случае возникновения конфликта.

В "Методы генерации тестов PODEM, FAN и SOCRATES" представлен метод- FAN, который является развитием метода и использует улучшенные процедуры кратного продвижения назад и уникальной активизации путей.

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

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

  1. Чем отличается метод PODEM от D-алгоритма?
  2. Опишите процедуру продвижения назад в методе PODEM.
  3. Что такое "тяжелый" и "легкий" вход?
  4. Как определяется цель в методе PODEM?
  5. Как обрабатывается конфликт в методе PODEM?
  6. Приведите общий алгоритм PODEM.
  7. Постройте тест методом PODEM для неисправности x_{8}=0 приведенной ниже схемы рис. 19.12.
    Схема для упражнения 7, 12

    Рис. 19.12. Схема для упражнения 7, 12
  8. Чем отличается метод FAN от PODEM?
  9. Чем отличается процедура кратного продвижения назад?
  10. Опишите улучшения в импликации по сравнению с предыдущими методами.
  11. Прокомментируйте псевдокод алгоритма FAN.
  12. Постройте тест методом FAN для неисправности const.0 выхода второго вентиля первого уровня приведенной ниже схемы рис. 19.12.

    Чем отличается метод SOCRATES от метода FAN?

  13. Приведите пример уникальной активизации.
  14. В чем суть фазы обучения?
  15. Приведите пример функционального примитива.
  16. Что дает использование более крупных примитивов?
< Лекция 18 || Лекция 19: 1234 || Лекция 20 >
Дмитрий Медведевских
Дмитрий Медведевских

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