Научная статья на тему 'ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ ПЛИС FPGA НА ОСНОВЕ КОМБИНИРОВАННОГО КОДИРОВАНИЯ ПЕРЕМЕННЫХ'

ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ ПЛИС FPGA НА ОСНОВЕ КОМБИНИРОВАННОГО КОДИРОВАНИЯ ПЕРЕМЕННЫХ Текст научной статьи по специальности «Математика»

CC BY
5
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
логические функции / ПЛИС / LUT / унитарный код / Logic Functions / FPGA / LUT / One-Hot Coding

Аннотация научной статьи по математике, автор научной работы — Тюрин Сергей Феофентович, Васенин Иван Андреевич, Советов Станислав Игоревич

Программируемые логические интегральные схемы (ПЛИС) широко используются во многих областях. В настоящее время «продвинутые» ПЛИС передовых производителей содержат уже десятки миллионов логических элементов. Однако ПЛИС как универсальные устройства проигрывают соответствующим заказным (ASIC – Application-specific integrated circuit) и полузаказным (ULA – Uncommitted Logic Array) микросхемам в быстродействии и потребляемой мощности, выигрывая в стоимости. Поэтому актуальны новые подходы, например, обеспечивающие так называемую «гипер-оптимизацию» ПЛИС, в которой за счет частичного усложнения логики и использования разложения Шеннона по некоторым переменным конечного автомата достигается снижение задержек в цепи обратной связи. Дальнейшее развитие этого принципа может привести к использованию разложения Шеннона более чем по одной переменной, а может, и по всем с использованием унитарного кодирования. Целью исследования является разработка и исследование логических элементов ПЛИС FPGA, называемых LUT (Look Up Table), с использованием унитарного кодирования входных переменных. Методика исследования базируется на научно-методическом аппарате бинарных переключательных функций (логических функций, булевых функций, функций алгебры логики), используемом в дискретной математике и математической логике. В результате исследования планируется получить метод реализации логических функций в LUT с использованием унитарного кодирования входных переменных и обеспечивающий повышение быстродействия вычисления логических функций в ПЛИС. В статье предложены патентоспособные технические решения логических элементов с унитарным кодированием переменных и функций, обеспечивающие минимально возможную задержку. Получены оценки сложности реализации и задержки в количестве транзисторов. Рассмотрен пример реализации конечного автомата с унитарным кодированием состояний, входных переменных и функций выходов. Предложен двухкоординатный логический элемент использующий два унитарных набора – состояние автомата и входные переменные, реализующий два унитарных набора – следующее состояние автомата и функции выхода.

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

FPGA GATES USING COMBINED VARIABLES CODING

A field-programmable gate array (FPGAs, programmable logic integrated circuits) are widely used in many applications. Currently, advanced FPGAs from leading manufacturers already contain tens of millions of logic elements. However, FPGAs, as universal devices, lose to the corresponding custom-made (ASIC – Application-specific integrated circuit) and semi-custom (ULA – Uncommitted Logic Array) microcircuits in speed and power consumption, winning in cost. Therefore, new approaches are relevant, for example, providing the so-called "hyper-optimization", in which, due to the complication of logic and the use of Shannon's expansion in terms of some finite state machine variables, delays in the feedback loop are reduced. Further development of this principle may lead to the use of the Shannon expansion in more than one variable, and maybe in all, using unitary coding. The aim of the study is to develop and study FPGA logic elements called LUT (Look Up Table) with unitary coding of input variables. The research methodology is based on the scientific apparatus of binary switching functions (logical functions, Boolean functions, functions of the algebra of logic), used in discrete mathematics and mathematical logic. As a result of the study, it is planned to obtain a method for implementing logical functions in the LUT using unitary coding of input variables and providing an increase in the speed of calculating logical functions in the FPGA. The article proposes patentable technical solutions for logic elements with unitary coding of variables and functions that provide the lowest possible delay. Estimates of implementation complexity and delay in the number of transistors are obtained. An example of the implementation of a finite automaton with unitary coding of states, input variables and output functions is considered. A two-coordinate logical element is proposed that uses two unitary sets the state of the automaton and input variables, which implements two unitary sets the next state of the automaton and the output function.

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

2023 Электротехника, информационные технологии, системы управления № 46 Научная статья

DOI: 10.15593/2224-9397/2023.2.04 УДК 004.89

С.Ф. Тюрин1,2, И.А. Васенин1, С.И. Советов1

Пермский национальный исследовательский политехнический университет,

Пермь, Российская Федерация Пермский государственный национальный исследовательский университет, Пермь, Российская Федерация

ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ ПЛИС FPGA НА ОСНОВЕ КОМБИНИРОВАННОГО КОДИРОВАНИЯ ПЕРЕМЕННЫХ

Программируемые логические интегральные схемы (ПЛИС) широко используются во многих областях. В настоящее время «продвинутые» ПЛИС передовых производителей содержат уже десятки миллионов логических элементов. Однако ПЛИС как универсальные устройства проигрывают соответствующим заказным (ASIC - Application-specific integrated circuit) и полузаказным (ULA - Uncommitted Logic Array) микросхемам в быстродействии и потребляемой мощности, выигрывая в стоимости. Поэтому актуальны новые подходы, например, обеспечивающие так называемую «гипер-оптимизацию» ПЛИС, в которой за счет частичного усложнения логики и использования разложения Шеннона по некоторым переменным конечного автомата достигается снижение задержек в цепи обратной связи. Дальнейшее развитие этого принципа может привести к использованию разложения Шеннона более чем по одной переменной, а может, и по всем с использованием унитарного кодирования. Целью исследования является разработка и исследование логических элементов ПЛИС FPGA, называемых LUT (Look Up Table), с использованием унитарного кодирования входных переменных. Методика исследования базируется на научно-методическом аппарате бинарных переключательных функций (логических функций, булевых функций, функций алгебры логики), используемом в дискретной математике и математической логике. В результате исследования планируется получить метод реализации логических функций в LUT с использованием унитарного кодирования входных переменных и обеспечивающий повышение быстродействия вычисления логических функций в ПЛИС. В статье предложены патентоспособные технические решения логических элементов с унитарным кодированием переменных и функций, обеспечивающие минимально возможную задержку. Получены оценки сложности реализации и задержки в количестве транзисторов. Рассмотрен пример реализации конечного автомата с унитарным кодированием состояний, входных переменных и функций выходов. Предложен двухкоординатный логический элемент использующий два унитарных набора - состояние автомата и входные переменные, реализующий два унитарных набора - следующее состояние автомата и функции выхода.

Ключевые слова: логические функции, ПЛИС, LUT, унитарный код.

S.F. Tyurin1'2, I.A. Vasenin1, S.I. Sovetov1

Perm National Research Polytechnic University, Perm, Russian Federation Perm State University, Perm, Russian Federation

FPGA GATES USING COMBINED VARIABLES CODING

A field-programmable gate array (FPGAs, programmable logic integrated circuits) are widely used in many applications. Currently, advanced FPGAs from leading manufacturers already contain tens of millions of logic elements. However, FPGAs, as universal devices, lose to the corresponding custom-made (ASIC - Application-specific integrated circuit) and semi-custom (ULA - Uncommitted Logic Array) microcircuits in speed and power consumption, winning in cost. Therefore, new approaches are relevant, for example, providing the so-called "hyper-optimization", in which, due to the complication of logic and the use of Shannon's expansion in terms of some finite state machine variables, delays in the feedback loop are reduced. Further development of this principle may lead to the use of the Shannon expansion in more than one variable, and maybe in all, using unitary coding. The aim of the study is to develop and study FPGA logic elements called LUT (Look Up Table) with unitary coding of input variables. The research methodology is based on the scientific apparatus of binary switching functions (logical functions, Boolean functions, functions of the algebra of logic), used in discrete mathematics and mathematical logic. As a result of the study, it is planned to obtain a method for implementing logical functions in the LUT using unitary coding of input variables and providing an increase in the speed of calculating logical functions in the FPGA. The article proposes patentable technical solutions for logic elements with unitary coding of variables and functions that provide the lowest possible delay. Estimates of implementation complexity and delay in the number of transistors are obtained. An example of the implementation of a finite automaton with unitary coding of states, input variables and output functions is considered. A two-coordinate logical element is proposed that uses two unitary sets - the state of the automaton and input variables, which implements two unitary sets - the next state of the automaton and the output function.

Keywords: Logic Functions, FPGA, LUT, One-Hot Coding.

Введение

Реализация логических функций в ПЛИС типа FPGA основана на использовании мультиплексора в режиме коммутации констант настройки [1-3], представляющих собой значения из таблицы истинности соответствующей функции. Такое устройство обычно называют LUT (Look Up Table). LUT представляет из себя бинарное дерево передающих транзисторов 2 - 4 - 8 -16... [4-6], но может содержать и 2" ветвей по n транзисторов [7]. Классические логические элементы LUT реализуют (вычисляют) логические функции одной, двух, трёх и четырёх переменных. Это связано с ограничениями на количество последовательно соединенных транзисторов (не более четырех) [8]. Имеются более сложные элементы, называемые адаптивными логическими модулями (АЛМ), которые реализуют любые функции до семи аргументов и некоторые функции до восьми аргументов путем конфигурируемого соединения классических LUT [3, 9]. Несмотря на впечат-

ляющие достижения в области ПЛИС, они остаются универсальными устройствами со всеми соответствующими преимуществами и недостатками, которые требуют особого внимания в области так называемых критических приложений [10-12]. В плане импортозамещения электронной компонентной базы крайне актуальны исследования по совершенствованию отечественных ПЛИС [13]. Заявили о себе и китайские производители ПЛИС [14, 15].

По мере усложнения логики остро встает проблема повышения быстродействия, частично решаемая, например, путем специальных способов проектирования (HyperFlex, Hyper-Registers, Hyper-Retiming и др.), в том числе снижающих задержки в цепях обратных связей через матрицы коммутаций [16, 17]. В частности, используется разложение Шеннона (Shannon decomposition or Boolean factorization) для создания, например, двух вариантов логической функции для двух значений состояния триггера, которое коммутирует выходы логических элементов, реализующих эти два варианта функций. При этом используется «рядом стоящий» LUT на одну переменную, а переменная состояния не проходит матрицы коммутации, за счет чего достигается повышение быстродействия, хотя и увеличиваются затраты в количестве логических элементов. По сути, используются заранее вычисленные значения логических функций для двух разных значений состояний. Дальнейшее развитие этого подхода приводит к необходимости использования унитарного кода (в англоязычной литературе unitary code, one-hot, one-cold) для более чем одного триггера и более чем двух вариантов логических функций от входных переменных. Однако это приводит к увеличению аппаратных затрат, что вызывает необходимость нахождения «золотой» середины между унитарным и позиционным бинарным кодом.

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

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

