Курс 8 • Урок 6 из 8 • 3 часа учебной нагрузки

Сумматоры, сравнение кодов и контроль чётности

Цель: Понять работу сумматоров, цифровых компараторов и контроля чётности и уметь строить их из базовых логических функций.

3 часа короткая теория, самостоятельная практика, проверка результата и тест.

Суть темы

Цифровая арифметика реализуется логическими схемами. Полусумматор складывает два бита и выдаёт сумму S и перенос C. Полный сумматор дополнительно принимает входной перенос Cin, что позволяет каскадировать разряды. Компаратор сравнивает двоичные слова, а parity-схема обнаруживает часть ошибок передачи данных.

Эти устройства показывают, как из небольших комбинационных блоков строятся функции более высокого уровня.

  • Half adder: S=A XOR B, C=A AND B.
  • Full adder учитывает Cin и формирует Cout.
  • Ripple-carry adder прост, но перенос проходит последовательно по разрядам и создаёт задержку.
  • Компаратор формирует A=B, A>B, A
  • Parity bit делает число единиц чётным или нечётным и обнаруживает любое нечётное число инверсий битов.

Ключевые связи и параметры

Сумма n-битных чисел может потребовать n+1 бит из-за переноса. В знаковой арифметике overflow отличается от carry и определяется правилами представления отрицательных чисел.

Parity не исправляет ошибку и не обнаруживает все варианты: две инверсии сохранят чётность. Это простая проверка, а не полноценный код коррекции ошибок.

Half adder: S=A⊕B, C=A·BParity = XOR всех информационных битов (для выбранного соглашения)

Разбор примера

1+1 в одном разряде: S=0, C=1. Для 3+5: 0011+0101=1000. При последовательном переносе каждый разряд ждёт результат предыдущего.

Для данных 1011001 число единиц равно 4. При чётном контроле бит чётности равен 0; если один бит случайно инвертирован, общее число единиц станет нечётным и проверка обнаружит ошибку.

Практическая работа и проверка

Постройте полусумматор и полный сумматор сначала по таблице истинности.

  1. Составьте таблицу half adder.
  2. Добавьте Cin и получите full adder.
  3. Соедините два full adder для 2-битного сложения.
  4. Реализуйте сравнение двух 2-битных чисел в симуляторе.
  5. Добавьте генератор и проверку even parity для небольшого слова.
Не смешивайте carry и signed overflow — это разные признаки.

Типичные ошибки и диагностика

  • Считать XOR и OR взаимозаменяемыми в бите суммы.
  • Игнорировать входной перенос в старших разрядах.
  • Считать parity механизмом исправления данных.
  • Путать числовое сравнение знаковых и беззнаковых кодов.

Ошибка одного разряда сумматора может распространяться через carry. При отладке проверяйте S и Cout каждого stage. Для parity сначала убедитесь, какое соглашение even/odd выбрано.

Связь с реальным устройством

Арифметические и контрольные блоки строятся из той же булевой логики. Их задержки и ограничения становятся заметными при увеличении разрядности и частоты.

Что нужно запомнить

  • Half adder использует XOR для суммы и AND для переноса.
  • Full adder учитывает Cin.
  • Ripple carry создаёт последовательную задержку.
  • Компаратор различает =, >, <.
  • Parity обнаруживает не все многобитные ошибки.
Проверка знаний

Вопросы по уроку

Нужно 75%
Загрузка вопросов…