Обзорно по побитовым операциям:

Побитовое "и" - схема из функциональных элементов
С остальными операциями также
Сумматоры



Адекватный сумматор трёхбитного числа (поразрядный)
Гдеэто количество бит
Сумматор построенный на рисунке выше называется каскадным от слова "cascade".
Неприятно что ![]()
Абстрагируемся от сложной задачи и подумаем, о том, когда бит переноса точно
| a | b | c (бит переноса) | d |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | зависит от пред. б.п. | 1 |
| 1 | 0 | зависит от пред. б.п. | 1 |
| 1 | 1 | 1 | 0 |
Получается, наш сумматор с точки зрения функции относительно предыдущего бита переноса, принимает всего 3 значения (этим значениям даже придуманы названия):
- kill - сумма двух нулей и у нас 100% не будет бита переноса дальше, даже если он пришёл с предыдущего разряда - propagate - сумма разных значений; если нам пришёл бит переноса с предыдущего разряда, он же пойдёт в бит переноса у нас: если не пришёл, будет 0 - generate - сумма двух единиц и у нас 100% будет бит переноса, даже если нам он не пришёл с предыдущего разряда
Представим что мы делаем композицию двух функций описанных выше, то-есть смотрим на входы двух сумматоров и пытаемся понять, если сумматор "пропустит через себя" бит переноса (we try to determine if the device will propagate the carry bit), или выдаст предетерменированный результат (
Рассмотрим таблицу композиции функции (1 - первая операция, 2 - вторая):
Эту функцию композиции отобразим схематично, для тех кто ещё не врубился что тут происходит: ![]()
Выше,
Композиция этих функция говорит, если этот участок из двух разрядов при сложении переопределяет
Мы можем масштабировать эту систему, чтобы выяснить как ведёт себя вся совокупность из
Ниже приводится схематика того, как это работает.

Недеюсь этот конспект используют достаточно человек чтобы оправдать время на рисование этой схемы...