1. Разработка математических моделей и электрических функциональных схем логических элементов ПЛИС с использованием уни-

тарного кодирования входных переменных и одной выходной функции, системы функций;

2. Рассмотрение примера реализации системы функций при унитарном кодировании входных переменных и системы;

3. Разработка метода реализации логических функций автоматов в ПЛИС типа FPGA с использованием унитарного кодирования;

4. Оценка сложности реализации логических функций в ПЛИС типа FPGA с использованием унитарного кодирования входных переменных.

1. Разработка математических моделей логических элементов LUT ПЛИС типа FPGA с использованием позиционного и унитарного кодирования

1.1. Известный элемент LUT с позиционным кодированием

Реализация логических функций в ПЛИС типа FPGA в LUT [2] основана на вычислении значения одной функции z от n аргументов xh заданной в совершенной дизъюнктивной нормальной форме (СДНФ):

где a(i j) - показатель инверсирования соответвующей СДНФ, равный 1 - в[/(j)], где в[г(j)] - бинарное представление i-го разряда числа j; djG{0,1} - конфигурационный бит, значение функции в соответствующей строке таблицы истинности функции z.

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

В таком случае (1) реализуется либо параллельным соединением 2" цепочек из n передающих транзисторов (2) (одноуровневым 2" деревом с 2" ветвей по n транзисторов, (v*) - корень дерева, реализующий операцию монтажного ИЛИ (wired OR):

входных переменных

2"—\ ( п

\

z(d0...d xn...xl)= v &xa(,'J)d. , z 1 ./

(1)

d п х, 2-1 1 ■•хп

d п х, 2-2 1 . . Хп

z(d0...d2„_xn...xi) = •(v.), (2)

• Хп

d0x i. ♦ Хп

либо с целью уменьшения количества транзисторов и-уровневым бинарным деревом транзисторов:

z(d0...dr_xn...x1) =

d0x i

dx

Xn-i _

Xn

... X„ -

Xn

Xn-i

d2"-2 X

d2„ - X

(v).

(3)

Старшей переменной в (3) и соответствуют два транзистора, младшей -2и. В связи с ограничениями Мида-Конвей [8] на число последовательно соединенных передающих МОП транзисторов (<=4) используют как базовые деревья для и = 1,2,3:

d0 xi !

z(dodixi) = ~~ \ (v*);

dixi J z(d0...d3x2xi) =

d0 x 11 dx ! _

X2

dxi ! dx !

(v*);

z(d q ...dyX^X2Xj ) — _

dx

d x —

—— X2

dx x2

diXi Хз

d4 xi x3

d5 x X2

d6Xi x2

dx

<v.). (4)

LUT на одну переменную используется и для объединения, например, LUT на две и три переменные, а также и как инвертор

( z(i 0xx ) — xi ), и как повторитель z(0 ixx ) — x в случае необходимости

трассировки через него некоторой связи.

Из этих деревьев строят деревья для реализации функций для n = 4, а в последние годы и для n = 5,6,7... в так называемых адаптивных логических модулях (АЛМ) [3, 16, 17]. В этом случае в промежуточных деревьях вместо настройки d. указываются связи c . Кроме

того, с целью восстановления уровня сигнала используют так называемые восстановители v (в простейших случаях это инверторы, NOT Gates) по входам настройки или коммутации и по выходам функции, например, LUT на четыре переменные будет представлять собой выражение (5). В (5) v - это функции повторения, восстановители, поскольку их нечетное число в цепочках (три), поэтому настройка функции инверсная, настройка LUT на одну переменную не используется (такое устройство называется просто мультиплексором 2-1). Например, в [16] описана так называемая декомпозиция полного двоичного сумматора, использующего двухвходовые LUT и мультиплексоры 2-1, в этом случае получаем для одной из функций выражение (6).

d ov40 xi

d iv41x1 -

--T X2

d 2v4.2 xi x

d 3V4.3 xi x3

d 4v44 xi

d 5V4.5 x1 x2 d6V4.6 xi — d 7V4.7 x1

d 8V4 8 xi

d 9V4 9 xi — -.- x2

(V«)V2

d ioV,

xi

d iiv4 iixi

d i2V4

x3

d 13v4.I3 xi —2

xi x3 x2

d i4V4 i4 xi

d i5V4 i5 xi

(v»)v3

x4

(v»)vi.

(5)

3

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

4

2

d0X\

~LA x 2

x,

d2Xi

dQXi

(V.)

1 1 X 2

x

(V.)

X3

X,

■(V.).

(6)

d2Хl

В (6) и далее для упрощения выражений не указаны функции восстановителей, но они подразумеваются.

1.2. Элемент ЬиТис, использующий унитарное кодирование входных переменных

При использовании унитарного кодирования входных переменных для вычисления логических функций получаем (7) вместо (1):

z(d2n _2... d0X2n _r. X0) = V0 (X • d ).

(7)

В этом случае дерево будет иметь вид (2) с учетом только одной переменной в ветви:

>

>

n

d2 -1X 2П -1

d2-2 X2n-2 >(V.), (8)

z(d2n_r...d0x2ni...x0)= ....

dx

d0 X0

