Научная статья на тему 'Преобразователь двоично-десятичного кода целых чисел в двоичный код последовательностного типа'

Преобразователь двоично-десятичного кода целых чисел в двоичный код последовательностного типа Текст научной статьи по специальности «Математика»

CC BY
2017
31
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРЕОБРАЗОВАТЕЛЬ / ПЛИС / СИСТЕМА СЧИСЛЕНИЯ / ДВОИЧНЫЙ КОД / ДВОИЧНО-ДЕСЯТИЧНЫЙ КОД / ЦЕЛОЕ ЧИСЛО / ПОСЛЕДОВАТЕЛЬНОСТНАЯ СХЕМА

Аннотация научной статьи по математике, автор научной работы — Жирков Владимир Филиппович, Мясников В.А.

Рассмотрен алгоритм преобразования двоично-десятичного кода целых чисел в двоичный код, построена схема преобразователя многоразрядного целого числа. Преобразователь последовательностного типа в отличие от комбинационного характеризуется однородностью построения схемы и, следовательно, простотой наращивания разрядности преобразуемых чисел. Показано, что реализация преобразователя последовательностного типа на программируемых логических интегральных схемах, например, фирмы Xilinx, позволяет выполнить преобразование 4-разрядного двоично-десятичного кода целого числа за ~200 нс, 8-разрядного за 400 нс при тактовой частоте 100 МГц.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Жирков Владимир Филиппович, Мясников В.А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Binary-coded decimal code (BCD) converter of integers in the binary code of sequential type

The study tested the algorithm of converting binary-coded decimal code (BCD) of integers in the binary code. The circuit of multi-bit integer converter was built. The converter of sequential type, unlike Raman converter is characterized by homogeneous circuit constructing and, consequently, by simplicity of increasing the bit of convertible digits. We showed that sequential type converter implementation on programmable logic integrated circuits, for example, the company Xilinx, allows to convert 4-bit BCD integer for ~200 ns, 8-bit 400 ns at 100 MHz clock.

Текст научной работы на тему «Преобразователь двоично-десятичного кода целых чисел в двоичный код последовательностного типа»

УДК 004.312.26

Преобразователь двоично-десятичного кода целых чисел в двоичный код последовательностного типа

© В.Ф. Жирков, В. А. Мясников МГТУ им. Н.Э. Баумана, Москва, 105005, Россия

Рассмотрен алгоритм преобразования двоично-десятичного кода целых чисел в двоичный код, построена схема преобразователя многоразрядного целого числа. Преобразователь последовательностного типа в отличие от комбинационного характеризуется однородностью построения схемы и, следовательно, простотой наращивания разрядности преобразуемых чисел. Показано, что реализация преобразователя последовательностного типа на программируемых логических интегральных схемах, например, фирмы Xilinx, позволяет выполнить преобразование 4-разрядного двоично-десятичного кода целого числа за ~200 нс, 8-разрядного - за 400 нс при тактовой частоте 100 МГц.

Ключевые слова: система счисления, двоично-десятичный код, двоичный код, преобразователь, целое число, ПЛИС, последовательностная схема.

Задача преобразования чисел из десятичной системы счисления в двоичную и обратно возникает при вводе и выводе информации в вычислительных устройствах и ЭВМ. Преобразование выполняется отдельно для целой и дробной частей числа. Сначала десятичные числа представляются в двоично-десятичном коде, а затем двоично-десятичные коды чисел преобразуются в двоичные.

Наиболее широкое применение получил двоично-десятичный код (ДДК) 8421, в котором десятичные цифры 0, 1, ..., 9 изображаются четырехразрядными двоичными числами - тетрадами 0000, 0001, ..., 1001 соответственно. Цифры 8, 4, 2, 1 в обозначении кода - это веса разрядов двоичной тетрады.

Целое десятичное число Ац выражается в виде

где an-1, аn-2,..., аг, а0 - цифры 0, 1, ..., 9 десятичного числа; n - число разрядов десятичного числа; 10 - основание десятичной системы счисления.

Поскольку основание системы счисления известно, выражение (1) представляют в сокращенной форме

