Устройство преобразования из десятичной системы счисления в двоичную

Устройство относится к области вычислительной техники и может быть использовано в процессорах, где предусмотрена аппаратная реализация преобразований из одной системы счисления в другую. Техническим результатом является сокращение в 2 раза времени преобразования. Указанный результат достигается за счет введения в устройство, содержащее регистры десятичного и двоичного числа, двоичный сумматор и счетчик тактов, двоичного вычитающего устройства, преобразователя кода и мультиплексора байтов. 2 ил., 1 табл.

 

Предлагаемое изобретение относится к области вычислительной техники и может быть использовано в процессорах, где предусмотрена аппаратная реализация преобразований из одной системы счисления в другую.

Известны устройства преобразования из десятичного двоично-кодированного представления (BCD-код) в двоичный код, основанные на последовательном делении десятичного числа на 2. Цифры двоичного кода формируются, начиная с младшей, как остатки от этого деления.

Устройство преобразования содержит регистры десятичного и двоичного чисел с общей цепью сдвига вправо на 1 бит и схему коррекции, вход которой соединен с выходом десятичного регистра, а выход подключен к входу этого регистра, а также счетчик тактов по числу разрядов двоичного числа. Преобразование происходит по схеме “сдвиг-коррекция”: на каждом шаге преобразования осуществляется сдвиг регистров вправо, а затем коррекция кода в регистре десятичного числа с целью получения корректного значения частного от деления на 2.

Недостатком описанного устройства является низкая производительность, так как преобразование выполняется за n тактов сдвига и коррекции, где n - разрядность двоичного кода [1, 2].

Другой способ преобразования десятичного числа N=DkDk-1...Di...D2D1, где k - число десятичных разрядов, Di - i-я десятичная цифра, состоит в использовании рекуррентной формулы

При выполнении по формуле (1) в двоичной системе получаем двоичное значение N. При этом умножение двоичного числа на 10 заменяется сложением числа, сдвинутого на 3 бита влево (умножение на 8) с этим же числом, сдвинутым на 1 бит влево (умножение на 2).

Устройство преобразования (фигура 1) содержит регистры двоичного (1) и десятичного (2) чисел, мультиплексор тетрад десятичного числа (4), первый двоичный сумматор (3), второй двоичный сумматор (5) и счетчик тактов (6) по числу десятичных разрядов k.

Выход регистра двоичного числа соединен с входами двоичного сумматора 3, причем к первому входу он подключен со сдвигом на 3 бита влево, а ко второму входу - со сдвигом на 1 бит влево. Выход двоичного сумматора 3 подключен к первому входу двоичного сумматора 5, ко второму входу которого подключены выходы тетрад десятичного регистра 2 через мультиплексор тетрад десятичного числа 4, управляющий вход которого подключен к выходу счетчика тактов 6, а выход второго двоичного сумматора 5 соединен с входом двоичного регистра 1.

В каждом цикле преобразования выполняются следующие действия:

1) на входы первого двоичного сумматора (3) поступает код из двоичного регистра со сдвигом влево на 3 и 1 бит соответственно (умножение на 10), результат поступает на первый вход второго двоичного сумматора (5);

2) на второй вход второго двоичного сумматора (5) подается код очередной тетрады из десятичного регистра, начиная со старшей, результат поступает в двоичный регистр (1).

Процедура повторяется k раз, где k - разрядность десятичного регистра.

Описанное устройство является прототипом предлагаемого технического решения.

Недостатком устройства является неполное использование возможностей схемы с двумя двоичными сумматорами, полное использование которых позволило бы удвоить быстродействие устройства.

В предлагаемом техническом решении на каждом шаге обрабатывается две тетрады десятичного числа. Преобразование происходит в соответствии с выражением

где Bi - i-й байт (пара тетрад) десятичного числа. Умножение на 100 в соответствии с выражением 100=27+22-25 выполняется сложением двоичного числа, сдвинутого на 7 и 2 битов влево, и вычитанием этого же числа, сдвинутого на 5 битов влево. В состав устройства вводятся двоичное вычитающее устройство и преобразователь кода. На вход преобразователя кода подается старшая тетрада очередного байта десятичного числа, выходы преобразователя кода и младшей тетрады очередного байта десятичного числа соединены со свободными входами двоичного сумматора и двоичного вычитающего устройства.

В основе предлагаемого технического решения лежит то обстоятельство, что при передаче на входы двоичного сумматора и двоичного вычитающего устройства сдвинутых кодов остаются свободными входы семи младших разрядов первого входа двоичного сумматора, два младших разряда его второго входа и пять младших разрядов второго входа двоичного вычитающего устройства. Это позволяет совместить в одном такте умножение числа на 100 и прибавление очередного байта десятичного числа.

