Задача построения проверяющего теста для данной неисправности в
Пусть $$f(X)$$ - булева функция, реализуемая исправной
Назовем различающей функцией следующее выражение [17.1]:
$$D(\varphi )=f(X)\oplus \varphi (X).$$Очевидно, что наборы значений входных переменных $$X$$, на которых $$D(\varphi )=1$$, являются проверяющими тестами для данной неисправности $$\varphi $$.
Для примера рассмотрим схему, изображенную на рис. 17.1.
(рис 17.1) Пример схемы для метода различающей функции
Применим метод различающей функции для построения проверяющего входного набора для константной неисправности $$х_{1}\equiv 1$$. В этом случае имеем:
Тогда различающая функция равна: $$D(х_{1}\equiv 1)=f(x)\oplus \varphi(x)= =((x_1\x_2)\vee(x_2\\overline{x}_3)) \oplus x_{2}=x_{2}((x_{1}\vee\overline{x}_3)\oplus 1)=x_2\overline{(x_{1}\vee\overline{x}_3)}=x_2\overline{x}_1x_3$$.
Очевидно, что равенство $$D(x_{1}\equiv 1)=1$$ обеспечивает набор значений входных переменных $$x_{1}=0$$, $$x_{2}=1$$, $$x_{3}=1$$, который и является проверяющим тестом для данной неисправности. Для больших схем этот метод становится слишком громоздким и требует больших вычислительных ресурсов. Однако следует отметить, что современные методы символьных вычислений (над булевыми выражениями) позволяют расширить его возможности.
Булева
Например, для булевой функции $$f=x_1x_2\vee x_2\overline{x}_3$$, булева производная $$ \cfrac{df}{dx_1}= x_2x_3\oplus(x_2\vee x_2\overline{x}_3) = x_{2}(x_{3}\oplus 1) = x_2\overline{x}_3$$ .
При вычислении булевых производных сложных функций полезны следующие свойства булевых производных:
Важны следующие частные случаи этих формул для функции $$g$$, не зависящей от переменной $$x_{i}$$:
На практике важным является дифференцирование сложных функций, когда функция $$F$$ явно не зависит от переменной $$x_{i}F = F(f(x_{1},..,x_{i},..,x_{n}),x_{1},..,x_{i}_{-1},x_{i}_{+1},..,x_{n})$$.
В этом случае имеет место $$\cfrac{dF}{dx_i}=\cfrac{dF}{df}\cdot\cfrac{df}{dx_i}$$.
Для булевых функций справедливо следующее разложение Тейлора по переменной $$x_{i}$$ в точке $$x_{i}=h_{i}$$ с использованием булевой производной:
$$f=f(x_i=h_i)\oplus\cfrac{df}{dx_i}(x_i\oplus h_i)$$Тогда различающая функция неисправности для $$h_{i}$$ может быть представлена следующим образом:
$$D(h_i)=F(x,x_i)\oplus F(x,x_i=h_i)$$, где $$h_{i} =0,1$$.
Используя разложение Тейлора функции $$F$$ по переменной $$x_{i}$$ в точке $$h_{i}$$, получаем:
$$D(h_i)=F(X,x_i=h_i)\oplus\cfrac{dF}{dx_i}(x_i\oplus h_i)\oplus F(X,x_i=h_i)= \cfrac{dF}{dx_i}(x_i\oplus h_i)$$Здесь второй сомножитель $$(x_i\oplus h_i)$$ даёт условие различения сигналов $$x_{i}$$ и $$h_{i}$$ в исправной и неисправной схеме на линии $$i$$. Первый же сомножитель определяет условие распространения рассогласования сигнала в исправной и неисправной схеме до выхода схемы $$F$$. Это соотношение является основой для метода булевых производных.
Таким образом, для построения теста для константной неисправности $$h_{i}\equiv 0 $$необходимо решить булево уравнение (найти значения входных переменных) $$x_i\cfrac{dF}{dx_i}=1$$, а для неисправности $$h_{i}\equiv 1$$ - уравнение $$\overline{x}_i\cfrac{dF}{dx_i}=1$$.
Рассмотрим метод булевых производных на примере построения теста неисправности $$x_{1}\equiv 0$$ для схемы рис. 17.2. Для построения теста нам необходимо решить уравнение $$x_1\cfrac{df}{dx_1}=1$$.
(рис 17.2) Иллюстрация метода булевых производных
При вычислениях используем приведенные выше свойства булевых производных и получаем:
$$ \cfrac{df}{dx_1}=\cfrac{df}{dx_8}\cfrac{dx_8}{dx_6}\cfrac{dx_6}{dx_1}\\ \cfrac{df}{dx_8}=\overline{x_9}=\overline{x_7\overline{x_3}}=x_3\vee\overline{x_4}\,\overline{x_5}\\ \cfrac{dx_8}{dx_6}=x_3\\ \cfrac{dx_6}{dx_1}=\overline{x_2}\\ \cfrac{df}{dx_1}=( x_3\vee\overline{x_4}\,\overline{x_5})x_3\overline{x_2}= x_3\overline{x_2}=1\\ x_1\cfrac{df}{dx_1}=x_1x_3\overline{x_2}=1$$Из этого выражения следует, что набор значений входов $$x_{1}=1$$, $$x_{2}=0$$, $$x_{3}=1$$ является проверяющим тестом для данной неисправности.
Рассмотрим построение теста для неисправности $$x_{7}\equiv 1$$ внутренней линии той же схемы.
$$ \overline{x_7}\cfrac{df}{dx_7}=1\\ \cfrac{df}{dx_7}=\cfrac{df}{dx_9}\cdot\cfrac{dx_9}{dx_7}\\ \cfrac{df}{dx_9}=\overline{x_8}=\overline{x_3x_6}=\overline{x_3(x_1\vee x_2)}=\overline{x_3}\vee\overline{x_1}\,\overline{x_2}\\ \cfrac{dx_9}{dx_7}=\overline{x_3}\\ \cfrac{df}{dx_7}=(\overline{x_3}\vee\overline{x_1}\,\overline{x_2})\overline{x_3}=\overline{x_3}\\ \overline{x_7}\,\overline{x_3}=1\\ \overline{x_4x_5}\,\overline{x_3}=1\\ (\overline{x_4}\vee\overline{x_5})\overline{x_3}=1\\ \overline{x_4}\,\overline{x_3}\vee\overline{x_5}\,\overline{x_3}=1$$Таким образом, для проверки данной неисправности можно использовать наборы $$x_{4}=0$$, $$x_{3}=0$$ или $$x_{5}=0$$, $$x_{3}=0$$, что следует из последнего выражения для различающей функции.
Основная идея этого метода заключается в выборе и активизации пути от места неисправности через последовательность
На втором этапе соседним входам
Выбрав и установив активизированный путь на третьем этапе необходимо найти значения сигналов на внешних входах схемы, которые дают требуемые значения на входах
(рис 17.3) Одномерная активизация путей
Выполняем первый этап - активизацию неисправности. Очевидно, в исправной схеме необходимо получить $$x_{7}=0$$ (значение сигнала, противоположное неисправности), что обеспечивается значением внешнего входа $$x_{3}=1$$. Далее выбираем (произвольно) путь $$x_{7}$$, $$x_{10}$$, $$x_{11}, x_{13}$$ от места неисправности до выхода схемы $$F_{2}$$. Необходимым условием активизации этого пути является равенство значений сигналов соседних входов, обеспечивающих распространение влияния неисправности: $$x_{4}=1$$ для активизации пути от $$x_{7}$$ к $$x_{10}$$; $$x_{5}=0$$ для активизации пути от $$x_{10}$$ к $$x_{11}$$; $$x_{8}=1$$ для активизации пути от $$x_{11}$$ к $$F_{2}$$.
Этим завершается прямая фаза (этап активизации). Далее необходимо найти значения внешних входов схемы, обеспечивающие полученные на предыдущем этапе условия распространения влияния неисправности. В данном случае надо найти значения $$x_{1}$$ и $$x_{2}$$, обеспечивающие равенство $$x_{8}=1$$. Из трех возможных комбинаций выбираем $$x_{1}=1$$, $$x_{2}=0$$. В результате получаем тестовый набор $$x_{1}=1$$, $$x_{2}=0$$, $$x_{3}=1$$, $$x_{4} =1$$, $$x_{5}=0$$. Когда этот набор подается на схему, то выход схемы $$F_{2}=1$$ при наличии неисправности и $$F_{2}=0$$ при ее отсутствии. Следовательно, построенный входной набор действительно является тестовым.
Отметим, что при выполнении этапа подтверждения (обратной фазы) возможен перебор различных вариантов значений входных сигналов и неудачный выбор может привести в дальнейшем к несовместимости полученных значений сигналов на некоторых линиях схемы. В этом случае необходимо "дать задний ход" и выполнить перебор других вариантов до тех пор, пока несовместимость не будет устранена. Таким образом, задача построения теста для заданной неисправности носит переборный характер.
(рис 17.4) Контрпример для метода одномерной активизации.
К сожалению, рассмотренный метод не является алгоритмом, т.е. он не гарантирует построение теста для отдельных неисправностей некоторых схем. Например, для приведённой на рис. 17.4 схемы для неисправности $$х_{2}\equiv 1$$ этот метод не может построить тест.
Активизация одиночного пути $$x_{2}$$, $$x_{4}$$, $$x_{6}$$ требует значения $$x_{5}=0$$, что невозможно, так как для активизации неисправности $$х_{2}\equiv 1$$ необходимо подать $$х_{2}=0$$, что ведет к требованию $$x_{5}=1$$(т.е. возникновению противоречия - конфликта на линии $$x_{5}$$). В силу симметрии невозможно также активизировать второй одиночный путь $$x_{2}$$, $$x_{5}$$, $$x_{6}$$. Тем не менее, тест для этой неисправности существует - $$x_{1}=1$$, $$x_{2}=0$$, $$x_{3}=1$$. Действительно, на этом наборе $$F=1$$ при отсутствии неисправности и $$F=0$$ при ее наличии. Этот тест не может быть построен данным методом, так как в этом случае необходимо активизировать одновременно два пути от места неисправности до внешнего выхода схемы. Все последующие методы построения тестов основаны на многомерной активизации (нескольких) путей с использованием многозначных алфавитов.
Различающая функция - определяет множество входных наборов, на которых исправная и неисправная схема дают различные выходные реакции.
Булева производная - определяет зависимость булевой функции от переменной.
Активизация пути - обеспечивает распространение различия значений сигналов в исправной и неисправной схеме от места неисправности до внешнего выхода схемы.
В лекции рассмотрена задача построения проверяющего теста для конкретной заданной неисправности комбинационной схемы. Изложены аналитические методы построения тестов для заданной неисправности.
(рис 17.5) Схема для упражнения 4.
(рис 17.6) Схема для упражнения 10.
(рис 17.7) Схема для упражнения 12.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.