Главная / Без рубрики / Реализация логических функций на элементах базиса

Реализация логических функций на элементах базиса

1. Введение: понятие базиса и задачи реализации

Базис в булевой алгебре — набор элементарных логических операций, достаточный для представления любой булевой функции.

Цель реализации — построить схему из элементов заданного базиса, которая:

  • выполняет требуемую логическую функцию;
  • отвечает критериям оптимальности (число элементов, задержка, потребление);
  • учитывает ограничения технологии (число входов, нагрузочная способность).

Ключевые базисы:

  • {И, ИЛИ, НЕ} — классический полный базис;
  • {И‑НЕ} — универсальный базис (Шеффер);
  • {ИЛИ‑НЕ} — универсальный базис (Вебб);
  • {И, НЕ}, {ИЛИ, НЕ} — неполные, но практически важные.

2. Этапы реализации логической функции

2.1. Формализация задачи

  1. Задание функции:
    • таблицей истинности;
    • алгебраическим выражением (ДНФ, КНФ);
    • словесным описанием («выход 1, если ровно два входа 1»).
  2. Определение переменных (входов) и выходного сигнала.
  3. Выбор базиса (зависит от технологии: ТТЛ, КМОП, FPGA).

2.2. Минимизация функции

Цель: сократить число операций и литералов для экономии элементов и повышения скорости.

Методы:

  • алгебраические преобразования (законы булевой алгебры);
  • карты Карно (для 2–6 переменных);
  • метод Квайна‑МакКласки (для большого числа переменных);
  • ПО для синтеза (Synopsys, Xilinx ISE).

Пример минимизации (ДНФ → минимальная ДНФ):

F=AB+AB=A(B+B)=A.

2.3. Приведение к заданному базису

Преобразование минимизированной функции к операциям выбранного базиса с использованием:

  • законов Де Моргана;
  • тождеств замены (например, A∨B=A⋅B);
  • введения вспомогательных переменных.

2.4. Построение схемы

  1. Разбиение на каскады (уровни логики).
  2. Учёт нагрузочной способности (fan‑out).
  3. Оптимизация по задержке (балансировка путей).
  4. Добавление буферов при необходимости.

2.5. Верификация

  • моделирование (SPICE, VHDL/Verilog);
  • проверка на тестовых наборах;
  • анализ временных характеристик.

3. Реализация в различных базисах

3.1. Базис {И, ИЛИ, НЕ}

Преимущества:

  • естественность записи (ДНФ/КНФ напрямую);
  • наглядность схемы.

Алгоритм:

  1. Получить ДНФ (для «1» в таблице истинности).
  2. Каждый конъюнкт → элемент И.
  3. Объединение конъюнктов → элемент ИЛИ.
  4. Инверсии переменных → элементы НЕ.

Пример: F=AB+AB

  • 2 элемента И (входы: A,B и A,B);
  • 1 элемент ИЛИ (входы от И);
  • 2 инвертора (для A, B).

3.2. Базис {И‑НЕ} (универсальный)

Принцип: любая функция выражается через операции И‑НЕ.

Шаги:

  1. Получить ДНФ.
  2. Записать как двойное отрицание: F=F.
  3. Применить закон Де Моргана к F → получим выражение только через И‑НЕ.

Типовые преобразования:

  • A=A↑A (инвертор на И‑НЕ);
  • A⋅B=(A↑B)​ (И через два И‑НЕ);
  • A+B=(A↑B)​ (ИЛИ через три И‑НЕ).

Пример (F=A+B):

  1. F=A+B​​=A⋅B.
  2. Схема:
    • 2 И‑НЕ для A и B;
    • 1 И‑НЕ для A⋅B=A+B.

3.3. Базис {ИЛИ‑НЕ} (универсальный)

Аналогично, но используем закон:

A⋅B=A+B.

Преобразования:

  • A=A↓A;
  • A+B=(A↓B)​;
  • A⋅B=(A↓B)​.

Пример (F=A⋅B):

  1. F=A⋅B=A+B​.
  2. Схема:
    • 2 ИЛИ‑НЕ для A и B;
    • 1 ИЛИ‑НЕ для A+B​=A⋅B.

3.4. Базис {И, НЕ} или {ИЛИ, НЕ}

Ограничения: нельзя напрямую реализовать ИЛИ (в {И, НЕ}) или И (в {ИЛИ, НЕ}).

Решение: использовать законы Де Моргана для замены:

  • В {И, НЕ}: A+B=A⋅B;
  • В {ИЛИ, НЕ}: A⋅B=A+B​.

Пример ({И, НЕ}, F=A+B):

  • 2 инвертора (A, B);
  • элемент И (A⋅B);
  • инвертор на выходе (A⋅B=A+B).

4. Практические примеры реализации

4.1. Полусумматор (XOR + AND)

Функции:

  • Сумма: S=A⊕B=AB+AB;
  • Перенос: C=A⋅B.

Реализация в {И, ИЛИ, НЕ}:

  • S: 2 И, 1 ИЛИ, 2 НЕ;
  • C: 1 И.

В {И‑НЕ}:

  • S=AB⋅AB (4 И‑НЕ);
  • C=A⋅B (2 И‑НЕ).

4.2. Дешифратор 2→4

Функция: активирует один из четырёх выходов в зависимости от кода на входах A, B.

ДНФ выходов:

  • Y0​=AB;
  • Y1​=AB;
  • Y2​=AB;
  • Y3​=AB.

Схема:

  • 2 инвертора (A, B);
  • 4 элемента И (по два входа каждый).

4.3. Мультиплексор 2→1

Функция: Y=A⋅S+B⋅S, где S — селектор.

Реализация:

  • 1 инвертор (S);
  • 2 элемента И (A⋅S, B⋅S);
  • 1 элемент ИЛИ (Y).

5. Оптимизация при реализации

5.1. Минимизация числа элементов

  • Использование общих подвыражений (например, A для нескольких конъюнктов).

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *