Научная статья на тему 'МЕТОДИКА ПРОЕКТИРОВАНИЯ ПРЕОБРАЗОВАТЕЛЕЙ КОДА НА БАЗЕ ПЛИС'

МЕТОДИКА ПРОЕКТИРОВАНИЯ ПРЕОБРАЗОВАТЕЛЕЙ КОДА НА БАЗЕ ПЛИС Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Пирогов А.А., Пирогова Ю.А., Гвозденко С.А., Жилин Б.И., Сёмка Э.В.

Сложение чисел в двоичном коде осуществляется по тем же правилам, как и при десятичной кодировке. Независимо от кодировки сложение идет с младшего разряда числа. При переполнении, когда результат сложения значений одноименных разрядов больше единицы, делается перенос в следующий старший разряд и происходит сложение со значением данного разряда. Вычитание чисел в двоичном коде также аналогично операции вычитания в десятичной кодировке. В данном случае, если значение разряда вычитаемого больше соответствующего разряда значения уменьшаемого числа, берется заем из следующего старшего разряда. Поэтому реализация вычитания в ЭВМ является более трудоемкой, чем формирование переноса, возникающего при сложении. В вычислительных системах вычитание заменяют операцией сложения отрицательных чисел, представленных в форме обратного или дополнительного кода. В этом случае для знака выделяется дополнительный разряд, являющийся самым старшим разрядом разрядной сетки представленного двоичного числа (знаковый разряд). Для положительного числа знаковый разряд равен нулю, а для отрицательного равен единице. Прямой код является естественным представлением двоичного числа в двоичной системе счисления. Сложение чисел с одинаковыми знаками в прямом коде выполняется по обычным правилам

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

DESIGN METHODOLOGY FOR CODE CONVERTERS BASED ON FPGA

Addition of numbers in binary code is carried out according to the same rules as with decimal encoding. Regardless of the encoding, addition comes from the low order of the number. During overflow, when the result of adding the values of the same categories is more than one, a transfer is made to the next senior level and addition occurs with the value of this category. Subtraction of numbers in binary code is also similar to the operation of subtraction in decimal coding. In this case, if the value of the digit subtracted is greater than the corresponding digit of the value of the decreasing number, a borrow is taken from the next high-order digit. Therefore, the implementation of the subtraction in a computer is more time-consuming than the formation of the transfer arising during addition. In computing systems, subtraction is replaced by the operation of adding negative numbers, presented in the form of a reverse or additional code. In this case, an extra bit is allocated for the sign, which is the highest bit of the bit grid of the represented binary number (sign bit). For a positive number, the sign digit is zero, and for a negative one. Direct code is a natural representation of a binary number in a binary number system. Adding numbers with the same signs in the direct code is performed according to the usual rules

Текст научной работы на тему «МЕТОДИКА ПРОЕКТИРОВАНИЯ ПРЕОБРАЗОВАТЕЛЕЙ КОДА НА БАЗЕ ПЛИС»

DOI 10.25987/VSTU.2020.16.4.013 УДК 621.37

МЕТОДИКА ПРОЕКТИРОВАНИЯ ПРЕОБРАЗОВАТЕЛЕЙ КОДА НА БАЗЕ ПЛИС А.А. Пирогов1, Ю.А. Пирогова1, С.А. Гвозденко1, Б.И. Жилин2, Э.В. Сёмка2

воронежский государственный технический университет, г. Воронеж, Россия 2Военный учебно-научный центр Военно-воздушных сил «Военно-воздушная академия им. проф. Н.Е. Жуковского и Ю.А. Гагарина», г. Воронеж, Россия