Работа преобразователя кода описывается таблицей 1 и системой логических выражений (3), где d1, d2, d3, d4 - биты старшей тетрады байта десятичного числа; a1, a2, а3, a4, а5, a6, a7 - младшие (свободные) биты первого входа двоичного сумматора; c1, c2 - младшие (свободные) биты второго входа двоичного сумматора; b1, b2, b3, b4, b5 - младшие (свободные) биты второго входа двоичного вычитающего устройства. Цифры над обозначениями этих переменных в таблице соответствуют их весовым значениям.

.

Преобразователь кода, осуществляющий следующие преобразования:

c1=d4,

где d1, d2, d3, d4 - биты старшей тетрады байта десятичного числа; а1, а2, а3 - младшие биты первого входа двоичного сумматора; c1, c2 - младшие биты второго входа двоичного сумматора; b2, b3 - младшие биты второго входа двоичного вычитающего устройства, есть комбинационная схема - дешифратор.

Схема предлагаемого устройства приведена на фигуре 2, где 1 - регистр двоичного числа, 2 - регистр десятичного числа, 3 - двоичный сумматор, 4 - мультиплексор байт, 5 - двоичное вычитающее устройство, 6 - счетчик тактов, 7 - преобразователь кода.

Выход регистра двоичного числа (1) подключен к первому входу двоичного сумматора (3), причем выход разряда i регистра двоичного числа (1) соединен с входом разряда i+7 первого входа двоичного сумматора (3) соответственно, и ко второму входу двоичного сумматора (3), причем выход разряда i регистра двоичного числа (1) соединен с входом разряда i+2 второго входа двоичного сумматора (3) и ко второму входу двоичного вычитающего устройства (5), причем выход разряда i регистра двоичного числа (1) соединен с входом разряда i+5 второго входа двоичного вычитающего устройства (5) (i=1, 2,... n; n - разрядность регистра двоичного числа (1), двоичного сумматора (3) и двоичного вычитающего устройства (5). Значение n зависит и равно разрядности исходного двоично-десятичного кода, который записывается в регистр десятичного числа (2)). Выход двоичного сумматора (3) соединен с первым входом двоичного вычитающего устройства (5). Выходы байтов Bk, Bk-1,... B2, B1 десятичного регистра (2) через мультиплексор байт (4) подключены соответственно старшая тетрада ко входу преобразователя кода (7), а младшая тетрада к младшим разрядам первого входа двоичного сумматора (3), причем управляющий вход мультиплексора байт (4) подключен к выходу счетчика тактов (6), одна группа выходов преобразователя кода (7) (а1a2а3) соединена с 5, 6 и 7 разрядами первого входа двоичного сумматора (3), вторая группа (c1) - со вторым разрядом второго входа двоичного сумматора (3) и третья (b2b3) соответственно с 4 и 5 разрядами второго входа двоичного вычитающего устройства (5). Выход двоичного вычитающего устройства (5) соединен с входом регистра двоичного числа (1).

Устройство работает следующим образом. Вначале в регистр десятичного числа (2) загружается преобразуемый десятичный код, регистр двоичного числа (1) сбрасывается, а в счетчик тактов (6) заносится число пар десятичных разрядов k. Затем выполняется k тактов преобразования. В каждом из них выполняются следующие действия:

1) осуществляется выбор байта из регистра десятичного числа (2) мультиплексором байтов (4) под управлением счетчика тактов (6), начиная с Bk;

2) старшая тетрада выбранного байта поступает на вход преобразователя кода (7), на выходе которого получаем коды а1a2а3, c1 и b2b3;

3) на первый и второй входы двоичного сумматора (3) подаются сдвинутое на 7 и 2 бит соответственно содержимое регистра двоичного числа (1), на младшие разряды с 1 по 4 первого входа двоичного сумматора (3) подается младшая тетрада очередного десятичного байта, на разряды с 5 по 7 первого входа двоичного сумматора (3) подается с преобразователя кода преобразованный код а1a2а3, на младший второй разряд второго входа двоичного сумматора (3) подается с преобразователя кода (7) преобразованный код c1;

4) результат суммирования передается на первый вход двоичного вычитающего устройства (5), а на второй вход двоичного вычитающего устройства (5) подается сдвинутое на 5 бит содержимое регистра двоичного числа (1), а на младшие разряды с 3 по 4 второго входа двоичного вычитающего устройства (5) подается с преобразователя кода (7) преобразованный код b2b3;

5) результат выполнения вычитания записывается в регистр двоичного числа (1).

Операция заканчивается при обнулении счетчика.

Положительный эффект предлагаемого технического решения состоит в сокращении времени преобразования по сравнению с аналогом в 2 раза.

Литература

1. Карцев М.А. Арифметика цифровых машин. М.: Наука, 1969 г. п.1.2.4, п.5.2.2.

2. Злобин В.К., Григорьев В.Л. Программирование арифметических операций в микропроцессорах: Учебное пособие для технических вузов. - М: Высш. шк., 1991. Стр. 134, 141, 127.

