Программная инженерия и программирование
Применение булевой алгебры для автоматизации генерации шаблонов логических тестов
Table of Contents
Основы булевой алгебры в цифровом дизайне
Булева алгебра, введенная Джорджем Булом в 19 веке, обеспечивает математическую основу для цифрового логического проектирования. Она работает на бинарных переменных, которые могут принимать только два значения: 0 (соединение, представленное · или ⁇ ), OR (расхождение, представленное + или ⁇ )] NOT (отрицание, представленное баром или ′)] (отрицание, представленное баром)] (отрицание, представленное баром или ′)]. Эти правила позволяют инженерам выражать любую комбинационную логическую схему как булево выражение, а затем манипулировать этим выражением для оптимизации площади, скорости или энергопотребления. Например, выражение может быть учтено для ,
Роль генерации тестовых шаблонов в цифровой проверке цепей
После того, как цифровая схема изготовлена, она должна быть протестирована, чтобы гарантировать, что никакие физические дефекты — такие как шорты, открытия или транзисторы, застрявшие на неисправностях — не ставят под угрозу ее функциональность. Логическое генерирование тестовых шаблонов — это процесс создания набора входных векторов, которые при применении к схеме производят выходы, которые можно сравнить с ожидаемыми значениями. Цель состоит в том, чтобы достичь высокого покрытия неисправностей с минимальной длиной испытания. Раннее ручное тестирование генерации было непрактичным для сложных конструкций, поэтому были разработаны автоматизированные инструменты (ATPG — Automatic Test Pattern Generation). Булевая алгебра является основой этих инструментов, потому что она обеспечивает формальный, алгоритмический способ получения тестовых шаблонов, рассуждая о логическом поведении схемы в условиях неисправности.
Модели ошибок и их булевое представление
Наиболее распространенной моделью неисправности является , застрявшая в неисправности, где сигнальная линия постоянно застряла в логике 0 или логике 1. Для данной схемы застрявшая в неисправности функция трансформирует исходную булеву функцию в неисправную функцию. Булева алгебра позволяет инженерам-испытателям вычислить состояние, при котором правильные и неисправные выходы отличаются — эта разница называется эффектом неисправности. Например, если сетка застряла на 1, неисправная схема ведет себя так, как если бы , независимо от предполагаемой логики. Тестовый шаблон должен сенсибилизировать путь от места неисправности к первичному выходу при управлении необходимыми значениями узла. Булевые уравнения для обнаружения неисправностей построены путем объединения хорошей функции схемы, неисправной функции схемы и XOR двух выход
Другие модели неисправностей включают в себя , связующие неисправности (короткие схемы между двумя сетями) и , которые также могут быть выражены с использованием булевой алгебры при моделировании неисправного поведения в качестве измененной логической операции.
Систематические шаги для автоматизации генерации тестовых шаблонов с использованием булевой алгебры
Современные алгоритмы ATPG на каждом шагу опираются на булеву алгебру.Общий поток можно разбить на четыре фазы, но за каждой стоит алгебраическое рассуждение.
1. Моделирование схемы как булевы выражения
Сетевой список схем преобразуется в набор булевых уравнений для каждого вывода ворот. Для простого AND-ворота с входами и и вывода выражение является . Для внутреннего узла, который вентилятор выходит на несколько ворот, каждая ветвь фаната несет одно и то же логическое значение, если не присутствует неисправность. Инструмент ATPG строит Булева разница модель: частичная производная вывода относительно сигнала, которая указывает, влияет ли изменение этого сигнала на выход. Булева разница вычисляется с использованием XOR и AND операций, позволяющих анализ распространения неисправностей.
2.Упрощение выражений булевой алгеброй
Перед генерацией тестовых шаблонов булевы выражения схемы часто упрощаются для уменьшения избыточности. Это не только для аппаратной оптимизации — упрощенные выражения также облегчают решение проблемы генерации тестов. Такие методы, как карты Карнау и Quine-McCluskey алгоритм , используются для минимизации сумм продуктов или форм продукта-суммы. Например, выражение упрощает . Меньшее количество терминов продукта означает меньшее количество кубов теста, необходимых для покрытия всех ошибок. Булевы алгебра теоремы, такие как поглощение, идемпотенция и консенсус, применяются исчерпывающе движком ATPG для обрезки пространства поиска.
3. получение векторов тестирования с помощью булевого рассуждения
После моделирования и упрощения схемы инструмент ATPG формулирует генерацию теста как задачу удовлетворяемости (SAT) или использует алгоритмы, такие как D-алгоритм, PODEM (Panout-Oriented Decision Making) или FAN (Fanout-Oriented). Все эти методы полагаются на булеву алгебру для присвоения значений первичным входам, так что эффект неисправности распространяется на наблюдаемый выход. Например, D-алгоритм вводит нотацию D (D = 1 в хорошей цепи, 0 в неисправной цепи; D' = 0 хорошего, 1 неисправного). Булевые уравнения используются для обоснования каждого внутреннего назначения, обеспечивая согласованность. Двигатель ATPG выполняет рекурсивный поиск обратного пути, используя булеву алгебру для вычисления последствий — когда выходной выход затвора вынужден к значению, другие сигналы определяются вперед или назад.
Пример: Stuck-at-0 Fault на выходе NAND Gate
Рассмотрим двухвходный NAND-затвор с входами и , выход . Хорошая схема: . Неисправность , застрявшая на 0: неисправная схема всегда выводит 0. Для обнаружения этой неисправности нам нужны входы, которые делают хороший выход 1 (так что неисправный выход отличается). Для этого требуется (т.е., по меньшей мере, один вход равен 0)] (т.е. используется булева алгебра: условие испытания . Так что любая комбинация ввода, где работает — то есть или или . Этот простой пример иллюстрирует, как алгебраические манипуляции дают тестовый набор непосредственно. Для больших схем инструмент автоматизирует такое рассуждение через сотни тысяч ворот.
4. автоматизация генерации и компакции шаблонов
После получения отдельных тестовых векторов для каждого сбоя инструмент ATPG использует моделирование сбоев для оценки того, какие векторы покрывают дополнительные сбои. Булева алгебра снова играет роль: симуляция сбоев ускоряется путем оценки булевых функций по многим входным шаблонам одновременно с использованием битовых операций. Такие инструменты, как Synopsys Tetramax или Mentor Graphics FastScan реализуют эти методы. Окончательный набор шаблонов уплотняется — удаление избыточных векторов — с помощью булевого рассуждения для обнаружения того, что подмножество шаблонов все еще возбуждает и распространяет все целевые сбои.
Преимущества булевой алгебры в автоматизации тестовых шаблонов
- Уменьшенный размер набора тестов: Булевое упрощение устраняет избыточные кубики тестов, что приводит к меньшему количеству циклов испытаний и снижению стоимости испытаний.
- Охват по высоким показателям: Формальные алгебраические методы гарантируют отсутствие неопределяемых неисправностей (при условии, что модель неисправности является точной).
- Алгоритмическая эффективность: Решающие SAT и BDD (Binary Decision Diagrams) на булевой алгебре могут обрабатывать цепи с миллионами вентилей.
- Гибкость: Булевая алгебра поддерживает несколько моделей ошибок и иерархическую генерацию тестов без фундаментального изменения базовой математики.
- Инструменты ATPG могут работать без присмотра, создавая шаблоны тестов за минуты, которые потребуют от инженеров-людей недель.
Проблемы и современные улучшения
В то время как булева алгебра обеспечивает прочную теоретическую основу, практическая ATPG сталкивается с проблемами. Экспоненциальная сложность булевой удовлетворяемости может заставить инструменты работать бесконечно для некоторых труднопроверяемых ошибок. Инженеры обращаются к этому, используя случайное генерирование тестов в сочетании с алгебраической эвристикой BDD-основанное рассуждение , которое уплотняет булевы выражения в каноническую форму. Другой проблемой является обработка последовательных схем с элементами памяти (flip-flops). Здесь булева алгебра расширяется до переходов в модельном состоянии — тестовый шаблон становится последовательностью векторов, требуя итеративных алгебраических операций в течение временных рамок. Современные инструменты ATPG также включают методы итеративного сжатия , такие как LFSR
Заключение
Булева алгебра остается незаменимым инструментом в автоматизации генерации логических тестовых шаблонов. От моделирования схем и неисправностей до получения и уплотнения тестовых векторов ее алгебраические правила обеспечивают формальный, масштабируемый метод обеспечения правильности цифровых систем. По мере того, как интегральные схемы становятся все плотнее — с миллиардами транзисторов и передовыми производственными узлами — роль булевой алгебры в ATPG будет продолжать развиваться, включая машинное обучение и более сложные решатели SAT, но всегда коренится в той же логической основе, которую Джордж Бул заложил более 150 лет назад. Инженеры, которые осваивают эти концепции, лучше оснащены для разработки надежной электроники и управления постоянно растущей сложностью тестирования. Для дальнейшего чтения по этой теме, обратитесь к обзору IEEE современных алгоритмов ATPG и .