Аннотация: сложение чисел в двоичном коде осуществляется по тем же правилам, как и при десятичной кодировке. Независимо от кодировки сложение идет с младшего разряда числа. При переполнении, когда результат сложения значений одноименных разрядов больше единицы, делается перенос в следующий старший разряд и происходит сложение со значением данного разряда. Вычитание чисел в двоичном коде также аналогично операции вычитания в десятичной кодировке. В данном случае, если значение разряда вычитаемого больше соответствующего разряда значения уменьшаемого числа, берется заем из следующего старшего разряда. Поэтому реализация вычитания в ЭВМ является более трудоемкой, чем формирование переноса, возникающего при сложении. В вычислительных системах вычитание заменяют операцией сложения отрицательных чисел, представленных в форме обратного или дополнительного кода. В этом случае для знака выделяется дополнительный разряд, являющийся самым старшим разрядом разрядной сетки представленного двоичного числа (знаковый разряд). Для положительного числа знаковый разряд равен нулю, а для отрицательного равен единице. Прямой код является естественным представлением двоичного числа в двоичной системе счисления. Сложение чисел с одинаковыми знаками в прямом коде выполняется по обычным правилам

Ключевые слова: двоичный код, обратный код, дополнительный код, моделирование

Введение

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

Операцию вычитания можно свести к операции сложения при использовании обратных и дополнительных кодов. Форма обратного и дополнительного кода положительного числа равна соответствующему прямому коду. Форма обратного кода отрицательного числа системы счисления с основанием к получается, если в качестве цифры его разряда взять разность между максимальной цифрой данной системы счисления (к-1) и цифрой кода того же разряда. В соответствии с этим правилом для отрицательных двоичных чисел в разрядах единицы следует заменить нулями, а нули -единицами, при этом в знаковом разряде появляется единица (признак отрицательного числа). Ноль в прямом и обратном коде не однозначен, имеет два представления. Положительная сумма будет представлена прямым кодом, а отрицательная обратным. Для пере-

© Пирогов А.А., Пирогова Ю.А., Гвозденко С.А., Жилин Б.И., Сёмка Э.В., 2020

хода в прямой код при преобразовании обратного кода отрицательного числа бит знака не меняется и производится инверсия разрядов числа [1].

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

зт4

Ь2 р|

ьз 53

ы 30

ьо

р И2

а1

а2

аЗ

аО

1-П1Г

-Цо>

-С2>

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

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

Ниже представлена сводная таблица прямого и дополнительного двоичного кода. Столбцы Ъ0 и Ъ это старшие биты разрядной сетки числа в прямом и дополнительном коде, указывающие на его знак («0» - число положительное, «1» - число отрицательное).

Преобразователь в дополнительный код представляет собой четырехразрядный сумматор и элементы, исключающие «или» (XOR), подключенные на каждый разряд входного прямого кода. В случае, когда число на входе положительное, на входе Ъ0 формируется уровень логического ноля, в результате исходное число подается без изменений на входы а! сумматора, при этом на вход Ь0 сумматора также поступает ноль, с которым происходит сложение числа. В результате на выходах преобразователя S1 получаем дополнительный код числа, равный исходному коду. При подаче на вход Ъ0 единицы элементы XOR инвертируют исходный код, к младшему разряду которого добавляется единица с входа Ь0, что позволяет сформировать дополнительный код отрицательного числа на выходах преобразователя [2].

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

Таблица 1

Таблица прямого и дополнительно двоичного кода

№ Прямой код Дополнительный

код

Zo Х3 Х2 X, Х0 Z Sз S2 й ^

0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 0 1 0 0 0 0 1

2 0 0 0 1 0 0 0 0 1 0

3 0 0 0 1 1 0 0 0 1 1

4 0 0 1 0 0 0 0 1 0 0

5 0 0 1 0 1 0 0 1 0 1

6 0 0 1 1 0 0 0 1 1 0

7 0 0 1 1 1 0 0 1 1 1

8 0 1 0 0 0 0 1 0 0 0

9 0 1 0 0 1 0 1 0 0 1

10 0 1 0 1 0 0 1 0 1 0

11 0 1 0 1 1 0 1 0 1 1

12 0 1 1 0 0 0 1 1 0 0

13 0 1 1 0 1 0 1 1 0 1

14 0 1 1 1 0 0 1 1 1 0

15 0 1 1 1 1 0 1 1 1 1

16 1 0 0 0 0 1 0 0

