Як бачимо, цьому визначенню цілком відповідає набір 011 для схеми рис. 2.10 та 100 для схеми рис. 2.11. Підкреслимо, що кожен тестовий набір будується для кожної заданої несправності.

У більшості випадків нас цікавить не тільки наявність чи відсутність несправностей, але й те, яка саме несправність має місце. У цих випадках застосовують діагностичні тести, ідея побудови яких також сама, але додатково накладається вимога: вихідні реакції об’єкту для різних несправностей повинні бути різними.

Із цього витікає, що передумовою для побудови тестової послідовності є необхідність попередньо задати (перелічити) конкретні несправності, які повинна виявляти тестова послідовність. Розглянемо цю особливість уважніше.

В наведених заздалегідь спрощених прикладах ми задалися найбільш примітивними несправностями типу обрив. Аналогічним чином можна було б задати короткі замикання на входах чи виходах схеми, або навіть в електрорадіоелементах, що не мають безпосередніх електричних зв’язків ні з входами, ні з виходами. Очевидно, що такі примітивні несправності не вичерпують всього різноманіття дефектів і порушень працездатності сучасних цифрових компонентів. Якщо перейти до компонентів реальної складності, наприклад, великих інтегральних схем (ВІС), де кількість еквівалентних вентилів може досягати десятків тисяч, враховуючи інші типи несправностей (зміна провідності, пробої діелектричних шарів, коливання затримок при проходженні сигналів, тощо), то кількість несправностей, яку необхідно задати при побудові тесту, стає занадто великою навіть для комп’ютерних програм. До того ж, реальні несправності можуть бути не тільки однократні, але й 2-кратні, 3-кратні і т.д. Все це обмежує сферу застосування методів, які вимагають переліку несправностей, відносно простими об’єктами.

Але в розглянутому підході, який називають алгоритмічним, є й принципова перевага перед іншими методами – це його “детермінованість” в тому розумінні, що всі задані несправності із 100-відсотковою достовірністю виявляються тестовою послідовністю. Про інші (такі, що не задані) несправності, зрозуміло, нічого сказати не можна.

Повертаючись до змісту алгоритмічного підходу зазначимо, що для інших логічних елементів, як і для схеми “І” та “АБО”, так само не виникає жодних проблем при пошуку тестового набору для будь-якої несправності типу обрив або коротке замикання. Враховуючи, що елементи ”І-НІ” та “АБО-НІ” є базовими в тому розумінні, що на них можна реалізувати будь-яку логічну функцію, задачу побудови тестів можна було б вважати розв’язаною. Але, на жаль, це не так. Справа в тім, що несправний вентиль у більшості випадків знаходиться всередині пристрою або компоненту (ІС), і до його входів та виходів немає доступу, тобто можливість безпосередньо подати на його входи тестові сигнали і спостерігати реакцію на ці сигнали відсутня.

Класичні методи побудови тестів базуються на процедурах активізації шляхів до доступних входів і виходів об’єкта. Ідею активізації можна пояснити так. На рис. 2.12 зображений фрагмент пристрою, в якому на вентиль подаються тестові сигнали.

Рис. 2.12.

До виходу немає безпосереднього доступу, значення сигналу на ньому можна спостерігати лише “крізь” елементи . Для цього потрібно забезпечити їх “прозорість” в тому розумінні, що будь-яка зміна сигналу повинна транспортуватись без перешкод до кінцевого виходу пристрою, доступного для спостереження. Це можна зробити, подавши на входи відповідні сигнали, значення яких визначаються із рівняння (для вентиля )

,

 

Це булава похідна по змінній функції , яку реалізує .

Для елемента “І”

і

Розв’язком цього рівняння буде

; ;... ; ;..., ,

тобто для “прозорості” елемента “І” на всі його входи (крім ) потрібно подати одиничні сигнали.

Для елемента “АБО”

; ;... ; ;..., .

Провівши аналогічні обчислення і подавши відповідні сигнали на , ми забезпечимо “прозорість” всього шляху до кінцевого виходу для інформації від елемента, що перевіряється. Це і є активізація шляху .

Наступним кроком є забезпечення подачі на входи необхідних тестових сигналів. І знову виникає проблема – до цих входів немає безпосереднього доступу. Але розв’язується вона досить просто, а саме, відповідним визначенням функцій, які формують сигнали для , і довизначенням їх для тих входів, які активізують шляхи до .

Найбільш популярним серед алгоритмічних методів до цього часу залишається -алгоритм Рота [ ], який базується на ідеї активізації всіх можливих шляхів від місця можливої несправності до всіх доступних для спостереження виходів пристрою. Цей алгоритм є складовою більшості програмних пакетів, призначених для побудови тестів.

У цьому посібнику немає можливості докладно зупинитися на деталях алгоритму, але ще раз зазначимо, що будь-який алгоритмічний метод принципово потребує переліку в тому, чи іншому вигляді несправностей, які потрібно виявляти. Ця вимога може бути виконана лише відносно так званих константних несправностей, тобто таких, які еквівалентні заміщенню булевих змінних константами 0 або 1, а на фізичному рівні – обривам або коротким замиканням. Оскільки несправності інших типів для сучасних інтегральних компонентів мають далеко не нульову ймовірність, то застосування алгоритмічних методів обмежується здебільшого пристроями на дискретній елементній базі, релейними схемами тощо. В той же час тести, побудовані за такими методами, можуть бути використані як “стартові”, які згодом, в процесі застосування доповнюються додатковими тестовими наборами, які виявляють ті несправності, які не були виявлені.

Треба також зауважити, що тести є програмним продуктом, і фірми, що поставляють його на ринок, із зрозумілих причин не розголошують методи побудови ефективних тестів. Враховуючи ці обставини, можна вважати, що задача побудови тестів в значній мірі залишається відкритою і в конкретних випадках (для апаратури конкретного класу) існує багато варіантів її розв’язання не основі інтуїтивних підходів або комп’ютерного моделювання несправностей і експериментального пошуку таких вхідних сигналів, які їх виявляють.

 

Контрольні питання

1. У чому полягає основна мета тестового контролю?

2. Що таке тест? Яка різниця між перевіряючим і діагностичним тестом?

3. Як здійснюється активізація шляху від несправності до виходів пристрою?

4. Які вади має алгоритмічний підхід до побудови тестів?