Логическая избыточность возникает в цифровой сети вентилей , содержащей схемы, которые не влияют на статическую логическую функцию. Существует несколько причин, по которым может существовать логическая избыточность. Одна из причин заключается в том, что она могла быть добавлена намеренно для подавления переходных сбоев (таким образом вызывая состояние гонки ) в выходных сигналах путем наложения двух или более терминов продукта на третий.
Рассмотрим следующее уравнение:
Третий член произведения — избыточный консенсусный член . Если переключается с 1 на 0, а и , остается 1. Во время перехода сигнала в логических вентилях как первый, так и второй член могут на мгновение стать равными 0. Третий член предотвращает сбой, поскольку его значение 1 в этом случае не зависит от перехода сигнала .
Другая причина логической избыточности — плохие методы проектирования, которые непреднамеренно приводят к логически избыточным терминам. Это приводит к ненужному увеличению сложности сети и, возможно, затрудняет возможность тестирования изготовленных конструкций с использованием традиционных методов тестирования (модели одиночных постоянных неисправностей). Тестирование может быть возможным с использованием моделей IDDQ .
Логическая избыточность, в общем случае, нежелательна. Избыточность, по определению, требует дополнительных частей (в данном случае: логических терминов), что повышает стоимость реализации (либо фактическую стоимость физических частей, либо время ЦП для обработки). Логическую избыточность можно устранить несколькими известными методами, такими как карты Карно , алгоритм Куайна-Маккласки и эвристический компьютерный метод .
В некоторых случаях может быть желательно добавить логическую избыточность. Один из таких случаев — избежать условий гонки , когда выход может колебаться, поскольку разные термины «гонятся» за включение и выключение. Чтобы объяснить это более конкретно, карта Карно справа показывает минтермы для следующей функции:
В прямоугольниках представлены минимальные условия И/ИЛИ, необходимые для реализации этой функции:
Карта k визуально показывает, где в минимальном выражении возникают условия гонки , имея пробелы между минтермами, например, пробел между синим и зеленым прямоугольниками. Если входные данные изменятся с [1] на , то гонка произойдет между выключением и включением. Если синий термин выключится до того, как включится зеленый, то выход будет колебаться и может быть зарегистрирован как 0. Другое условие гонки — между синим и красным для перехода от к .
Состояние гонки устраняется добавлением логической избыточности. Оба состояния гонки минтермов покрываются добавлением желтого термина .
В этом случае добавление логической избыточности стабилизировало выходной сигнал, чтобы избежать колебаний выходного сигнала, поскольку термы соревнуются друг с другом, чтобы изменить состояние.