Устройство преобразования из десятичной системы счисления в двоичную, содержащее регистр десятичного числа, регистр двоичного числа, двоичный сумматор и счетчик тактов, отличающееся тем, что в устройство дополнительно введены двоичное вычитающее устройство, преобразователь кода и мультиплексор байтов, управляющий вход которого подключен к выходу счетчика тактов, а информационные входы соединены с выходами соответствующих байтов регистра десятичного числа, один выход мультиплексора байтов подключен ко входу преобразователя кода, преобразователь кода осуществляет следующие преобразования а1=d1 ∨ d2·d3, c1=d4, где d1, d2, d3, d4 - биты старшей тетрады байта десятичного числа, a1, а2, а3 - младшие биты первого входа двоичного сумматора, c1, c2 - младшие биты второго входа двоичного сумматора, b2, b3 - младшие биты второго входа двоичного вычитающего устройства, а другой - к первому входу двоичного сумматора, одна группа выходов преобразователя кода соединена с первым входом двоичного сумматора, вторая - со вторым входом двоичного сумматора и третья группа - со вторым входом вычитающего устройства, выход регистра выход разряда i регистра двоичного числа соединен с разрядом i+7 первого входа двоичного сумматора, со вторым входом двоичного сумматора, причем выход разряда i регистра двоичного числа соединен с разрядом i+2 второго входа двоичного сумматора и со вторым входом двоичного вычитающего устройства, причем выход разряда i регистра двоичного числа соединен с разрядом i+5 второго входа двоичного вычитающего устройства, где i=1... n, n - разрядность регистра двоичного числа, двоичного сумматора и двоичного вычитающего устройства, выход двоичного сумматора подключен к первому входу двоичного вычитающего устройства, выход которого подключен ко входу двоичного числа.



 

Похожие патенты:

Изобретение относится к технике преобразования цифровых величин в аналоговые и может быть использовано в цифроаналоговых преобразователях, в том числе и со значительным уровнем выходной мощности.

Изобретение относится к автоматике и вычислительной технике и может быть использовано в устройствах отображения цифровой информации. .

Изобретение относится к автоматике и дискретным системам, выполняемым по принципу жесткой логики, и может быть использовано в средствах отображения инструкций по поступающим в цифровом двоичном коде данным.

Изобретение относится к вычислительной технике и может быть использовано в автоматических и вычислительных устройствах для осуществления преобразования прямого кода в обратный и дополнительный, для осуществления операции прямого и обратного счета при подсчете предметов, а также для осуществления реверсивного счета импульсов, поступающих по раздельным входам суммирования и вычитания.

Изобретение относится к вычислительной технике и может быть использовано в универсальных и специализированных вычислительных машинах для построения преобразователей больших потоков двоично-десятичной и двоичной информации.

Изобретение относится к автоматике и вычислительной технике и может быть использовано при построении преобразователей кодов. .

Изобретение относится к автоматике и вычислительной технике и может быть использовано при построении цифровых вычислительных машин и устройств дискретной автоматики.

Изобретение относится к вычислительной технике и может быть использовано в автоматических и вычислительных устройствах для преобразования хранимого кода в обратный или дополнительный, для выполнения операций прямого и обратного счета в стандартном и нестандартном двоичном коде, а также для формирования прямой и обратной последовательностей кодовых комбинаций кода Грея.

Изобретение относится к автоматике и вычислительной технике и может быть использовано для построения различных устройств переработки дискретной информации. .

Изобретение относится к автоматике и вычислительной технике и может быть использовано для построения различных устройств переработки дискретной информации. .

Изобретение относится к технике отображения цифровой информации

Настоящее изобретение относится к технике цифровой обработки сигналов и предназначено для декодирования сигналов, закодированных в коде Манчестер-II. Способ декодирования манчестерского сигнала включает выборку входного манчестерского сигнала с известной частотой передачи на тактовой частоте выборки, не превышающей 3-кратную частоту передачи, на которой осуществляется дополнительно выборка входного манчестерского сигнала в середине такта выборки, а декодирование осуществляется по полученной последовательности логических сигналов, соответствующих уровню входного манчестерского сигнала в начале и середине такта выборки, с помощью конечного автомата, который выдает декодированные данные и сигнал готовности данных, а также дополнительно выдает сигналы "пауза" и "ошибка данных", причем сигнал "пауза" выдается в конце передачи пакета данных, сбрасывается - в начале, сигнал "ошибка данных" выдается, если конечный автомат не смог однозначно декодировать данные. Технический результат - декодирование манчестерского сигнала на частоте работы декодера, не превышающей трехкратную частоту передачи, а также распознавание начала передачи пакета данных и пауз между ними, при джиггере входного сигнала, достигающем ±0.16(6) периода передачи данных. 4 ил.
Наверх