где х ^.. .х() - например, «прямой» унитарный код (всегда одна еди-

ница в наборе, one-hot), что уменьшает путь сигнала в количестве транзисторов от конфигурационной памяти, хранящей константы, на

выход в п раз, но и увеличивает длину набора переменных х п .

в 2п1п раз по сравнению с набором хп...х0.

Кроме того, выходная функция г не закодирована унитарным ко-

дом. Если учесть и это, то аппаратные затраты еще более увеличатся.

В настоящее время унитарный код используется в коммутаторах связей [2], в таком случае в выражениях (7), (8) ф - соответствующая связь в матрице глобальной или локальной коммутации. Но для коммутации связей также используется и позиционный код (2) с тем же уточнением.

Выражение (8) описывает вычисление одной функции, представ-

ленной в позиционном коде. Для получения унитарного коды функции г(с1 ,...с10х ^.. .л;0)можно, конечно, просто выполнить отрицание и

получить г(с1 ....(¡рс . ..л;0), но дополнительное выражение (8) по-

зволяет осуществлять контроль достоверности вычислений значения функции, например, путем сложения по модулю двух её значений, что важно при диагностике ПЛИС, например, с использованием подходов, описанных в [18, 19].

Аналогично можно вычислить систему т различных функций, допустим/ от одних и тех же переменных х п ...х0 в позиционном

коде, используя т копий входных переменных:

й . х ,

/,.2"-1 1.2"-1

й , х , /1.2"-2 1.2"-2

й/1.1Х1.1 й/, .0Х1.0

й , х ,

/т .2"-1 т.2"-1

й , х ,

/т .2" - 2 т.2" - 2

й/т 1Хт1 й/т.0 Хт.0

(V). (9)

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

й , х , Щ.Г -1 1.2" -1 й К .2" -1хт.2 "-1

й , х , ¥й.2 -2 1.2"-2 й " Кт .2" 2 -1 -2 Хт.2"-2

...х0) =

йК0.Л.1 й¥ 2т- .1хт.1

йК0. 0 \ 0 2т - .0 хт0

■М.(Ю)

Для снижения длины унитарного кода предлагается двухкоорди-натное вычисление системы m функций F и h функций G в унитарном коде по двум позиционным входным векторам x, y размерности соот-ветстственно, например, q и r.

Получаем q*r бит слова вместо 2q+r, однако это несколько увеличивает задержку за счет использования двух переменных x, y.

1.3. Комбинированный LUT

По сути, обычный LUT (2), (3) также использует унитарные коды, но отдельно по каждой переменной (с учетом наличия входных инверторов). Расширение такого представления позволяет получить унитарный LUT по всем переменным. Но можно «сделать и шаг назад», рассматривая LUT с унитарными кодами по группам переменных, например, получим две группы по две переменные.

dg х20 d1X2.1 d2 Х2.2

z({dQ...di5}[х2.зX2.2X2.1X2.0][X1.3X1.2Х1.1Х1.0]) _

"4.0

l.l

1.2

(v).

(11)

d12 Х2.0 (1.13 Х2.1 d14 Х2.2 d15 Х2.2

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

С

1.3

и вычислять логическую функцию девяти переменных на унитарном дереве с тремя уровнями (12). Еще один вариант - комбинирование унитарного и обычного LUT, например, на две переменных ba(13).

d2 Сз.2

z({dQ...d511}[ X3.7 ...X3.2 X3.1X3.o]...[ С1.7 ....С1.2 Х1.1Х1.о])

d X

d505 x3.0

d X d509 x3.5

d X

d 510 x3.6

d X d511x3.7 J

(V).

(12)

d x

d0 x2.0

d3x2.3

z( {dQ ...d15 } [ x2.3x2.2 x2.1x2.0 ][ba]) =

d x

d12 x2.0

d x 1^2.1

d x d14 x2.2

d x d15 x2.2

"(V).

(13)

3.0

x

1.0

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

x

1.1

x

1.2

x

1.3

x

1.4

x

1.5

x

1.6

x

1.7 j

2. Разработка схем электрических функциональных логических элементов ПЛИС FPGA с использованием унитарного кодирования

Предлагаемый LUT на основе унитарного кода n переменных для одной функции в позиционном коде изображен на рис. 1, а. Такой элемент достаточно просто масштабируется для вычисления нескольких функций от одних и тех же переменных (рис. 1, б).

а б

Рис. 1. LUT на основе унитарного кода: а - для вычисления одной функции; б - для вычисления m функций

а б

Рис. 2. ЛУТ с унитарным кодированием входной переменной и функции/ а - на одну переменную; б - на две переменные

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

Рис. 3. ЛУТ с унитарным кодированием входных переменных и функций: а - на две входных переменных и две функции; б - на три входных переменных и три функции; в - на п входных переменных и п функций

в

Можно также удалить вторые входы конфигурации, соединяя выходы первой группы инверторов с нижним деревом. Для реализации системы функций из т функций необходимо уже 2т -1 дополнительных подсхем. Предлагаемый ЛУТ с унитарным кодированием входных переменных и функций представлен на рис. 3.

3. Разработка метода реализации логических функций автоматов в ПЛИС типа FPGA с использованием комбинированного кодирования

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

Рассмотрим пример комбинированного кодирования. Пусть задан автомат-распознаватель последовательности 0132 с учетом допустимости только соседних наборов. При получении заданной последовательности формируется 2\ = 1, при любом нарушении = 1. Функции переходов-выходов автомата приведена в (табл. 1).

Таблица 1

Таблица переходов-выходов автомата-распознавателя последовательности 0132 с позиционным бинарным кодированием состояний

Код состояния Входной набор ab Функции переходов и выходов

>"2 >1 (t) 00 01 11 10

00 00 00 01 00 ~ 00 10

01 11 10 01 00 11 00 ~

11 11 11 11 11 >2 V, (t + 1)

10 10 00 01 Z2Z1

При таком кодировании используются четыре классических LUT по числу функций размерностью четыре (на четыре переменные).

у2Ц + 1)^.

