13 / 36 · Теория
Полусумматоры и полные сумматоры
Вычислите сумму и перенос, затем соедините разряды.
Уроки доступны бесплатно. Запишитесь, чтобы сохранять прогресс.
Цели урока
- Вычислите сумму и перенос, затем соедините разряды.
Сумма и перенос
Полусумматор вычисляет sum=a^b и carry=a&b. Для 1+1 двоичный результат 10: sum=0, carry=1. Полный сумматор добавляет cin: sum=a^b^cin, cout=(a&b) OR (a&cin) OR (b&cin). Перенос равен 1, когда единиц не меньше двух.
assign sum = a ^ b ^ cin;
assign cout = (a & b) | (a & cin) | (b & cin);Измените входы
Связь соседних разрядов
cout разряда 0 становится cin разряда 1. Для суммы двух N-битных входов с последним переносом нужен N+1 бит. Явно расширьте входы: {1'b0,a}+{1'b0,b}. Последовательный перенос имеет физическую задержку; арифметическое выражение не проверяет быстродействие.
Попробуйте сами
Найдите sum и cout при a=1,b=0,cin=1.
Прочитать объяснение
Сумма 2, то есть 10: sum=0, cout=1.
✓ Изучено