Двоично-десятичный сумматор-вычитатель для систем автоматического контроля

ИЗВЕСТИЯ

ТОМСКОГО ОРДЕНА ОКТЯБРЬСКОЙ РЕВОЛЮЦИИ И ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО ИНСТИТУТА им. С. М. КИРОВА

Том 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),

где

К — сигнал коррекции;

^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з