Преобразователь двоичного кода в двоично-десятичный и обратно
Иллюстрации
Показать всеРеферат
(,?08344
Союз Советсккк
Социалистических республик
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (61) Дополнительное к авт. свид-ву (22) Заявлено 10.04.75 (21) 2123823/18-24 с прнсоеднненнем заявки J% (5%)М. Кл.
G 06 F 5/02
Гасударственный комитет
СССР ав аааам изобретений н открытий (23) Приоритет
Опубликовано 05.01.80. Бюллетень М 1
Дата опубликования описания 07.01.80 (53) УДК 681.325 (088.8 ) (72) Авторы изобретения
А. A. Левин и Б. И. Песчанский (71) Заяв л аявнтель
Ордена Трудового Красного Знамени экспериментальный научноисследовательский институт металлорежущих станков (54) ПРЕОБРАЗОВАТЕЛЬ ДВОИЧНОГО КОДА В ДВОИЧНОДЕСЯТИЧНЫЙ И ОБРАТНО
Изобретение касается автоматики и цифровой вычислительной техники и может быть использовано в вычислительных машинах, системах автоматизации и в устройствах числового программного управ5 лени я.
Известен преобразователь двоичного кода в двоично-десятичный, содержащий сдвиговый регистр, одноразродный сумматор, первый и второй блоки двоичных эквивалентов, блок умножения, схему сравнения и выходной регистр (1).
Недостатком этого устройства -является его относительно большая сложность, связанная с одновременным формировани IS ем десяти двоичных эквивалентов и определением ближайшего двоичного эквивалента.
Наиболее близким по технической сущности к предложенному является универсальный преобразователь, содержащий ключ приема двоичного числа, сдвиговый регистр, элемент ИЛИ, коммутатор слагаемого, одноразрядный сумматор, триггер переполнения, блок хранения двоичных эквивалентов, регистр двоично-десятичного числа, выходной регистр и счетчик десятичных разрядов, выходы которого соединены с входами регистра двоично-десятичного числа и блока хранения двоичныхэквивалентов, выходы элемента ИЛИ и коммутатора слагаемого соединены с первым и вторым входами одноразрядного сумматора соответственно, информационный выход одноразрядного сумматора, соединен с входом сдвигового регистра, выход которого соединен с первым входом элемента ИЛИ, второй вход которого соединен с выходом. ключа приема двоичного числа, выход переполнения одноразрядного сумматора соединен с входом триггера переполнения, первый вход ключа приема двоичного числа соединен с выходом первого разряда счетчика десятичных разрядов. Кроме того устройство содержит счетчик результата, блок управления и блок индикации (.2
Недостатком этого преобразователя является относительно низкое быстродейст3 7083 вие, связянное с последовательным определением значения двоично-десятичного резряда, дпя чего может понадобиться девять операций вычитяиия многоразрядных чисел.
Цель изобретения — повышение быстродействия работы преобразователей.
Это достигяется тем, что предложенный преобразователь допопш1тепьно содержит блок умножения, счетчик тактов, сдвиго- 10 вую тетраду и коммутатор двоична-десятичных разрядов, первая группа входов которого соединена с выходами регистра двоично-десятичного числа, вторая группа входов - с выходами счетчике тактов и первой группой входов блока умножения, в выход - с первым входом коммутатора слагаемого, второй вход которого соединен с выходом блока умножения, в третий вход — с выходом триггера переполнения и входом сдвиговой тетрвдьь Второй вход блока умножения соединен с выходом блока хранения двоичных эквивалентов. Выход переполнения счетчике тактов соединен с входом счетчика десятичных разрядов, управляющим входом выходного регистра и с вторым входом блоке прие« ма двоичного числе, выходы сдвиговой тетрвды соединены с информационными входами выходного регистра.
На чертеже изображена структурная схема предложенного преобразователя.
Преобразователь содержит ключ 1 приема, двончных чисел, сдвиговый регистр
2, элемент 3 ИЛИ, одноразрядный сумматор 4, который имеет три входе, два слагаемых и перенос (не показан), триггер
5 переполнения, блок 6 хранения двоич 40 ных эквивалентов, который формирует дво- О ичные числа соответствующие значениям десятичных разрядов от 101 1 до 10, где 1 — число разрядов десятичного числе, блок 7 умножения, коммутатор 8 слагаемого, счетчик 9 десятичных разрядов> 4 счетчик 10 тактов, сдвиговую тетраду 11, коммутатор 12 двоично-десятичных разрядов, регистр 13 двоично-десятичного числа, выходной регистр 14. Коммутатор 12 состоит, например, из четырех элементов
И 15 и элемента ИЛИ 16.
Устройство работает следующим образом.
Рассмотрим сначала работу устройства в режиме прямого кодопреобразования
55 последовательного двоичного кода в параллельный двоично-десятичный код "8421".
Во внешних регистрах числе представлены
44 4 в дополнительном коде. В преобразователь вводится модуль числа А, знак которого определяется отдельным блоком и нв работу преобразователя не влияет. Ввод числа производится в начальный момент, который фиксируется переполнением в счетчике тактов 10 и начальным состоянием в счетчике десятичных разрядов 9. Через элемент 3 ИЛИ в такте ввода исходное двоичное число поступает на вход одноразрядного сумматора 4. После завершения вводя во всех дальнейших тактах преобразования нв вход сумматоре 4 через элемент 3 ИЛИ поступают числа с выхода сдвигового регистра 2. Преобразование производится последовательно, начиная с цифр стершего разряде. B такте ввода одновременно осуществляется алгебрическое вычитание из вводимого числа двоичнодесятичного эквивалента десятичного разряда 10 . Для получения соответствую2 щих двоично-десятичных эквивалентов производятся сдвиги влево (так кек числе в регистре 2 идут младшими разрядами вперед) двоичных чисел 10 . Каждый из сдвигов фиксируется счетчиком 10 тактов, который управляет разрядными сдвигами в блоке 7 умножения. При начальном состоянии счетчика 10 блок 7 умножения реализует сдвиг на три разряда, что соответствует умножению на 8, Таким обре» зом,при вводе от модуля числа А вычитается число 10 2 (дпя шестиразрядно1Л го числа это составляет А-800000). Результат вычитания после окончания начального такта ввода записывается в регистр
2. Здесь и далее промежуточные значения чисел в регистре 2 обозначаются с индексом десятичного разряда и номера такта, Ь 1-1 следующим образом А-2 ° 10 =An., где — номер такта.
Одновременно с определением числового значения разности в конце l- .о такта происходит определение знака разности
A О. Если А >Ото подается соответ2 с 2 ствующий сигнал выхода триггера 5 нв вход коммутатора слагаемого 8, s в сдвиговую тетраду 11 записывается единица. если жеА1<0 ???? ?????????????????????????? ???????? ???????????????? ?????????????????????? ???? ???????????? ???????????????????? ?????????? 8, ?? ?????????????????? ?????????????? ???????????????????? 0 . ???? ?????????? ?????? ?????????????? „> О происходит следующее вычитание от результата хранящегося в регистре 2
А Я =А
2 (дпя шестиразряднот о числа это состев708344 ляет Л вЂ” 400000). В случае А, (Q во
Раз- Осно втором такте происходит суммирование
2 «-» 2 ряд i вани д .z
10Двоичный эквивалент
»o" "
Последнее действие выполняемое экви- s валентно (двум операциям) BoccTaHoBlla» нию первоначального числа А и последую» щему вычитанию величины 2 ° 10 По результатам определения знака в конце второго такта в сдвиговой тетраде 11 про- исходит продвижение «1" (при А» 0 ) либо "О (при А» (0 ). В третьем такте при условии A ф() производится действие
2 (обеспечиваемое сдвигом на один бит в блоке 7 умножения 7 )
a,-z" о =А,, либо (при A 2 «0
I I
A +|. о»»= А
2 го
Последнее действие также эквивалентно двум операциям - восстановлению первоАi начального значения числа А и последующему вычитанию 2 10 . B конце
»-» третьего такта при A >iO в сдвиговой тетраде 11 происходит продвижение "1, а в случае А> (О - ".0 . B триггере фик» сируется знак числа,А . В четвертом такте при условии А О выполняется
» действие
4» — ЬО, 10 » А»
3 ф у ! либо (при А Й О)
А» + о, or- A»
4.
В конце четвертого такта, в зависимости от знака А, в сдвиговой тетраде 11 продвигается "1" или «О». После окончания 4 х тактов завершается дешифрация цифры в старшем десятичном разряде числа A. B тетраде 11 получено значение его старшего разряда в соответствии с двоично-десятичным кодом "8421". По сигналу переполнения счетчика 10 тактов подается импульс на управляющий вход выходного регистра 14 (для переписи состояния сдвиговой тетрады 11) и на счетный вход счетчика 9 (для получения значении (».-l, разряда). С этого момента начина1
-"т - > дешифрация (L-1 )-ого десятичного разряда. С выхода блока 6 двоичных эквизалентов на вход блока 7 умножения поступает двоичный эквивалент десятичного разряда 10
Вычисления очередного разряда осуществляются в точном соответствии с описанным выше алгоритмом. Значения величин двоичных эквивалентов десятичных разрядов определяются по следующей таблице. »
6 10 1.1000.0110.1010.0000
10.0111.0001.0000
5 10
4 10
3 10
2 10 а
l 10
11. 1110. 1000
110.0100
1010
На дешифрацию каждой цифры двоичнодесятичного разряда числа А расходуется время равное четырем тактам. После завершения дешифрации по всем разрядам в разряде единиц выполняется операция вычитания единицы с продвижением - 1" либо «О" в тетраде 11. После последней операции, независимо от того, что в регистре 2 может быть число равное -1", либо "О, по сигналам счетчиков 9 и 10:. осуществляется повторный ввод модуля числа A в сумматор через ключ 1 приема двоичных чисел и элемент 3 ИЛИ. При вводе разрывается соединение с входом сумматора, что эквивалентно очищению сдвигового регистра 2 от предыдущего числа. Одновременно при вводе выполняется начальная операция
Д- Д"=А"
Далее повторяется весь цикл прямого кодопреобразования. B случае шестиразряд»ого числа цикл длится 24 такта.
Рассмотрим работу устройства в режиме обратного преобразования параллельного двоично-десятичного кода в последовательный двоичный код.
Преобразование это выполняется по отдельной команде, разрешающей обратное и запрещающей прямое преобразование. Сдвиговый регистр 2 устанавливается в "О". На чертеже указанная установочная коммутация не показана. цикл преобразовании начинается со старшего десятичного разряда и максимального сдвига на три разряда, что обеспечивается начальным положениями счетчиков 9 и 10. Все выходы регистра 13 двоично-десятичного числа подключены при этом на входы коммутатора 12 (на входы 4-х элементов
И 15). На вторые входы коммутатора 12. 7083 (на входы элементов И 15) последова« тельно подаются единичные выходы разрядов счетчика тактов. Выходы всех элементов И 15 через элемент ИЛИ 16 управляют работой коммутатора 8 слагаемого, разрешая либо запрещая прохождение соответствующих значений двоичных эквивалентов на сумматор 4. Если в очередном такте, например начальном, когда в блоке умножения 7 реализуется сдвиг на три разряда, а на выходе коммутатора 12 имеется единичный сигнал, то на вход
41 сумматора проходит число 2 IO c выхода сумматора 4, которое накапливается в регистре 2. Если же с элемента ИЛИ 1
16 поступает нулевой сигнал, то коммутатор 8 не пропускает двоичный эквивалент числа 2 ° 101 1 нв вход сумматора 4.
Цикл обратного преобразования так же выполняется за 4 такта. Поступающее с регистра 13 число А о) в двоично-десятичном коде накапливается в регистре 2 в двоичном коде Ад) По завершении цикла преобразования результат с выхода сумматора 4 передается в выходной регистр.
С выходного регистра число Ag) при необходимости передается на вход ключа 1 приема для выполнения прямого преобразования.
Предложенный преобразователь требует четырех, тактов для получения одного двоичио-десятичного разряда. При преобразовании шестиразрядных десятичных чисел предложенное устройство работает в три
pasa быстрее (24 такта вместо 72) чем известный преобразователь (прототип).
Формула и зобретения
Преобразователь двоичного кода в двоично-десятичный и обратно, содержащий ключ приема двоичного числа, сдвиговый регистр, элемент ИЛИ, коммутатор спа-. гаемого, одноразрядный сумматор, триг45 гер переполнения, блок хранения двоичных эквивалентов, регистр двоично-десятичного числа, выходной регистр и счетчик десятичных разрядов, выходы которого сое44 8 динены с входами регистра двоично-десятичного числа и блока хранения двоичных эквивалентов, выходы элемента ИЛИ и
I коммутатора слагаемого соединены с ïåðвым и вторым входами одноразрядного сумматора соответственно, информационный выход одноразрядного сумматора соединен с входом сдвигового регистра, выход которого соединен с первым входом элемента ИЛИ, второй вход которого соединен „, с выходом ключа приема двоичного числа, выход переполнения одноразрядного сумматора соединен с входом триггера переполнения, первый вход ключа приема двоичного числе соединен с выходом первого разряда счетчика десятичных разрядов, о т л и ч а ю щ и йс я тем, что, с целью повышения быстродействия преобразователя, он дополнительно содержит блок умножения, счетчик тактов, сдвиговую тетраду и коммутатор двоично-десятичных разрядов, первая группа входов которого соединена с выходами регистра двоично-десятичного числа, вторая группа входов - с выходами счетчика тактов и первой группой входов блока умножения, а выход - с первым входом коммутатора слагаемого второй вход которого соединен с выходом блока умножения, а третий вход - с выходом триггера переполнения и входом сдвиговой тетрады, второй вход блока умножения соединен с выходом блоха хранения двоичных эхвивалентов, выход переполнения счетчика тактов соединен с входом счетчика десятичных разрядов, управляющим входом выходного регистра и с вторым входом блока приема двоичного числа, выходы сдвиговой тетрады соединены с информационными входами выходного регистра.
Источники информации, принятые во внимание при экспертизе
1. Авторское свидетельство СССР
М 473173, кл. Q 06 Р 5/02, 1973.
2. Песчвнский Б. И. и др. Устройства пифровой индикации перемещений в
ACID В сб. Агрегатное построение унифицированных систем программного упревления машинами. М., Наука, 1973.
70834 4
Составитель М. Аршавский
Редактор А. Шмелькин Техред 3. фанта Корректор Г. Решетник
Заказ 8489/44 Тираж 751 Подписное
ЦНИ! !ПИ Государственного комитета СССР по делам изобретений и открытий
113035, Москва, Ж-35, Раушская наб., д. 4/5
Филиал ППП Патент, r. Ужгород, ул, Проектная, 4