В двоично-десятичном коде 8421 число Ац записывается в виде

где ап_1?ап_2,...,а1?а0 - двоичные тетрады, изображающие десятичные цифры.

В двоичной системе счисления это число изображается так:

где Ък_ 1? Ък_2, ..., Ьх, Ь0 _ двоичные цифры 0 или 1, 2 - основание двоичной системы счисления; к _ количество двоичных разрядов числа А.

Алгоритмы преобразования числа Ац в двоичную систему счисления следуют из записи выражения (3) по схеме Горнера:

Один из них, наиболее пригодный для аппаратной реализации преобразования целого числа, заключается в последовательном делении целого числа и образующихся целых частных на основание 2 двоичной системы счисления. Получающиеся остатки в ходе процесса последовательного деления являются цифрами Ь0, Ь1,..., Ьк_2, Ък_1 целого числа А, переведенного в новую, т. е. двоичную, систему счисления. Разделив правую часть выражения (4) на 2, определим первый остаток Ь0 и целую часть (...(Ьк _1 • 2 + Ьк _ 2 )• 2 +... + Ь2 )• 2 + Ь1. Разделив эту целую часть на 2, найдем второй остаток Ь1 и очередное частное (...(Ьк_1 • 2 + Ьк_2 )• 2 +... + Ь3) • 2 + Ь2. Повторяя процесс деления к раз, получим последнее частное Ьк _ 1, которое, согласно (4), меньше основания 2 двоичной системы счисления и является старшей цифрой двоичного числа.

Операция деления на 2 выполняется сдвигом двоично-десятичного числа вправо (в сторону младших разрядов) на один двоичный разряд (позицию). При этом младшие разряды исходных чисел и образующихся частных являются остатками от деления. При сдвиге двоично-десятичного числа вправо разряд тетрады с весом 8 приобретает вес 4, с весом 4 _ вес 2, с весом 2 _ вес 1 , т. е. происходит деление числа на 2. Однако для получения правильного частного необходимо выполнить коррекцию результата сдвига, если при сдвиге какая-либо единица переходит из одной тетрады в другую. Действительно, эта единица, которая имеет разрядное значение, равное десяти единицам того разряда, в который она сдвигается, приобретает в нем вес 8, а должна приобрести вес 5 (10 : 2 = 5). Следовательно, для коррекции с целью получения правильного результата необходимо вычесть 310 = 00112 из тех тетрад, в которые при сдвиге поступила единица. Если в старший

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

Элементарный преобразователь (ЭП) одного двоично-десятичного разряда числа должен иметь четыре входа и четыре выхода. При выполнении сдвига на эти входы ЭП поступают три старших двоичных разряда 1-й тетрады, на четвертый вход - первый двоичный разряд (г + 1)-й тетрады.

Двоичная тетрада Х = (х4х3 х2 х1) может принимать значения 0000, 0001, ..., 0100, если при сдвиге из (г + 1)-й тетрады в г-ю поступает ноль, т. е. х4 = 0, и 1000, 1001, ...,1100, если при сдвиге из (г + 1)-й тетрады в г-ю поступает единица, т. е. х4 = 1. Следовательно, ЭП должен выполнять функцию

Г X,0 < X < 4, У = \ (5)

[X - 3,8 < X < 12, 4 7

где Х = (х4х3х2х1), У = (у4у3>'2>'1) - двоичные тетрады числа на входах и выходах ЭП соответственно. Числа X, равные 5, 6, 7, 13, 14, 15, не могут появиться на входе ЭП.

Функции (5) соответствует таблица истинности ЭП.

Таблица истинности элементарного преобразователя

Входы Выходы

х4 х3 х2 х1 У 4 У3 У 2 У1

0 0 0 0 0 0 0 0

0 0 0 1 0 0 0 1

0 0 1 0 0 0 1 0

0 0 1 1 0 0 1 1

0 1 0 0 0 1 0 0

1 0 0 0 0 1 0 1

1 0 0 1 0 1 1 0

1 0 1 0 0 1 1 1

1 0 1 1 1 0 0 0

1 1 0 0 1 0 0 1

Условное графическое обозначение (УГО) ЭП с четырьмя входами и четырьмя выходами показано на рис. 1. В верхнем и нижнем до-

I I I I

1

X /у

8 4 2 1

полнительных полях УГО указаны веса, с которыми принимаются и выдаются разряды входных и выходных чисел (сигналов). ЭП имеет четыре входа с весами 5, 4, 2, 1 и четыре выхода с весами 8, 4, 2, 1.

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

Рассмотрим построение преобразователя последовательностного типа (ППТ). Положительными качествами ППТ являются однородность его структуры, простота наращивания разрядности. Схема ППТ ДДК 4-разрядного десятичного числа в двоичный код (ДК) приведена на рис. 2.

1111

Рис. 1. Элементарный преобразователь с четырьмя входами и четырьмя выходами

Рис. 2. Схема преобразователя ДДК целых чисел в ДК последовательностного типа

ППТ должен содержать десятичный сдвигающий регистр для хранения и преобразования двоично-десятичных чисел, ЭП в каждом десятичном разряде и двоичный сдвигающий регистр для хранения и вывода двоичного числа. Устройство управления (УУ) при поступлении команды преобразования С формирует последовательность тактовых импульсов для организации сдвига информации в регистрах и коррекции. Коррекция выполняется в десятичном регистре.

Десятичный регистр должен выполнять операции сдвига вправо и параллельной загрузки чисел с двух направлений: от внешнего источника для приема исходного числа и с выходов ЭП после выполнения коррекции. Организацию двухпортового приема чисел можно реализовать через двухвходовые мультиплексоры, которые следует включить в цепь приема данных каждого двоичного разряда десятичного регистра. Порт выбирается управляющим сигналом, поданным на вход выбора и разрешающим прием чисел или от внешнего источника (например, при М = 0), или с выходов ЭП (при М = 1). При М = 0 по управляющему синхросигналу УУ выполняется параллельная загрузка числа в десятичный регистр, поступающего от внешнего источника. При М = 1 по команде преобразования УУ должно сформировать 4п синхроимпульсов сдвига, 4п синхроимпульсов параллельной загрузки для преобразования ДДК числа в ДК и 4п раз выполнить переключение регистра из режима сдвига в режим параллельной загрузки. Поэтому преобразования п-разрядного двоично-десятичного числа будут выполняться, по крайней мере, за 8п периодов Т синхроимпульсов [5].

Можно предложить другой вариант построения десятичного регистра с организацией смещения влево на один двоичный разряд (позицию) входов разрядной сетки ЭП относительно выходов разрядной сетки регистра. Такая организация связей входов и выходов регистра и ЭП («косая передача») позволяет обеспечить прием в десятичный регистр в каждом такте нового частного, т. е. осуществить и сдвиг числа, и его коррекцию в одном такте. Таким образом, десятичный регистр будет выполнять операцию параллельной загрузки с двух портов. Предложенный вариант построения десятичного регистра и организации связей регистра и ЭП можно считать оптимальным с точки зрения временных затрат на преобразование: для формирования одного разряда двоичного числа требуется только один тактовый период синхроимпульсов. Общее время преобразования составит 4пГ.

ППТ можно реализовать на интегральных схемах (ИС) средней и большой степени интеграции. В качестве ИС средней степени интеграции можно применить, например, 4-разрядные двухпортовые реги-

стры К555КП13, КР1533КП13, 74LS298, 74ALS298, 74AC298, 4-разрядные полные двоичные сумматоры К555ИМ6, 74LS283, 74AC283, на которых реализуются ЭП [1, 3], двоичные сдвигающие регистры К555ИР8, КР1533ИР8, 74LS164, 74ALS164, 74AC164 отечественных и зарубежных серий ТТЛШ и КМОП-логики. Функцию ЭП может выполнять 4-разрядный сумматор [1]. При х4 = 0 младшие разряды х3 х2 х1 передаются через сумматор без изменений, при х4 = 1 к двоичному коду числа 0 х3 х2 х1 прибавляется 01012 = 510

Интегральные схемы К155ПР6, SN54184, SN74184 выполняют функции двух объединенных элементарных преобразователей, реализованы на постоянных запоминающих устройствах и для применения в данной схеме преобразователя в качестве ЭП являются избыточными.

Более перспективна реализация ППТ в программируемых логических интегральных схемах (ПЛИС), например, фирмы Xilinx, что позволяет обеспечить малую потребляемую мощность и высокое быстродействие. При малых задержках распространения в двоично-десятичном регистре, мультиплексорах и ЭП вполне достижима работа ПКП при тактовой частоте порядка 100 МГц (Т = 10 нс).

В ППТ требуется реализация функций четырех переменных. Для ППТ можно использовать ПЛИС с архитектурой FPGA Spartan-II, Spar-tan-3, Virtex-E, Virtex-II, в которых табличные преобразователи (LUT -Look-Up Tables) имеют четыре входа и могут реализовать функции алгебраической логики (ФАЛ) четырех переменных.

Применение ПЛИС Spartan-6, Virtex-6 для рассматриваемой задачи нецелесообразно, так как эти схемы содержат шестивходовые LUT, которые будут использоваться только на 25 %.

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

Для построения преобразователя многоразрядных целых чисел из ДДК в ДК было проведено описание следующих функциональных узлов на языке VHDL:

• мультиплексора, переключающего направление загрузки информации в десятичный регистр;

• десятичного регистра с параллельным вводом и выводом информации для промежуточного хранения информации;

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

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

1 1 110 ns 1 1 1 1 1

Name Value 1 1 1 1 1 1 1 120 ns 1 1 1 1 1 1 1 1

▼ 4$ conv_in[0:3] 1ft И 0000 ; ■

[1] 0

lira 14 и ▼ conv_out[0:3] IBs га 14 w lira 14 и 0 1 0110 0 1 1 0

0 300 <

1

Рис. 3. Временная диаграмма работы ЭП

преобразования С такое устройство должно обеспечить занесение ДДК целого числа в десятичный регистр из шины входных данных. Затем УУ вырабатывает серию импульсов для выполнения преобразования, количество которых определяется разрядностью дроби и требованиями точности. В данном устройстве для всего процесса приема и преобразования генерируется 17 импульсов: один - для загрузки ДДК преобразуемого целого числа в десятичный регистр и 16 - для преобразования.

С помощью стандартного средства Test Bench САПР Xilinx ISE 14.7 проведено моделирование для тестирования преобразователя и оценки его временных параметров. Данное средство позволяет моделировать работу любых устройств, описанных на языках VHDL или Verilog, для построения временных диаграмм тестируемых устройств. Создан специальный файл поведенческого моделирования, в котором описываются все временные изменения входных сигналов.

По данным, полученным в результате моделирования, установлено, что задержка распространения сигнала в регистре сдвига не превышает 4 нс. Время задержки распространения в тракте преобразователя, состоящего из мультиплексора, регистра и ЭП, не превышает 9 нс. При тактовой частоте 100 МГц время преобразования 4-разрядного ДДК целого числа составляет ~200 нс, 8-разрядного - 400 нс.

ЛИТЕРАТУРА

[1] Гришин Ю.Р., Казаринов Ю.М., Катиков В.М. и др. Проектирование импульсных и цифровых устройств радиотехнических систем. Москва, Высш. шк., 1985, 319 с.

[2] Титце У., Шенк К. Полупроводниковая схемотехника. Москва, Мир, 1982, 512 с.

[3] Пухальский Г.И., Новосельцева Т.Я. Проектирование дискретных устройств на интегральных микросхемах. Москва, Радио и связь, 1990, 304 с.

[4] Алексенко А.Г. Основы микросхемотехники. Элементы морфологии микроэлектронной аппаратуры. 2-е изд., перераб. и доп. Москва, Сов. радио, 1977, 408 с.

[5] Жирков В.Ф., Маянц А.Ю. Алгоритм преобразования двоичного кода правильных дробей в двоично-десятичный код и его реализация аппаратными средствами комбинационного типа. Инженерный журнал: наука и инновации, 2012, вып. 1. URL: http://engjournal.ru/articles/76/76.pdf

[6] Morris R.L., Miller J.R. Designing with TTL integrated circuits. New York, McGraw-Hill, Books Co., 1971.

[7] Карцев М. А. Арифметика цифровых машин. Главная редакция физико-математической литературы Издательства «Наука», 1969, 576 с.

Статья поступила в редакцию 23.05.2014

Ссылку на статью просим оформлять следующим образом:

Жирков В.Ф., Мясников В.А. Преобразователь двоично-десятичного кода целых чисел в двоичный код последовательностного типа. Инженерный журнал: наука и инновации, 2014, вып. 12. URL: http://engjournal.ru/catalog/it/ hidden/1320.html

Жирков Владимир Филиппович родился в 1937 г., окончил МВТУ им. Н.Э. Баумана в 1960 г. Доцент кафедры «Компьютерные системы и сети» МГТУ им. Н.Э. Баумана. Имеет более 60 научных работ. Специализация - обработка сигналов в информационно-измерительных системах. e-mail: jirkovvf@bmstu.ru

Мясников Виктор А. родился в 1992 г. Студент кафедры «Компьютерные системы и сети» МГТУ им. Н.Э. Баумана. e-mail: 13vitia@gmail.com

Binary-coded decimal code (BCD) converter of integers in the binary code of sequential type

© V.F. Zhirkov, V.A. Myasnikov Bauman Moscow State Technical University, Moscow, 105005, Russia

The study tested the algorithm of converting binary-coded decimal code (BCD) of integers in the binary code. The circuit of multi-bit integer converter was built. The converter of sequential type, unlike Raman converter is characterized by homogeneous circuit constructing and, consequently, by simplicity of increasing the bit of convertible digits. We showed that sequential type converter implementation on programmable logic integrated circuits, for example, the company Xilinx, allows to convert 4-bit BCD integer for ~200 ns, 8-bit — 400 ns at 100 MHz clock.

Keywords: number system, BCD, binary code, converter, integer, EPLD, sequential circuit.

REFERENCES

[1] Grishin Yu.R., Kazarinov Yu.M., Katikov V.M., et al. Proektirovanie impul'snykh i tsifrovykh ustroistv radiotekhnicheskikh sistem [Design of pulse and digital radio systems devices]. Moscow, Vysshaya shkola Publ., 1985, 319 p.

[2] Tittse U., Shenk K. Poluprovodnikovaya skhemotekhnika [Semiconductor circuitry]. Moscow, 1982, 512 p. [In Russian].

[3] Pukhal'skiy G.I., Novosel'tseva T.Ya. Proektirovanie diskretnykh ustroistv na integral'nykh mikroskhemakh [Design of discrete devices on integrated circuits]. Moscow, Radio i Svyaz' Publ., 1990, 304 p.

[4] Aleksenko A.G. Osnovy mikroskhemotekhniki. Elementy morfologii mikroelektronnoi apparatury [Basics of microcircuitiy. Elements of morphology of microelectronic devices]. 2nd ed. Moscow, Sovetskoe Radio Publ., 1977, 408 p.

[5] Zhirkov V.F., Mayants A.Yu. Inzhenernyi zhurnal: nauka i innovatsii — Engineering Journal: Science and Innovation, 2012, iss. 1. Available at: http://engjournal.ru/articles/76/76.pdf

[6] Morris R.L., Miller J.R., eds. Designing with TTL integrated circuits. New York, McGraw-Hill, Books Co, 1971.

[7] Kartsev M.A. Arifmetika tsifrovykh mashin [Arithmetic of digital machines]. Moscow, Nauka Publ., 1969, 576 p.

Zhirkov V.F. (b. 1937) graduated from Bauman Moscow Higher Technical School in 1960. Assoc. Professor of the Computer Systems and Nets Department at Bauman Moscow State Technical University. Author of more than 60 scientific papers. His major scientific interests are signal processing in information-measuring systems. e-mail: jirkovvf@bmstu.ru

Myasnikov V.A. (b. 1992) is a student of the Computer Systems and Nets Department at Bauman Moscow State Technical University. e-mail: 13vitia@gmail.com

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.