СХЕМОТЕХНИКА ЭВМ_18.2.17 (855859), страница 25
Текст из файла (страница 25)
Каждое десятичное число кодируется четырьмя разрядами двоичного кода. Поэтому за основу двоично-десятичных сумматоров принимаются обычные четырехразрядные двоичные сумматоры, по одному на каждый десятичный разряд.
При сложении четырехразрядных кодов десятичных цифр возможна ситуация, когда сумма двух цифр больше девяти. В этом случае необходимо провести коррекцию и правильно сформировать перенос в старший разряд.
В следующей таблице представлены двоичные и двоично-десятичные коды чисел. Тетрада 1 соответствует старшему десятичному разряду числа, тетрада 2 – младшему.
Таблица 7.3 – Двоично – десятичная арифметика
N дес | Двоичный код | Тетрада 1 | Тетрада 2 | ||||||||||||||
a4 | a3 | a2 | a1 | a0 | b3 | b2 | b1 | b0 | P2 | c3 | c2 | c1 | c0 | ||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ≤ N ≤ 9 Коррекция не требуется | ||
1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | |||
2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | |||
… | … | … | … | … | … | … | … | … | … | … | … | … | … | ||||
9 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | |||
10 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 10 ≤ N ≤ 15 Коррекция: вычесть 10 и перенос | ||
11 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | |||
… | … | … | … | … | … | … | … | … | 0 | … | … | … | … | ||||
14 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | |||
15 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | |||
16 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 16 ≤ N ≤ 19 Коррекция: прибавить 6 и перенос | ||
17 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | |||
18 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | |||
19 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 |
Для первых девяти чисел двоичный код числа соответствует коду в тетраде 2. Поэтому коррекция не требуется.
Для группы чисел в диапазоне 10 ≤ N ≤ 15 из двоичного кода числа необходимо вычесть 10 и сформировать перенос в старший десятичный разряд. Операция вычитания заменяется операцией прибавления числа 10 в дополнительном коде. Поэтому к числу, лежащему в этом диапазоне, необходимо прибавить число 610 = 01102 и сформировать перенос. [пример]
Для группы чисел в диапазоне 16 ≤ N ≤ 19 к двоичному коду числа необходимо прибавить число 610 = 01102 и сформировать перенос. [пример]
При реализации двоично-десятичной арифметики на стандартных сумматорах (рис. 7.10) следует учесть, что, начиная с числа N = 16, происходит перенос единицы в 5-й разряд (формируется P = 1 на выходе переноса сумматора). Поэтому логическую функцию коррекции необходимо формировать только для чисел, лежащих в диапазоне 10 ≤ N ≤ 15. Эта функция имеет следующий вид
Рис. 7.10. Одноразрядный двоично-десятичный сумматор
Одноразрядный двоично-десятичный сумматор выполнен на паре двоичных сумматоров типа КР***ИМ6. Первый сумматор DD1 формирует сумму кодов десятичных чисел X = x3, x2, x1, x0 и Y = y3, y2, y1, y0. В результате получается двоичный код суммы A = a4, a3, a2, a1, a0 (разряд a4 получается на выходе переноса Р).
Логическая функция коррекции F формируется логическими элементами DD2, DD3 и DD4. Если на выходе DD4 возникает F = 1, то вторые входы второго сумматора DD5 подается двоичное число 610 = 01102. Сигнал на выходе b0 является переносом в старший десятичный разряд. В результате на выходах DD5 появляется скорректированный код младшего разряда десятичного числа C = c3, c2, c1, c0.
Если F = 0, то на выход DD5 передается код с выходов DD1 без коррекции.
7.9. АЛУ для выполнения логических операций.
АЛУ для выполнения логических операций. Каждая логическая операция имеет свой код, после получения которого АЛУ настраивается на выполнение этой операции.
Запишем список основных логических операций:
Функциональная схема АЛУ представлена на следующем рисунке
Рис. 7.11. Функциональная схема АЛУ для выполнения логических операций
АЛУ содержит n блоков поразрядных логических операций. На вход каждого блока подается соответствующие разряды двух входных операндов X и Y. На управляющие входы АЛУ подается вектор Е, выбирающий одну из логических операций, выполняемых над операндами X и Y. Результат вычислений поступает на выход АЛУ Z.
Схема поразрядного блока логических операций, выполняющего перечисленные логические операции, показана на следующем рисунке
Рис. 7.12. Схема поразрядного блока логических операций
На входы X и Y подаются одинаковые разряды входных операндов. Вид выполняемой над ними логической операции выбирается путем подачи лог. 1 на соответствующий вход Fi. Результат логической операции появляется на выходе Z.
7.10. Микросхемы АЛУ
Промышленность выпускает несколько типов АЛУ в различных сериях микросхем средней степени интеграции. Рассмотрим микросхему АЛУ типа КР****ИП3(зарубежный аналог LS181).
Рис. 7.13. Условное графическое обозначение АЛУ ИП3
Микросхема ИП3 предназначена для действий с двумя четырехразрядными словами A=A3A2A1A0 и В=В3В2В1В0.
Конкретный вид операции, выполняемой микросхемой, задается 5-разрядным кодом на входах MS3S2S1S0. Всего это АЛУ способно выполнить 32 операции(25=32):
-
16 логических (И, И-НЕ, ИЛИ, ИЛИ-НЕ, исключающее ИЛИ и др.) при М=1;
-
16 арифметико-логических (сложение, вычитание, удвоение, сравнение чисел и ряд иных) при М=0.
При выполнении логических операций внутренние переносы запрещаются.
Операции сложения и вычитания проводятся с ускоренным переносом из разряда в разряд. Кроме того, имеется вход приема сигнала переноса Сn.
На выходах F3,F2,F2 и F0 формируются результаты логических преобразований и арифметических действий. На выходе переноса Сn+4 образуется сигнал старшего (пятого) разряда при выполнении арифметических операций.