У^+ЦЛ'"" л(!+1).

■ 4у, (,+1)15 У2 У1аЬ) =

¿у г (,+1)15 У2 У1аЬ 4У2(,+1).14 У2 У1аЬ

¿У2(,+1).1 У 2 У1аЬ

¿й(,+1).0 У 2 У1аЬ

.15 У2 У1аЬ

<.14 У2 У1аЬ

<«+1)15 У2 У1аЬ <«+1).14 У2 У1аЬ

V.; У!^ + 1)(4У (,+1).0.. . 4 (,+1). 15У2У1аЬ)

<«+1).1 У 2 У1аЬ <«+1).0 У 2 У1аЬ

21(<,0-<,.15 У2 У1аЬ) =

<лУ 2 У1аЬ <0 У 2 У1аЬ

<.15 У2 У1аЬ <.14 У2 У1аЬ

22(<0. . < 15 У2 У1аЬ)~~

<.1У 2 У1аЬ <.0 У 2 У1аЬ

(14)

Унитарное кодирование четырех функций от четырех переменных требует 16 бит входного вектора и столько же бит выходного. Выполним унитарное кодирование отдельно по строкам и по столбцам. Для этого необходимо 8 бит (поскольку у нас три строки, используем 7 бит, третью строку табл. 1 будем считать закодированной позиционным кодом 10). Получим табл. 2.

Таблица 2

Таблица переходов-выходов автомата-распознавателя последовательности 0132 с соответствующим унитарным кодированием отдельно по строкам и по столбцам

Код состояния Входной набор унитарный Функции переходов

унитарный Х3 Х2 Х1 Х0 и выходов унитарные

>"2 >"1 У0 (?) 0001 0010 1000 0100

001 001 010 001

001 001 100

010 100 100 010 001 100 001 ~

100 100 100 100 100 >2 >1 >0 (/ + 1)

100 100 001 010 г22\20

Предлагается использовать двухкоординатный унитарный вычислитель системы логических функций для реализации автомата 0132 (рис. 4). Таким образом, уменьшается длина слова с 22 2 до 3+4, но быстродействие несколько ухудшается: теперь в цепи не один коммутирующий транзистор, а два. Аналогично можно построить координатное устройство 5, 4=<5>=2, что опять-таки связано с ограничениями Мида-Конвей [8].

Рис. 4. Двухкоординатный унитарный вычислитель системы логических функций, соответствующих табл. 1; указаны функции только выделенных клеток

С целью еще большего уменьшения длины слова комбинируем унитарный код по строкам (по состояниям) с позиционным по столбцам (по входным переменным). Для нашего примера получим 5 бит. В этом случае для вычислений придётся использовать классические LUT, выбираемые унитарным кодом строк, при этом размерность их уменьшается до двух (табл. 3).

Таблица 3

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

Код состояния унитарный Входной набор ab Функции переходов и выходов

>"2 >1 Уо (t) 00 01 11 10

001 001 00 010 00 ~ 001 10

010 100 10 010 00 100 00 ~

100 100 10 100 10 100 00 100 01 >2 >1 >0 (t + 1) Z2Z1

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

Рис. 5. Пример комбинированного LUT, первый уровень - обычный LUT для переменных ab

4. Оценка эффективности предложенного метода реализации логических функций в ПЛИС типа FPGA в количестве транзисторов

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

LUT с унитарным кодированием проигрывает по сложности обычному (рис. 6).

Но зато имеется выигрыш в задержке, как уже указывалось, в n раз. При реализации системы из m функций получаем выигрыш в сложности (рис. 7).

L(n) Lohn)

Рис. 6. Обычный LUT имеет сложность меньше унитарного LUToh при реализации одной функции

L1(n,m) Loh1(n, m)

L1(n,m) Loh1(n,m) 4

б

Рис. 7. Реализация системы из m функций при унитарном их кодировании в обычном LUT, которая также сложнее, чем в унитарном LUToh: а - при m = 4; б - при m = 8

3 00

100

4

n

а

Выигрыш при реализации систем функций будет еще больше, если учитывать затраты на декомпозицию дерева транзисторов при построении LUT для большого числа переменных. Эффективность комбинированного LUT доказывается следующими графиками (рис. 8).

1.5x10"

L1(n)

Loh1(n) 1x10"

LohComb2(n)

L1(k)

5 00

L1(n) Loh1(n) LohComb2(n) L1(k)

7

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

10

б

а

L1(n) Loh1(n) LohComb2(n) L1(k)

1.5x10

L1(n)

Loh1(n) 1x103

LohComb2(n)

L1(k)

500

7

10

в

г

L1(n)

Loh1(n)

LohComb^n)

L1(k)

