ИЗВЕСТИЯ
ТОМСКОГО ОРДЕНА ОКТЯБРЬСКОЙ РЕВОЛЮЦИИ И ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО ИНСТИТУТА им. С. М. КИРОВА
Том 246 1974
ДВОИЧНО-ДЕСЯТИЧНЫЙ СУММАТОР-ВЫЧИТАТЕЛЬ ДЛЯ СИСТЕМ АВТОМАТИЧЕСКОГО КОНТРОЛЯ
Н. П. БАЙДА, Е. Б. ХИЛАЖЕВ
(Представлена кафедрой вычислительной техники)
В современных системах автоматического контроля (САК) все более широкое применение находят специализированные вычислительные устройства (СБУ), позволяющие оптимизировать процесс контроля, производить самоконтроль САК и определять будущее состояние контролируемого объекта [1^3]. Обычно такие СБУ работают в коде 8421 и содержат в качестве основного арифметического узла двоично-десятичный сумматор. При этом для выполнения операций десятичного вычитания и деления необходимо получить дополнительный код вычитаемого.
Однако операция получения дополнения в коде 8421 не сводится к простому инвертированию прямого кода вычитаемого с добавлением единицы в младшем разряде как в двоичном коде, а является более сложной. Для преобразования прямого десятичного кода 8421 в дополнительный нужно каждую десятичную цифру заменить ее дополнением до девяти и прибавить в младшем разряде единицу. Время получения дополнения в коде 8421 при последовательной работе арифметического устройства (АУ) равно времени сложения двух чисел, причем сумму при сложении дополнительных десятичных кодов необходимо корректировать как и при сложении прямых кодов. В результате при десятичном вычитании в известных СВУ нужна дополнительная операция получения дополнения, которая удлиняет цикл вычитания в два раза и уменьшает быстродействие АУ. Операцию получения дополнения можно исключить, если применить в СВУ в качестве основного арифметического узла двоично-десятичный сумматор-вычитатель, функциональная схема которого приведена на рис. 1.
Двоично-десятичный сумматор-вычитатель (ДСВ) содержит комбинационный двоичный сумматор-вычитатель 1 для образования первоначальной нескорректированной суммы (разности), линии задержки 2, 3 для задержки информации на один такт, сдвиговый регистр 4 на четыре двоичных разряда, который используется в качестве линии задержки для улавливания момента начала коррекции, дешифратор 5 для формирования сигнала необходимости коррекции, триггер 6, запоминающий сигнал необходимости коррекции, схемы совпадения 7—10, которые служат для стробирования сигналов, схему «ИЛИ» и комбинационный двоичный сумматор-вычислитель 12, идентичный сумматору-вычитателю 1 и служащий для коррекции первоначальной суммы (разности).
4. Известия ТПП, т. 246.
49
Для работы ДСВ необходимы синхронизирующие импульсы (такты) Си С2, С3, С4 (рис. 2), совпадающие с четвертым, третьим, вторым и первым разрядами тетрады соответственно, и управляющие импульсы И! и И2.
4
в
Рис. 1. Функциональная схема двончно-десятич-
ного сумматора-вычитателя: 1, 12 — комбинационные двоичные сумматоры-вычитатели; 2, 3 — линии задержки; 4 — сдвиговый регистр; 5 — дешифратор; 6 — триггер; 7—10 — схемы совпадения
На схему поступают числа А я В в коде 8421, последовательно, младшими разрядами вперед, сигнал «режим работы» (при сложении Я=\, при вычитании Л = 0), синхронизирующие и управляющие
импульсы. На входе ДСВ
е<
Сз С,« И/
и*
тг
ТГ
получается сум'ма (разность) 1V = А ± В в коде 8421.
При сложении (вычитании) чисел в коде 8421 возникает необходимость коррекции первоначальной суммы (разности). При последовательной работе устрой-
Рис. 2. Основные временные соотношения работы ства "суммы, большие девяти, ДСВ. должны быть представлены
в виде одного переноса десятка в старший разряд и остатка в двоично-десятичном коде. Все возможные случаи двоичных сумм, больших девяти, и их требуемые представления собраны в таблице.
Если состояние триггеров в двоичных разрядах характеризовать символами Хг (¿=1, 2, ...5), то в терминах алгебры Буля условие необходимости исправления результата может быть записано в виде
К=Х5 + Х,(Х, + Х2),
(1)
где
К — сигнал коррекции;
^5 —двоичный перенос в старшую тетраду при сложении или заем из старшей тетрады при вычитании.
В предлагаемом устройстве коррекция осуществляется путем прибавления кода 0110 к первоначальной сумме при сложении или 50
путем вычитания кода ОНО из первоначальной разности при вычитании на втором двоичном сумматоре-вычитателе.
Работа комбинационного двоичного сумматора-вычитателя описана в [14]. На входы 13 и 14 двоичного сумматора-вычитателя 1 поступают числа А и В в коде 8421 младшими разрядами вперед и на
Таблица 1
Исправление промежуточных сумм
Промежуточный результат
Исправленный результат
X, А, Аз
10 0 1 0 1 0 | 1 0 0 0 0
11 0 1 0 1 1 \ 0 0 0 1
12 0 1 1 0 0 1 0 0 1 0
13 0 1 1 0 1 1 0 0 1 1
14 0 1 1 1 0 1 0 1 0 0
15 0 1 1 1 1 1 0 1 0 1
16 1 0 0 0 0 1 0 1 1 0
17 1 0 0 0 1 1 0 1 1 1
18 1 0 0 1 0 1 1 0 0 0
19 1 0 0 1 1 1 0 0 1
вход 15, сигнал «режим работы» Я. На выходе сумматора-вычитателя / образуется двоичная сумма (разность) по формуле
— I (акЬк + акЪк) + (акьк + а«
где й7*- —двоичный разряд суммы (разности); ак и Ьк — двоичные разряды чисел А я В соответственно;
1 — перенос из предыдущего двоичного разряда при сложении или заем в предыдущий двоичный разряд при вычитании.
Сигнал переноса в старший двоичный разряд при сложении или заем из старшего двоичного разряда при вычитании образуется по формуле
Рк, = И [ак ьк + {ак + ьк) рк-1] + Я [ак Ьк + (ак Ьк + Ьк) Рк-\]> (3) где
Я = 1 при сложении, = 0 при вычитании.
Сигнал двоичного переноса (заема) Р / через линию задержки 2 и схему собирания поступает на вход 16 двоичного сумматора-вычи-тателя 1 для суммирования со следующим двоичным разрядом в соответствии с формулой (2) и на дешифратор 5 для формирования сигнала коррекции. Нескорректированная двоичная сумма (разность) № поступает с выхода сумматора-вычитателя 1 через сдвигающий регистр 4 на вход 13 сумматора-вычитателя 12, для алгебраического суммирования с корректирующим кодом ОНО.
С выходов триггеров сдвигового регистра 4 сигналы подаются на дешифратор 5, который формирует сигнал необходимости коррекции К по формуле (1). Сигнал необходимости коррекции К через схему сов-
4*. 51
падения 8, стробируемого управляющим импульсом И2, устанавливает триггер 6 в «1», и одновременно сигнал К через схему совпадения 7, стробируемую импульсом Я2, и схему «ИЛИ» подается на вход сумматора-вычитателя осуществляя десятичный перенос в старшую тетраду. Через схему совпадения 9, подготовленную по одному входу сигналом с единичного выхода триггера 6, на вход 14 сумматора-вычи-тателя 12 приходят синхронизирующие импульсы С2 + С3, совпадающие с третьим и вторым разрядом тетрады соответственно. Управляющим импульсом И1 триггер 6 сбрасывается и при отсутствии сигнала К такты С2 + С3 не пройдут через схему совпадения 9 на вход 14 сумматора-вычитателя 12. Таким путем формируется корректирующий код 0110.
Двоичный сумматор-вычитатель 12 осуществляет коррекцию первоначальной суммы (разности) V?, поступающей на его вход со сдвигового регистра 4. При сложении происходит добавление к первоначальной сумме кода 0110, а при вычитании — вычитание из первоначальной разности кода 0110. Работа сумматора-вычитателя 12 аналогична работе сумматора-вычитателя 1. Двоичный перенос (заем) Р, задержанный на один такт линией задержки 3, добавляется к следующему двоичному разряду тетрады. Десятичный перенос между тетрадами при добавлении кода 0110 запрещается схемой совпадения 10. На выходе сумматора-вычитателя 12 образуется правильная сумма (разность) в коде 8421.
Так как для коррекции при вычитании и сложении в ДСВ используется один корректирующий код, то ДСВ сложнее двоично-десятичного сумматора только за счет добавления оборудования для реализации логики заема при вычитании. Но исключение операции получения дополнения при десятичном вычитании позволяет значительно упростить схему управления АУ.
Поэтому применение двоично-десятичного сумматора-вычитателя в качестве основного арифметического узла в системах автоматического контроля позволяет увеличить скорость выполнения операций десятичного вычитания и деления при одновременном уменьшении объема используемого оборудования.
ЛИТЕРАТУРА
1. В. В. Сомик, Н. Г. Коньков. Автомат проверяет самолет и ракету. М., Воениздат, 1967.
2. М. Д. Лебедев. Состояние и развитие автоматических систем контроля. М., «Энергия», 1968.
3. «Электроника» (пер. с англ.), № 18, т. 40, 1967.
4. Авторское свидетельство, № 174 438, кл. 42т; 140з