В предыдущем руководстве по схеме Half Subtractor Circuit мы видели, как компьютер использует одноразрядные двоичные числа 0 и 1 для вычитания и создает бит различия и заимствования. Сегодня мы узнаем о построении схемы полного вычитания.
Полная схема вычитателя
Схема полувычитателя имеет серьезный недостаток; у нас нет возможности предоставить бит заимствования для вычитания в Half-Subtractor. В случае построения полного вычитателя мы можем фактически сделать заимствование на входе в схеме и вычесть его с двумя другими входами A и B. Итак, в случае схемы полного вычитания у нас есть три входа, A, который является уменьшенным, B который является вычитанием и заимствованием. С другой стороны, мы получаем два финальных результата: Diff (Разница) и Borrow out.
Мы используем две схемы половинного вычитателя с дополнительным добавлением логического элемента ИЛИ и получаем полную схему полного вычитания, такую же, как и схему полного сумматора, которую мы видели ранее.
Посмотрим на блок-схему,
На изображении выше вместо блок-схемы показаны фактические символы. В предыдущем учебном пособии по полувычитателю мы видели таблицу истинности двух логических вентилей, которая имеет два варианта ввода: вентили XOR и NAND. Здесь в схему добавляется дополнительный вентиль, ИЛИ вентиль. Эта схема очень похожа на схему полного сумматора без логического элемента НЕ.
Таблица истинности полной схемы вычитания
Поскольку схема полного вычитания имеет дело с тремя входами, таблица истинности также обновляется с тремя входными столбцами и двумя выходными столбцами.
Заимствовать | Вход А | Вход B | DIFF | Заимствовать |
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Мы также можем выразить всю конструкцию схемы вычитателя в логическом выражении.
В случае DIFF мы сначала выполняем XOR для входных данных A и B, а затем снова выполняем XOR для вывода с помощью Borrow in . Итак, Diff - это (A XOR B) XOR Borrow in. Мы также можем выразить это с помощью:
(A ⊕ B) ⊕ Взять в долг.
Что касается заимствования, это:
который может быть дополнительно представлен
Каскадные схемы вычитания
На данный момент мы описали построение однобитовой схемы полного вычитания с логическими вентилями. Но что, если мы хотим вычесть два, более чем одно битовое число?
Вот преимущество полной схемы вычитателя. Мы можем каскадировать одноразрядные полные схемы вычитания и вычитать два многобитовых двоичных числа.
В таких случаях можно использовать каскадную схему полного сумматора с вентилями НЕ. Мы могли бы использовать метод дополнения 2, и это популярный метод преобразования полной схемы сумматора в полный вычитатель. В таком случае мы обычно инвертируем логику вычитания входов полного сумматора с помощью инвертора или элемента НЕ. Добавляя этот неинвертированный вход (Minuend) и Inverted Input (Subtrahend), в то время как вход переноса (LSB) полной схемы сумматора находится в высоком логическом уровне или в 1, мы вычитаем эти два двоичных числа в методе дополнения до 2. Выходом из полного сумматора (который теперь является полным вычитателем) является бит Diff, и если мы инвертируем перенос, мы получим бит заимствования или MSB. Мы действительно можем построить схему и наблюдать за выходом.
Практическая демонстрация полной схемы вычитания
Мы будем использовать логическую микросхему 74LS283N с полным сумматором, а НЕ IC 74LS04. Используемые компоненты-
- DIP-переключатели 4pin 2 шт.
- 4 красных светодиода
- 1 шт. Зеленый светодиод
- 8шт резисторы 4.7k
- 74LS283N
- 74LS04
- 13 шт. Резисторов 1 кОм
- Макетная плата
- Соединительные провода
- Адаптер 5V
На изображении выше 74LS283N показан слева, а 74LS04 - справа. 74LS283N - это 4-битный TTL-чип полного вычитания с функцией прогнозирования переноса. 74LS04 - это ИС НЕ ворот, у нее внутри шесть ворот НЕ. Мы воспользуемся пятью из них.
Схема выводов показана на схеме.
Принципиальная схема для использования этих ИС в качестве схемы полного вычитания.
- Схема выводов IC 74LS283N и 74LS04 также показана на схеме. Контакты 16 и 8 - это VCC и земля соответственно,
- 4 вентили инвертора или вентили НЕ подключены к контактам 5, 3, 14 и 12. Эти контакты являются первым 4-битным числом (P), где контакт 5 - старший разряд, а вывод 12 - младший бит.
- С другой стороны, выводы 6, 2, 15, 11 - это второе 4-битное число, где вывод 6 - это старший разряд, а вывод 11 - младший бит.
- Контакты 4, 1, 13 и 10 - это выход DIFF. Контакт 4 - это старший бит, а контакт 10 - это младший бит, когда нет заимствования.
- SW1 вычитается, а SW2 - вычитается. Мы подключили контакт Carry in (контакт 7) к 5 В, чтобы сделать его высоким логическим. Это необходимо для дополнения 2.
- Во всех входных контактах используются резисторы 1 кОм, чтобы обеспечить логический 0, когда DIP-переключатель находится в состоянии ВЫКЛ. Благодаря резистору мы можем легко переключаться с логической 1 (двоичный бит 1) на логический 0 (двоичный бит 0). Мы используем источник питания 5 В.
- Когда DIP-переключатели включены, входные контакты закорачиваются на 5 В, что делает эти DIP-переключатели логическим высоким; мы использовали красные светодиоды для отображения битов DIFF и зеленые светодиоды для битов заимствования.
- Резистор R12, используемый для подтягивания, поскольку 74LS04 не может обеспечить достаточный ток для питания светодиода. Кроме того, контакты 7 и 14 соответственно являются заземлением и контактом 5V 74LS04. Нам также необходимо преобразовать бит заимствования, исходящий от полного сумматора 74LS283N.
Посмотрите демонстрационное видео для дальнейшего понимания ниже, где мы показали вычитание двух 4-битных двоичных чисел.
Также проверьте нашу предыдущую комбинационную логическую схему:
- Схема половинного сумматора
- Полная схема сумматора
- Схема половинного вычитателя