L1(n) Lo h1(n) LohComb2(n) L1(k)

д е

Рис. 8. Реализация комбинированного LUT: а, б - n1 = к = 2; в, г, д, е - n1 = к = 3

1.5x10

10

5. Результаты исследования

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

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

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

Предложенный кобинированный LUT по числе транзисторов даже лучше обычного LUT при значительном снижении задержки.

Дальнейшие исследования целесообразно направить на получение уточненных оценок при анализе результатов схемотехнического моделирования Multisim фирмы National Instruments [20] и топологий разработанных устройств с использованием САПР Microwind [21].

Заключение

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

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

Анализ показателей сложности разработанных устройств подтверждает эффективность использования для реализации логических функций в ПЛИС FPGA.

Библиографический список

1. Угрюмов Е.П. Цифровая схемотехника: учеб. пособие. -3-е изд., перераб. и доп. - СПб.: БХВ-Петербург, 2010. - 782 с.

2. Строгонов А., Цыбин С. Программируемая коммутация ПЛИС: взгляд изнутри [Электронный ресурс]. - URL: http://www.kit-e.m/artides/plis/2010_n_56.php (дата обращения: 17.11.2022).

3. Intel® FPGAs and SoC FPGAs [Электронный ресурс]. - URL: https://www.intel.in/content/www/in/en/products/details/fpga.html (дата обращения: 17.11.2022).

4. Vikhorev R. Universal logic cells to implement systems functions // Conference of Russian Young Researchers in Electrical and Electronic Engineering. IEEE, 2016. - P. 404-406. DOI: 10.1109/EIConRusNW.2016.7448197

5. Vikhorev R. Improved FPGA logic elements and their simulation // Conference of Russian Young Researchers in Electrical and Electronic Engineering. IEEE, 2018. - P. 275-280. DOI: 10.1109/EIConRus.2018.8317080

6. Skornyakova A.Yu., Vikhorev R.V. Self-timed LUT layout simulation // Conference of Russian Young Researchers in Electrical and Electronic Engineering. IEEE, 2020. - P. 176-179. DOI: 10.1109/EIConRus49466.2020.9039374

7. Monther Abusultan, Sunil P. Khatri. A comparison of FinFET based FPGA LUT Texas A&M University, College Station, TX, USA [Электронный ресурс]. - Published in ACM Great Lakes Symposium on VLSI 2014. DOI: 10.1145/2591513.2591596. - URL: Designshttps://dl.acm.org/cita-tion.cfm?doid=2591513.2591596 (дата обращения: 18.11.2022).

8. Mead C.A., Conway L. Introduction to VLSI Systems [Электронный ресурс]. - URL: https://www.researchgate.net/publication/234388249 _Introduction_to_VLSI_systems (дата обращения: 18.11.2022).

9. Intel® Stratix® 10 Logic Array Blocks and Adaptive Logic Modules [Электронный ресурс]. - URL: User Guidefile:///C:/Users/%D0%9F% D0%BE%D0%BB%D 1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D 1% 82%D0%B5%D0%BB%D 1 %8C/Downloads/ug-s10-lab-683699-666917.pdf (дата обращения: 18.11.2022).

10. Checkability Important for Fail-Safety of FPGA-based Components in Critical Systems / O. Drozd, O. Ivanova, K. Zashcholkin [et al.] // Intelligent Information Technologies & Systems of Information Security (IntelITSIS) 2021: International, 24-26 March 2021: proceedings. -Khmelnytskyi, Ukraine: IEEE, 2021. - P. 471-480.

11. Hidden fault analysis of FPGA projects for critical applications / O. Drozd, I. Perebeinos, O. Martynyuk, K. Zashcholkin, O. Ivanova, M. Drozd // IEEE International Conference TCSET. - 2020. - Paper 142, Lviv-Slavsko, Ukraine. DOI: 10.1109/TCSET49122.2020.235591

12. Строганов А., Городков П. Современные тенденции развития ПЛИС: от системной интеграции к искусственному интеллекту // Электроника: Наука, технология, бизнес. - 2020. - № 4 (195). - С. 46-56.

13. Арбузов И., Строгонов А., Городков П. Пример разработки проекта в базисе ПЛИС 5578ТС024 // Компоненты и технологии. -2019. - № 7 (216). - С. 66-69.

14. Строгонов А., Городков П. Обзор ПЛИС китайских производителей [Электронный ресурс]. - URL: https://www.elibrary.ru/ download/elibrary_48565021_33092934.pdf (дата обращения: 17.11.2022).

15. Строгонов А., Городков П. ПЛИС компании Guangdong Gowin Semiconductor Corporation // Компоненты и технологии. - 2020. -№ 1 (222). - С. 84-86.

16. Тюрин С.Ф., Чудинов М.А. FPGA LUT с двумя выходами декомпозиции по Шеннону // Вестник Пермского национального исследовательского политехнического университета. Электротехника, информационные технологии, системы управления. - 2019. - № 29. - С. 136-147.

17. Тюрин С.Ф. Особенности архитектуры Гиперфлекс // Вестник Воронеж. гос. ун-та. Сер. Системный анализ и информационные технологии. - 2018. - № 1. - С. 56-62.

18. Данилова Е.Ю. Диагностирование логики ПЛИС с новыми элементами // Вестник Пермского национального исследовательского политехнического университета. Электротехника, информационные технологии, системы управления. - 2019. - № 31. - С. 35-50.

