Altifigence Academy

7 / 63 · Теория

Булева алгебра, эквивалентные преобразования и стоимость реализации

Преобразуйте схемы законами де Моргана и вынесением общего множителя, различая логическую эквивалентность и временные свойства.

Эквивалентные выражения совпадают на всех входах

Упрощая комбинационную схему, стремятся не только сократить запись. Нужно сохранить функцию и учитывать число логических уровней, fan-in, fan-out и реальные библиотечные ячейки. Сначала интерпретируйте ++ и произведение в булевой алгебреБулева алгебра оперирует значениями 0 и 1 и операциями AND, OR, NOT. Знак сложения здесь обычно означает OR, поэтому правила отличаются от сложения целых чисел. как OR и AND.

A+AB=A,A+A‾B=A+BA+AB=A,\qquad A+\overline A B=A+B

Второе равенство проверяется разбором случаев: при A=1A=1 обе стороны равны 1, при A=0A=0 обе равны BB. После применения заученного тождества вы должны уметь объяснить его смысл.

Чтение структур NAND и NOR через законы де Моргана

AB‾=A‾+B‾,A+B‾=A‾ B‾\overline{AB}=\overline A+\overline B,\qquad \overline{A+B}=\overline A\,\overline B

Например, Y=AB+ACY=AB+AC эквивалентно A(B+C)A(B+C). Первое выражение можно нарисовать как два AND и один OR, второе — как один OR и один AND. Но при разном времени прихода входов или нагрузке меньшее число элементов не всегда означает более быструю схему.

Полезна и теорема консенсуса:

AB+A‾C+BC=AB+A‾CAB+\overline A C+BC=AB+\overline A C

Если BC=1BC=1, то при A=0A=0 уже равно 1 слагаемое A‾C\overline A C, а при A=1A=1 — ABAB. Поэтому BCBC избыточно для установившейся функции. Однако удаление этого члена может изменить свойства схемы во время переходов и появление опасных состязаний. Разберём это в лекции о задержках.

Каждый столбец ниже — одна комбинация ABC, а не шаг времени. Проверьте совпадение двух выходов во всех столбцах. Число элементов и пути могут различаться, но функция для устойчивых входов 0/1 одинакова.

Эквивалентность AB + AC и A(B + C)
Показать данные диаграммы
Данные диаграммы: каждый символ — один интервал; точка сохраняет предыдущее состояние; p — один тактовый цикл.
СигналДиаграммаЗначения шины
ABC23452345000 → 001 → 010 → 011 → 100 → 101 → 110 → 111
AB+AC0....1..
A(B+C)0....1..

Критерий проверки эквивалентности

Обозначьте исходный и преобразованный выходы y_ref и y_opt и для небольшого пространства входов сравните все комбинации. Успех одного-двух примеров не доказывает эквивалентность.

SystemVerilog
assign y_ref = (a & b) | (a & c);
assign y_opt = a & (b | c);
assign mismatch = y_ref ^ y_opt;

На всех восьми комбинациях 0/1 сигнал mismatch должен оставаться 0. Симуляция с четырьмя состояниями, включая X/Z, и проверка эквивалентности последовательностных схем требуют дополнительных условий. Явно указывать границы доказанного — базовый навык проектного ревью.

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

Упростите F=A‾B+AB+AB‾F=\overline A B+AB+A\overline B и укажите число входных комбинаций для проверки.

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

Первые два слагаемых дают B(A‾+A)=BB(\overline A+A)=B, поэтому F=B+AB‾=A+BF=B+A\overline B=A+B. Для двух переменных проверяют четыре комбинации. Эквивалентность выражений не означает одинаковую задержку распространения реализаций.

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