Altifigence Academy

45 / 63 · Теория

Логические состязания и пределы эквивалентных выражений

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

В таблице истинности нет времени

Если в следующем выражении зафиксировать B=C=1, F=1 и при A=0, и при A=1.

F=AB+A‾CF=AB+\overline A C

Но выходы реальных элементов меняются не одновременно со входами. При переходе A из 1 в 0 путь AB может раньше упасть в 0, а путь A‾C\overline A C через инверторИнверсия — операция NOT, меняющая 0 на 1 и 1 на 0. Черта над формулой означает применение NOT ко всему выражению под ней. Подробнее позже подняться в 1. Возникает интервал двух нулевых слагаемых. Краткий 0 на выходе, который должен сохранять 1, называется static-1 hazard, статическим состязанием единичного уровня.

Сравните задержки числами

Предположим следующие задержки до входов OR. Числа объясняют принцип и не относятся к определённому техпроцессу.

СобытиеВремя после переключения A
AB падает в 02 ns
A‾C\overline A C растёт в 14 ns

Оба входа OR нулевые примерно 2 ns. Ширина и само появление выходного импульса зависят также от задержки OR и передачи коротких импульсов. Правильность всех восьми комбинаций таблицы истинностиТаблица истинности перечисляет все возможные комбинации входов и выход для каждой из них. Изменения во времени проверяют отдельно по временным диаграммам. Подробнее не проверяет этот переходный эффект.

Одна ячейка ниже — 1 ns после изменения A. Предполагается изменение AB в 2 ns и NOT(A)C в 4 ns. Последние две строки — объединение входов без собственной задержки OR, а не измеренные диаграммы реального компонента. Проверьте, перекрывает ли путь BC=1 промежуток между двумя членами.

Промежуток, вызванный разницей задержек путей
Показать данные диаграммы
Данные диаграммы: каждый символ — один интервал; точка сохраняет предыдущее состояние; p — один тактовый цикл.
СигналДиаграммаЗначения шины
время(ns)2345230 → 1 → 2 → 3 → 4 → 5
AB1.0...
NOT(A)C0...1.
входы OR1.0.1.
с членом BC1.....

Избыточный член может выполнять временную роль

Добавим BC, поддерживающий выход независимо от A, пока B=C=1.

Fcovered=AB+A‾C+BCF_{\mathrm{covered}}=AB+\overline A C+BC

По теореме консенсуса булевой алгебрыБулева алгебра оперирует значениями 0 и 1 и операциями AND, OR, NOT. Знак сложения здесь обычно означает OR, поэтому правила отличаются от сложения целых чисел. Подробнее функция для устойчивых входов та же. Но BC остаётся 1 при переключении A и перекрывает разрыв данного одиночного перехода. На карте Карно это соответствует покрытию соседних единиц общей группой.

Рассуждение действует при предположениях вроде изменения одного входа и двухуровневой SOP. Оно не решает проблемы одновременного изменения нескольких входов, динамических состязаний многоуровневой логики и аналоговых помех.

Записанный в RTL член может не сохраниться

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

Основа синхронного тракта — соблюдение setupВремя предустановки (setup) — минимальное время, в течение которого входные данные должны быть стабильны до захватывающего фронта такта. При нарушении результат записи не гарантирован. Подробнее и holdВремя удержания (hold) — минимальное время, в течение которого входные данные должны оставаться стабильными после захватывающего фронта такта. Учитывайте контекст: это не то же самое, что обычное сохранение значения. Подробнее, чтобы регистрРегистр хранит многобитное состояние. Синхронные регистры в этом курсе записывают определённый вход на фронте тактового сигнала. Подробнее выбирал уже устойчивый выход. Использование комбинационных выбросов как такта, асинхронного сброса или триггера внешнего устройства может усугубить проблему. Проектируйте с учётом назначения сигнала и способа приёма.

Попробуйте сами

В H=A‾B+ACH=\overline A B+AC заданы B=C=1, A меняется с 0 на 1. Какой член консенсуса можно добавить против static-1 hazard? Изменится ли установившаяся таблица истинности?

Прочитать объяснение

Добавляется BC. A‾B+AC+BC\overline A B+AC+BC функционально эквивалентно исходному, но BC перекрывает интервал, где оба переходных пути могли быть 0. Предполагается изменение одного входа; сохранение этого члена в реальной структуре проверяется отдельно.

Выбор действует в этом браузере. Его можно изменить внизу страницы.