19. Danilova E.Y. FPGAs logic checking method by genetic algorithms // Proceedings of the 2020 IEEE. Conference of Russian Young Researchers in Electrical and Electronic Engineering, EIConRus 2020. - 2020. -P.1787-1790.

20. National Instruments. Multisim [Электронный ресурс]. - URL: http://www.ni.com/multisim/

21. Microwind & Dsch Version 3.5 [Электронный ресурс]. - URL: https://www.yumpu.com/en/document/view/40386405/microwind-manual-lite-v35pdf-moodle

22. Tyurin S.F. LUT's sliding backup // IEEE transactions on device and materials reliability. - 2019. - Vol. 19. - P. 221-225. DOI: 10.1109/TDMR.2019.2898724

23. Tyurin S.F. Green logic: green LUT FPGA concepts, models and evaluations // Green IT Engineering: Components, Networks and Systems Implementation. - 2017. - Vol. 105. - P. 241-261. DOI: 10.1007/978-3319-55595-9

References

1. Ugriumov E.P. Tsifrovaia skhemotekhnika [Digital circuitry]. 3nd ed. Saint Petersburg: BKhV-Peterburg, 2010, 782 p.

2. Strogonov A., Tsybin S. Programmiruemaia kommutatsiia PLIS: vzgliad iznutri [Programmable switching FPGA: an inside look], available at: http://www.kit-e.ru/articles/plis/2010_11_56.php (accessed 17 November 2022).

3. Intel® FPGAs and SoC FPGAs, available at: https://www.intel.in/content/www/in/en/products/details/fpga.html (accessed 17 November 2022).

4. Vikhorev R. Universal logic cells to implement systems functions. Conference of Russian Young Researchers in Electrical and Electronic Engineering. IEEE, 2016, pp. 404-406. DOI: 10.1109/EIConRusNW.2016.7448197

5. Vikhorev R. Improved FPGA logic elements and their simulation. Conference of Russian Young Researchers in Electrical and Electronic Engineering. IEEE, 2018, pp. 275-280. DOI: 10.1109/EIConRus.2018.8317080

6. Skornyakova A.Yu., Vikhorev R.V. Self-timed LUT layout simulation. Conference of Russian Young Researchers in Electrical and Electronic Engineering. IEEE, 2020, pp. 176-179. DOI: 10.1109/EIConRus49466.2020.9039374

7. Monther Abusultan, Sunil P. Khatri. A comparison of FinFET based FPGA LUT Texas A&M University, College Station, TX, USA. Published in ACM Great Lakes Symposium on VLSI 2014. DOI: 10.1145/2591513. 2591596, available at: Designshttps://dl.acm.org/citation.cfm?doid=2591513. 2591596 (accessed 18 November 2022).

8. Mead C.A., Conway L. Introduction to VLSI Systems, available at: https://www.researchgate.net/publication/234388249_Introduction_to_VLSI _systems (accessed 18 November 2022).

9. Intel® Stratix® 10 Logic Array Blocks and Adaptive Logic Modules [Электронный ресурс], available at: User Guidefile:///C:/Users/% D0%9F%D0%BE%D0%BB%D 1 %8C%D0%B7%D0%BE%D0%B2%D0% B0%D1%82%D0%B5%D0%BB%D1%8C/Downloads/ug-s10-lab-683699-666917.pdf (accessed 18 November 2022).

10. Drozd O., Ivanova O., Zashcholkin K. et al. Checkability Important for Fail-Safety of FPGA-based Components in Critical Systems. Intelligent Information Technologies & Systems of Information Security (IntelITSIS) 2021: International, 24-26 March 2021: proceedings. Khmelnytskyi, Ukraine. IEEE, 2021, pp. 471-480.

11. Drozd O., Perebeinos I., Martynyuk O., Zashcholkin K., Ivanova O., Drozd M. Hidden fault analysis of FPGA projects for critical applications. IEEE International Conference TCSET. - 2020. Paper 142, Lviv-Slavsko, Ukraine. DOI: 10.1109/TCSET49122.2020.235591

12. Strogonov A., Gorodkov P. Sovremennye tendentsii razvitiia PLIS: ot sistemnoi integratsii k iskusstvennomu intellektu [Modern trends in FPGA development: from system integration to artificial intelligence]. Elektronika: Nauka, tekhnologiia, biznes, 2020, no. 4 (195), pp. 46-56.

13. Arbuzov I., Strogonov A., Gorodkov P. Primer razrabotki proekta v bazise PLIS 5578TS024 [An example of project development based on FPGA 5578TS024]. Komponenty i tekhnologii, 2019, no. 7 (216), pp. 66-69.

14. Strogonov A., Gorodkov P. Obzor PLIS kitaiskikh proizvoditelei [Review of FPGAs from Chinese manufacturers], available at: https://www.elibrary.ru/download/elibrary_48565021_33092934.pdf (accessed 17 November 2022).

