Следующая версия | Предыдущая версия |
products:positronic-digital:1bit_polusummator [2024/10/17 11:50] – создано labuser29 | products:positronic-digital:1bit_polusummator [2024/11/28 15:31] (текущий) – labuser29 |
---|
| ~~NOCACHE~~ |
<php> | <php> |
require($_SERVER["DOCUMENT_ROOT"] . "/interactive/interactive.php"); | require($_SERVER["DOCUMENT_ROOT"] . "/interactive/interactive.php"); |
| |
===== Однобитный полусумматор ===== | ===== Однобитный полусумматор ===== |
Соберем первое устройство, которое способно выполнять арифметическую операцию — сложение. Для простоты это будет устройство способное сложить два однобитных числа. Ранее мы рассмотрели логику работы с двоичными числами. Попробуем вспомнить рассмотренные ранее логические элементы и подумать какой же из них наиболее похож на сумматор? Правильно — это «ИСКЛЮЧАЮЩЕЕ-ИЛИ». Вспомним его таблицу истинности: | Соберем первое устройство, которое способно выполнять арифметическую операцию — сложение. Для простоты это будет устройство, способное сложить два однобитных числа. Ранее мы рассмотрели логику работы с двоичными числами. Попробуем вспомнить рассмотренные ранее логические элементы и подумать, какой же из них наиболее похож на сумматор? Правильно — это «ИСКЛЮЧАЮЩЕЕ-ИЛИ». Вспомним его таблицу истинности: |
| |
| |
Таблица истинности элемента Исключающее ИЛИ | Таблица истинности элемента Исключающее ИЛИ |
Как видно из таблицы истинности, он складывает два бита и выдает на выход результат сложения. Действительно: | Как видно из таблицы истинности, он складывает два бита и выдает на выход результат сложения. Действительно: |
| |
0 + 0 = 0 | |0 + 0 = 0| |
0 + 1 = 1 | |0 + 1 = 1 | |
1 + 0 = 1 | |1 + 0 = 1| |
1 + 1 = 10. | |1 + 1 = 10| |
| |
| Но так как у нас элемент имеет один выход, показывающий состояние младшего разряда, то у него на выходе 0, как в младшем разряде числа 10. Получается, что Исключающее ИЛИ и есть элемент для сложения однобитных чисел, но если использовать только его, то у нас нет никаких данных о переполнении разряда. Поэтому, чтобы получить полусумматор осталось только дополнить этот элемент сигналом переполнения (переноса). Его легко получить, если добавить элемент «И». |
| |
| ===Принципиальная схема=== |
| <php>pinlab_draw_picture("polusummator");</php> |
| |
| |
| ===Таблица компонентов=== |
| <php>pinlab_bom("polusummator.mont");</php> |
| |
| ===Монтажная схема=== |
| <php>pinlab_draw_instruction("polusummator.mont");</php> |
| |
| Двумя левыми переключателями задаются числа для сложения. Желтый светодиод отображает сумму, красный сигнализирует о переполнении. |
| |
| |
Но так как у нас элемент имеет один выход, показывающий состояние младшего разряда, то у него на выходе 0, как в младшем разряде числа 10. Осталось только дополнить наше устройство сигналом переполнения (переноса). Его легко получить если добавить элемент «И». | Мы собрали схему, которая суммирует два однобитных числа. Почему же она называется полусумматор, когда она отображает сумму и даже перенос? А все потому, что она не умеет оперировать с сигналом переноса из другого, младшего разряда. Дело в том, что полным сумматором называется устройство, которое умеет обрабатывать входной сигнал переноса от предыдущего младшего бита. |
| |
| Полные сумматоры можно объединять для увеличения разрядности оперируемых чисел. Каждый каскад сумматора складывает свои биты и бит переноса из предыдущего разряда, а также передает сигнал переноса на следующий каскад. |