17 1 0 0 0 1 1 1 1 1 1

18 1 0 0 1 0 1 1 1 1 0

19 1 0 0 1 1 1 1 1 0 1

20 1 0 1 0 0 1 1 1 0 0

21 1 0 1 0 1 1 1 0 1 1

22 1 0 1 1 0 1 1 0 1 0

23 1 0 1 1 1 1 1 0 0 1

24 1 1 0 0 0 1 1 0 0 0

25 1 1 0 0 1 1 0 1 1 1

26 1 1 0 1 0 1 0 1 1 0

27 1 1 0 1 1 1 0 1 0 1

28 1 1 1 0 0 1 0 1 0 0

29 1 1 1 0 1 1 0 0 1 1

30 1 1 1 1 0 1 0 0 1 0

31 1 1 1 1 1 1 0 0 0 1

я и и

-£>о-

-ш>

Рис. 2. Схема одноразрядного двоичного сумматора

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

Таблица 2

Таблица истинности для полного одноразрядного сумматора

№ ^ ъ й ^+1

0 0 0 0 0 0

1 0 0 1 1 0

2 0 1 0 1 0

3 0 1 1 0 1

4 1 0 0 1 0

5 1 0 1 0 1

6 1 1 0 0 1

7 1 1 1 1 1

Для полного двоичного сумматора характерны следующие переключательные функции (ПФ):

= в Ь1Р I + агЬг Р I + в Ь1Р I + агЬгРг Р г+1 = агьгРг + аг ьгРг + агьг Рг + агьгРг

, (1)

где а! и Ь1 - складываемые кодовые комбинации, Р1 - вход переноса, S1 - значение суммы, Р1+1 (С1) - выход переноса.

Далее выполним минимизацию ПФ, получим следующие выражения для функции суммы S1 и функции переноса Р1+1:

Рг +1 = агЪгРг + в гЬ г Р г + а гЬ г Р г + а гЬ г Р г + а гЬ г Р г + а гЬ г Р г = = ЬгРг + агРг + а гЬ г

^ г = агЬгРг + вгЬгРг + вгЬгРг + вгЬгРг = вгЬгРг ' вгЬгРг ' вгЬгРг + вгЬгРг = = (а + Ьг + Рг )• (аг + Ь + Рг )' ^г + Ьг + Рг ) + агЬгР г = = (в + аг Ьг + вгРг + агЬг + ЬгРг + аг Рг + Ьг Рг )' (аг + Ьг + Рг ) + агЬгРг =

= ЬгР + а,Ь, + а,Р, + аг Ь1Р1 + а,Ь,Р гг = Р+ • (а гг + Ь, + Р г ) + а,Ь,Р , . (3)

Рис. 3. Схема четырехразрядного двоичного сумматора

Схема одноразрядного двоичного сумматора, построенная на основе полученных ПФ, представлена на рис. 2. На рис. 3 представлена схема каскадного четырехразрядного двоичного сумматора.

Далее проведем моделирование преобразователя прямого двоичного кода в дополни-

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

Опг 50П5 100 пг 150 Г15 133.890 п 5 200 П5 250ПЗ 300 ПЗ

1 1 1 1 1 1 1 I \

1- 1 1 1 1 —1 1_

1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1

1

1 1 1 1 1 1 1 1 1

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

1 1 1 1 1 1 г ■ 1 1 1

1 1 1 1 1 1

1 1 1—

&