15. Strogonov A., Gorodkov P. PLIS kompanii Guangdong Gowin Semiconductor Corporation [Guangdong Gowin Semiconductor Corporation's FPGA]. Komponenty i tekhnologii, 2020, no. 1 (222), pp. 84-86.

16. Tiurin S.F., Chudinov M.A. FPGA LUT s dvumia vykhodami dekompozitsii po Shennonu [FPGA LUT with two Shannon decomposition outputs]. Vestnik Permskogo natsional'nogo issledovatel'skogo politekh-nicheskogo universiteta. Elektrotekhnika, informatsionnye tekhnologii, sistemy upravleniia, 2019, no. 29, pp. 136-147.

17. Tiurin S.F. Osobennosti arkhitektury Giperfleks [https://translate.google.ru/?sl=ru&tl=en&text=%D0%9E%D1%81%D0%B E%D0%B 1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D 1 %82% D0%B8%20%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D 0%BA%D1%82%D1%83%D1%80%D1%8B%20%D0%93%D0%B8%D0 %BF%D0%B5%D1%80%D1%84%D0%BB%D0%B5%D0%BA%D1 %81 &op=translate#:~:text=Features%20of%20the%20Hyperflex%20architectur e]. Vestnik Voronezhskogo gosudarstvennogo universiteta. Sistemnyi analiz i informatsionnye tekhnologii, 2018, no. 1, pp. 56-62.

18. Danilova E.Iu. Diagnostirovanie logiki PLIS s novymi elementami [Diagnosing FPGA logic with new elements]. Vestnik Permskogo natsional'nogo issledovatel'skogo politekhnicheskogo universiteta. Elektrotekh-nika, informatsionnye tekhnologii, sistemy upravleniia, 2019, no. 31, pp. 35-50.

19. Danilova E.Y. FPGAs logic checking method by genetic algorithms. Proceedings of the 2020 IEEE. Conference of Russian Young Researchers in Electrical and Electronic Engineering, EIConRus 2020, 2020, pp. 1787-1790.

20. National Instruments. Multisim, available at: http: //www .ni.com/multisim/

21. Microwind & Dsch Version 3.5, available at: https://www.yumpu.com/en/document/view/40386405/microwind-manual-lite-v35pdf-moodle

22. Tyurin S.F. LUT's sliding backup. IEEE transactions on device and materials reliability, 2019, vol. 19, pp. 221-225. DOI: 10.1109/TDMR.2019.2898724

23. Tyurin S.F. Green logic: green LUT FPGA concepts, models and evaluations. Green IT Engineering: Components, Networks and Systems Implementation, 2017, vol. 105, pp. 241-261. DOI: 10.1007/978-3-319-55595-9

Сведения об авторах

Тюрин Сергей Феофентович (Пермь, Российская Федерация) - заслуженный изобретатель Российской Федерации, доктор технических наук, профессор кафедры «Автоматика и телемеханика» Пермского национального исследовательского политехнического университета (614990, Пермь, Комсомольский пр., 29, e-mail: tyurinsergfeo@yandex.ru); профессор кафедры «Математическое обеспечение вычислительных систем» Пермского государственного национального исследовательского университета (614990, Пермь, ул. Букирева, 15).

Васенин Иван Андреевич (Пермь, Российская Федерация) - аспирант кафедры «Автоматика и телемеханика» Пермского национального исследовательского политехнического университета (614990, Пермь, Комсомольский пр., 29, e-mail: Vasenin.Ioann@yandex.ru).

Советов Станислав Игоревич (Пермь, Российская Федерация) -аспирант кафедры «Автоматика и телемеханика» Пермского национального исследовательского политехнического университета (614990, Пермь, Комсомольский пр., 29, e-mail: fizikoz@gmail.com).

About the authors

Sergey F. Tyurin (Perm, Russian Federation) - Honored Inventor of the Russian Federation, Doctor of Technical Sciences, Professor at the Department of Automation and Telemechanics Perm National Research Polytechnic University (614990, Perm, 29, Komsomolsky pr., e-mail: tyurinsergfeo@yandex.ru), Professor at the Department of Software Computing Systems Perm State University (614990, Perm, 15, Bukireva str.).

Ivan A. Vasenin (Perm, Russian Federation) - Graduate Student of the Department of Automation and Telemechanics Perm National Research Polytechnic University (614990, Perm, 29, Komsomolsky pr., e-mail: Vasenin. Ioann@yandex .ru).

Stanislav I. Sovetov (Perm, Russian Federation) - Graduate Student of the Department of Automation and Telemechanics Perm National Research Polytechnic University (614990, Perm, 29, Komsomolsky pr., e-mail: fizikoz@gmail.com).

Поступила: 04.05.2023. Одобрена: 21.05.2023. Принята к публикации: 01.09.2023.

Финансирование. Исследование не имело спонсорской поддержки.

Конфликт интересов. Авторы заявляют об отсутствии конфликта интересов по отношению к статье.

Вклад авторов. Все авторы сделали равноценный вклад в подготовку статьи.

Просьба ссылаться на эту статью в русскоязычных источниках следующим образом:

Тюрин, С.Ф. Логические элементы ПЛИС FPGA на основе комбинированного кодирования переменных / С.Ф. Тюрин, И.А. Васенин, С.И. Советов // Вестник Пермского национального исследовательского политехнического университета. Электротехника, информационные технологии, системы управления. - 2023. - № 46. -С. 83-107. DOI: 10.15593/2224-9397/2023.2.04

Please cite this article in English as:

Tyurin S.F., Vasenin I.A., Sovetov S.I. FPGA gates using combined variables coding.

Perm National Research Polytechnic University Bulletin. Electrotechnics, information technologies, control systems, 2023, no. 46, pp. 83-107. DOI: 10.15593/2224-9397/2023.2.04

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