( 320000[к

Ц^о

Щй Щг

1£*2

ЩгО с_рег'юс!

Рис. 4. Временная диаграмма работы преобразователя прямого двоичного кода в дополнительный код

Проектирование преобразователя прямого двоичного кода в обратный код

Щп -

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

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

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

[хз -

ш-

[Ш-

[Ш -

Рис. 5. Преобразователь прямого двоичного кода в обратный код

14 хО 14*1 14*2 14*з 14 zu 14 ю 14*1 14 уг 14/3 14 zollt c_periofl 0 ns 50 ns 100 ns 150 ns 173.559 nsJ 200 ns 250 ns 300 ns

1 II IM 1 1 1 1 1 1

1 1 1 1 1 1 1 Л 1 1 1

1 1 —1 1_ 1

1 1 1

_1

SS пп ~1 1 в 1 1 1 1 1 1 1 1 1 ISS 1

I 1 1 1 1 1 ш I 1 1 1

1Ш 1 1 1 I

1 1_

_1

320000 PS

Рис. 6. Временная диаграмма работы преобразователя прямого двоичного кода в обратный код

Таблица 3

Таблица прямого и обратного двоичного кода

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Z0

Прямой код

X3

X2

X1

X0

Дополнительный код

S3

S2

S1

S0

Реализация полученных моделей преобразователей выполнена на базе ПЛИС, которые представляют собой программно конфигурируемые интегральные схемы. При разработке сложных устройств могут применяться в качестве компонентов для проектирования готовые сложно-функциональные блоки (СФ-блоки).

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

Заключение

В итоге получены модели преобразователей в полном базисе. Построение моделей было проведено с применением специализированного программного продукта Xilinx ISE при помощи интегрированного схемного редактора. Полученные результаты могут найти применение в реконфигурируемых системах, построенных на базе ПЛИС, и в структурах СФ-блоков. Блок имеет открытую архитектуру, что позволяет адаптировать его в системе под требуемую задачу. Также за счет низкого числа задействованных вентилей есть возможность наращивания структуры, увеличения разрядности преобразуемых кодов.

Литература

1. Методика получения поведенческой модели для оценки отклонения значащих моментов цифрового сигнала от идеальных положений во времени / М.Ю. Чепе-лев, А.А. Пирогов, А.В. Башкиров, И.А. Бурмистров // Вестник Воронежского института ФСИН России. 2019. № 2. С. 14-25.

2. Башкиров А.В., Свиридова И.В., Андреева Д.С. Эффективная архитектура на основе ПЛИС для полностью параллельного стохастического LDPC-декодера // Вестник Воронежского государственного технического университета. 2018. Т. 14. № 3. С. 101-107.

3. Башкиров А.В., Свиридова И.В. Реализация стохастического LDPC-декодера на ПЛИС // Вестник Воронежского государственного технического университета. 2018. Т. 14. № 6. С. 103-107.

Поступила 10.06.2020; принята к публикации 20.08.2020

Z

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

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

1

0

0

0

1

0

0

0

0

0

2

0

0

0

1

1

0

0

0

1

3

0

0

1

0

0

0

0

0

0

4

5

0

0

1

0

1

0

0

0

1

6

0

0

1

1

0

0

0

0

0

0

1

1

1

0

0

1

7

0

0

0

0

0

0

0

0

8

0

0

0

1

0

0

0

1

9

0

0

1

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

0

0

0

0

1

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

0

1

0

0

1

0

1

1

0

0

0

0

1

1

1

0

1

0

0

0

0

1

0

0

0

1

0

0

0

1

0

0

1

0

0

1

1

0

0

0

1

0

0

0

1

0

1

0

1

0

0

0

1

1

0

0

0

1

0

1

1

1

0

0

0

0

0

0

0

1

0

0

1

0

0

0

1

0

0

0

1

0

1

1

0

0

0

1

0

0

0

0

1

1

0

1

0

0

0

1

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

1

0

0

0

0

1

1

1

1

0

0

0

0

Информация об авторах

Пирогов Александр Александрович - канд. техн. наук, доцент, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), e-mail: pirogov.alx@gmail.com

Пирогова Юлия Александровна - магистрант, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), e-mail: gvendilon@mail.ru

Гвозденко Сергей Анатольевич - аспирант, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), e-mail: jgsar@mail.ru

Жилин Борис Иванович - канд. техн. наук, старший преподаватель, Военный учебно-научный центр Военно-воздушных сил «Военно-воздушная академия им. проф. Н.Е. Жуковского и Ю.А. Гагарина» (394064, Россия, г. Воронеж, ул. Старых большевиков, 54 «А»), e-mail: borishms@mail.ru

Сёмка Элеонора Викторовна - преподаватель, Военный учебно-научный центр Военно-воздушных сил «Военно-воздушная академия им. проф. Н.Е. Жуковского и Ю.А. Гагарина» (394064, Россия, г. Воронеж, ул. Старых большевиков, 54 «А»), e-mail: semka_elya@mail.ru

DESIGN METHODOLOGY FOR CODE CONVERTERS BASED ON FPGA

A.A. Pirogov1, Yu.A. Pirogova1, S.A. Gvozdenko1, B.I. Zhilin2, E.V. Syemka2

Voronezh State Technical University, Voronezh, Russia 2Military Scientific Educational Center of Military-Air Forces "N.E. Zhukovsky and Ju.A. Gagarin Military-Air Academy", Voronezh, Russia

Abstract: addition of numbers in binary code is carried out according to the same rules as with decimal encoding. Regardless of the encoding, addition comes from the low order of the number. During overflow, when the result of adding the values of the same categories is more than one, a transfer is made to the next senior level and addition occurs with the value of this category. Subtraction of numbers in binary code is also similar to the operation of subtraction in decimal coding. In this case, if the value of the digit subtracted is greater than the corresponding digit of the value of the decreasing number, a borrow is taken from the next high-order digit. Therefore, the implementation of the subtraction in a computer is more time-consuming than the formation of the transfer arising during addition. In computing systems, subtraction is replaced by the operation of adding negative numbers, presented in the form of a reverse or additional code. In this case, an extra bit is allocated for the sign, which is the highest bit of the bit grid of the represented binary number (sign bit). For a positive number, the sign digit is zero, and for a negative one. Direct code is a natural representation of a binary number in a binary number system. Adding numbers with the same signs in the direct code is performed according to the usual rules

Key words: binary code, reverse code, additional code, modeling

References

1. Chepelev M.Yu., Pirogov A.A., Bashkirov A.V., Burmistrov I.A. "Methodology for obtaining a behavioral model for assessing the deviation of significant moments of a digital signal from ideal positions in time", Bulletin of Voronezh Institute of the Federal Penitentiary Service of Russia (Vestnik Voronezhskogo instituta FSINRossii), 2019, no. 2, pp. 14-25.

2. Bashkirov A.V., Sviridova I.V., Andreeva D.S. "Effective FPGA-based architecture for a fully parallel stochastic LDPC decoder", Bulletin of Voronezh State Technical University (Vestnik Voronezhskogo gosudarstvennogo tekhnicheskogo universiteta), 2018, vol. 14, no. 3, pp. 101-107.

3. Bashkirov A.V., Sviridova I.V. "Implementation of the stochastic LDPC decoder on the FPGA", Bulletin of Voronezh State Technical University (Vestnik Voronezhskogo gosudarstvennogo tekhnicheskogo universiteta), 2018, vol. 14, no. 6, pp. 103-107

Submitted 10.06.2020; revised 20.08.2020

Information about the authors

Aleksandr A. Pirogov, Cand. Sc. (Technical), Associate Professor, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh, 394026, Russia), e-mail: pirogov.alx@gmail.com

Yuliya A. Pirogova, MA, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh, 394026, Russia), e-mail: gvendilon@mail.ru

Sergey A. Gvozdenko, Graduate student, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh, 394026, Russia), e-mail: jgsar@mail.ru

Boris I. Zhilin, Cand. Sc. (Technical), Assistant Professor, Military scientific educational center of Military-Air forces "N.E. Zhukovsky and Ju.A. Gagarin Military-Air academy" (54A Starykh Bol'shevikov st., Voronezh 394064, Russia), e-mail: bor-ishms@mail.ru

Eleonora V. Syemka, Assistant Professor, Military scientific educational center of Military-Air forces "N.E. Zhukovsky and Ju.A. Gagarin Military-Air academy" (54A Starykh Bol'shevikov st., Voronezh 394064, Russia), e-mail: semka_elya@mail.ru

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