Научная статья на тему 'ЛОГИЧЕСКИЙ ЭЛЕМЕНТ ПЛИС FPGA, РЕАЛИЗУЮЩИЙ ФУНКЦИЮ И ДЕШИФРАЦИЮ НАБОРА ПЕРЕМЕННЫХ'

ЛОГИЧЕСКИЙ ЭЛЕМЕНТ ПЛИС FPGA, РЕАЛИЗУЮЩИЙ ФУНКЦИЮ И ДЕШИФРАЦИЮ НАБОРА ПЕРЕМЕННЫХ Текст научной статьи по специальности «Математика»

CC BY
17
1
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
логические функции / ПЛИС / LUT / дешифрация набора переменных / Logic Functions / FPGA / LUT / Decoding a Set of Variables

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

Программируемые логические интегральные схемы (ПЛИС) с 80-х гг. ХХ в. активно используются при проектировании цифровой аппаратуры. Программируемая, то есть «гибкая» логика ПЛИС, занимает «золотую середину» между полностью программной реализацией в процессорах, контроллерах, микроконтроллерах и заказной, «жесткой» логикой (ASIC – Applicationspecific integrated circuit). Полузаказные микросхемы, базовые матричные кристаллы, БМК (ULA – Uncommitted Logic Array) могут конфигурироваться только в заводских условиях. Несмотря на впечатляющие успехи, «нет предела совершенству» ПЛИС, поэтому по-прежнему актуальны новые подходы, например, в направлении увеличения разрядности логического элемента ПЛИС FPGA (Field-Programmable Gate Array), который называется LUT (Look Up Table), расширение функциональных возможностей. LUT вычисляет только одну логическую функцию для заданной конфигурации, поэтому, например, для реализации дешифратора набора n переменных требуется два в степени n таких LUT. В то же время такая дешифрация реализуется неявно, без выдачи результата, выдается только значение истинности дизъюнкции заданных конъюнкций n переменных. Целью исследования являются разработка и исследование предлагаемого логического элемента LUT, реализующего заданную логическую функцию и дешифрацию набора переменных. Методика исследования базируется на научно-методическом аппарате дискретной математики, математической логики и цифровой схемотехники. В результате исследования планируется получить метод реализации логических функций в LUT с дешифрацией набора переменных. В статье предложены патентоспособные технические решения логических элементов LUT, реализующих заданную логическую функцию и дешифрацию набора переменных одновременно. Рассмотрены примеры конкретной реализации с наращиванием разрядности. Излагаются результаты схемотехнического моделирования, оценки сложности реализации и временной задержки в количестве транзисторов.

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

FPGA LUT IMPLEMENTING A LOGIC FUNCTION AND DECODING A SET OF VARIABLES SIMULTANEOUSLY

Programmable logic integrated circuits (FPGAs – Field-Programmable Gate Array) have been actively used in the design of digital equipment since the 1980s. Programmable, that is, "flexible" FPGA logic occupies the "golden mean" between a fully software implementation in processors, controllers, microcontrollers and custom, "hard" logic (ASIC Application-specific integrated circuit). Semi-custom microcircuits, ULA – Uncommitted Logic Array, can only be configured in the factory. Despite the impressive successes, “there is no limit to perfection” of FPGAs, therefore, new approaches are still relevant, for example, in the direction of increasing the number of variables of the FPGA logic element, which is called LUT (Look Up Table), expanding functionality. The LUT computes only one boolean function for a given configuration, so, for example, to implement a decoder for a set of n variables, two to the power of n such LUTs are required. At the same time, such a decoding is implemented implicitly, without issuing a result, only the truth value of the disjunction of the given conjunctions of n variables is given. The aim of the study is to develop and analyze the proposed logical element LUT, which implements a given logical function and decrypts a set of variables at the same time. The research methodology is based on the scientific and methodological apparatus of discrete mathematics, mathematical logic and digital circuitry. As a result of the study, it is planned to obtain a method for implementing logical functions in the LUT with simultaneous decoding of a set of variables. The article proposes patentable technical solutions for logical LUT elements that implement a given logical function and decipher a set of variables at the same time. The results of circuit simulation, evaluation of implementation complexity and time delay in the number of transistors are presented. Examples of a specific implementation with increasing bit depth are considered. The results of circuit simulation, evaluation of implementation complexity and time delay in the number of transistors are presented

Текст научной работы на тему «ЛОГИЧЕСКИЙ ЭЛЕМЕНТ ПЛИС FPGA, РЕАЛИЗУЮЩИЙ ФУНКЦИЮ И ДЕШИФРАЦИЮ НАБОРА ПЕРЕМЕННЫХ»

ВЕСТНИК ПНИПУ

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

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

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

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

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

ЛОГИЧЕСКИЙ ЭЛЕМЕНТ ПЛИС FPGA, РЕАЛИЗУЮЩИЙ ФУНКЦИЮ И ДЕШИФРАЦИЮ НАБОРА ПЕРЕМЕННЫХ

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

Ключевые слова: логические функции, ПЛИС, LUT, дешифрация набора переменных.

S.F. Tyurin1,2, S.I. Sovetov1

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

FPGA LUT IMPLEMENTING A LOGIC FUNCTION AND DECODING A SET OF VARIABLES SIMULTANEOUSLY

Programmable logic integrated circuits (FPGAs - Field-Programmable Gate Array) have been actively used in the design of digital equipment since the 1980s. Programmable, that is, "flexible" FPGA logic occupies the "golden mean" between a fully software implementation in processors, controllers, microcontrollers and custom, "hard" logic (ASIC - Application-specific integrated circuit). Semi-custom microcircuits, ULA - Uncommitted Logic Array, can only be configured in the factory. Despite the impressive successes, "there is no limit to perfection" of FPGAs, therefore, new approaches are still relevant, for example, in the direction of increasing the number of variables of the FPGA logic element, which is called LUT (Look Up Table), expanding functionality. The LUT computes only one boolean function for a given configuration, so, for example, to implement a decoder for a set of n variables, two to the power of n such LUTs are required. At the same time, such a decoding is implemented implicitly, without issuing a result, only the truth value of the disjunction of the given conjunctions of n variables is given. The aim of the study is to develop and analyze the proposed logical element LUT, which implements a given logical function and decrypts a set of variables at the same time. The research methodology is based on the scientific and methodological apparatus of discrete mathematics, mathematical logic and digital circuitry. As a result of the study, it is planned to obtain a method for implementing logical functions in the LUT with simultaneous decoding of a set of variables. The article proposes patentable technical solutions for logical LUT elements that implement a given logical function and decipher a set of variables at the same time. The results of circuit simulation, evaluation of implementation complexity and time delay in the number of transistors are presented. Examples of a specific implementation with increasing bit depth are considered. The results of circuit simulation, evaluation of implementation complexity and time delay in the number of transistors are presented.

Keywords: Logic Functions, FPGA, LUT, Decoding a Set of Variables.

Введение

В логических элементах LUT ПЛИС типа FPGA используется совершенная дизъюнктивная нормальная форма (СДНФ) [1-3], при этом конфигурационные настройки представляют собой значения из таблицы истинности соответствующей функции. LUT может быть построен в виде бинарного дерева передающих транзисторов 2 - 4 - 8 - 16... [4-6] либо содержит 2п ветвей по п транзисторов [7].

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

Использование широкого спектра ПЛИС [10-14] для создания цифровой аппаратуры, особенно в области так называемых критических приложений, требует реализации дешифраторов двоичных наборов. При этом необходимо 2n LUT на n переменных. В то же время при вычислении логической функции в LUT на данном наборе n переменных активизируется одна из 2n цепочек передающих транзисторов [15-17], но для выделения этой цепочки нет технической возможности. Кроме того, по этой цепочке передается значение логической функции -либо ноль, либо единица. А при дешифрации должно формироваться конкретное значение истинности: ноль, если унитарный инверсный код, и единица, если унитарный код не инверсный.

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

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

Для достижения цели потребовалось решить следующие задачи:

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

2. Исследование масштабирования разрядности предлагаемых логических элементов.

3. Схемотехническое моделирование разработанного элемента.

4. Сделать сравнительные оценки сложности предлагаемого элемента.

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

1.1. Существующий элемент LUT с n уровневым деревом транзисторов

В элементе ПЛИС типа FPGA, называемым LUT [1-6], вычисляющем значение заданной логической функции z от n аргументов xt в совершенной дизъюнктивной нормальной форме (СДНФ) реализовано n-уровневое бинарное дерево передающих (ключевых) транзисторов (1):

d0X\ d^X-^

z(d0...drixn...xl) =

Xn—1 — Xn

... x

n-1

X

X n -1

X

n-1

(V),

(1)

d2"-2 X1 dT-1X1

где (v*) - корень дерева, реализующий операцию монтажного ИЛИ

(wired OR) по всем 2" ветвям дерева, ^-е {0,1} - конфигурационный бит, значение функции в соответствующей строке таблицы истинности функции z.

В (1) всегда активируется только один путь от конфигурационного бита до выхода (v*) .

Ранее предложенный реверс дерева (1) позволяет в принципе выполнять дешифрацию входного набора [2, 3]:

xi —s xnxn-i...xi

x1 —— x1x"_1...x1

— X "—1

Xn

(Ground) xn_1

x -

_n_

Xn-1

(2)

x х1 ^^ хихи-1...х1

П—1 _п_

х1 ^ хпхп-1...х1

Однако опять-таки активируется для данного набора переменных только одна цепочка, а остальные имеют разрыв, что приводит к неопределенному состоянию выходного инвертора, не указанного в выражении (2). Это не допустимо, поэтому возможно использование подтягивающего резистора на входе инвертора N011 (/ = 1...2"), либо блоков конституент нуля:

XnXn-1...X1 , ч „

Х1 ^____ (v)NOT

(Ground)(Xn Xn-i ...xi)

((Ground))(XnXn_ j...xi)

=^(V.) NOT2

— Xn-1 Xn

(Vcc) — Xn-1 Xn-1

(3)

X 1 XMXn-1...X1 , 4 -KTS-\rr-\

— X1 ^-n— _ _ (v*)NOT

(Ground)(X Xn-1 ...X1)

X1 ^-XnXn-1...X1 (V*) NOT,n

(Ground )( XnXn-1...X1)_

В выражении (2) использована константа единицы (Vcc) на входе дерева, чтобы на выходе дешифратора были активные нули. Однако в этом случае реализация одной логической функции невозможна без дополнительных блоков дизъюнкции конституент единицы, используемых для вычисления системы функций от одних и тех же n аргументов.

1.2. Адаптивный элемент LUTс одноуровневым 2п деревом (2п ветвей по n транзисторов)

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

XnXn-1 ...X1

X1

d „ x, 2-1 1 ..X n

d „ x, 2-2 1 . .Xn

z(d0...dr_xn...xl) = •(v.). (4)

dxxx.. .Xn

d0x 1.. 'Xn

е {0,1} - конфигурационный бит, значение функции в соответствующей строке таблицы истинности функции г.

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

d х

z(d0dх ) = -^}(v*);

d^> x2 x d2x2 xi

z ( d) d d2 d2 XX ) —

d2 x2 x

dx2 xl

(v);

X^ Xj ) —

dj x^ x2 X|

xi

л x^ x 2 xi

^^ x3 xx^ x3 x xi d x3 x2xj

(v.).

(5)

d0x3 x 2 xi

В выражениях (5) старшая переменная записана слева. LUT на одну переменную используется и для объединения, например, LUT на две и три переменные, а также и как инвертор ( z(10xx ) — x1 ), и как повторитель z(01x1 ) — x, в случае необходимости трассировки через него

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

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

того, с целью восстановления уровня сигнала используют так называемые восстановители v (в простейших случаях это инверторы, NOT

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

Gates) по входам настройки или коммутации и по выходам функции, например, LUT на четыре переменные будет представлять собой выражение (5). В (5) v - это функции повторения, восстановители, поскольку их нечетное число в цепочках (три), поэтому настройка функции инверсная, настройка LUT на одну переменную не используется (такое устройство называется просто мультиплексором 2-1). Так, функция четырех переменных •••d15x4x3x2xi ) из двух

3-LUT и одного 1-LUT в режиме мультиплексора 2-1 (вместо данных настройки d. ; j = 0,1 используются выходы двух 3-LUT ç ; i = 1,2 ) может быть реализована следующим образом:

5 X X x^ dj x^ x2 x

¿j x^ x^ xi d^'^x^x^ xi

3 x^ x 2 x^ d x x 2 x

d^x2 xi 1 x3 ■(v,) = c1 d^'¿^x^ x 2 xi d x 3 x x

d^Q x3 x2 xi x3 x^ xi

d^'q x3 x2 x2 d x3 x 2 x

d 8x3 x2 xi d x3 x 2 xi

►(v*) = q; z(dodi...di5 x4) = ^^(v*). (6)

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

xSl'lxÔ2'2 ...хе"п,3^г = 1...И, j = 0...2",

где 5г- - показатель инверсирования ]-й конституенты, не представляется возможным, поскольку они все объединены монтажным ИЛИ.

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

Поэтому адаптивный элемент работает в двух режимах: вычисление одной заданной логической функции (конфигурационная переменная режима работы к = 1) и дешифрация набора переменных (конфигурационная переменная режима работы к = 0):

d к k^>z(d x1...xB)(v*) -——— (v*)Xj... хп (v*)-=——-

(Ground)k к => j(xг.. .xn)

d0„_0k - k=>z(d x i...x)(v*)

——-г (v*)xi... xn (v*)-—-

(Ground)k

к (xi... x )

z(kd0...d2„ x1...xj =

(Ground)k

£=> y(xj...x„)

dk

(Ground )k

(v*)xi...x„-i(v*)

£=>z(c/0xi...x„)(v*) £=> j(x\...x„)

(v). (7)

В выражении (6)у(х1...хи) означает номер активируемой кон-ституенты.

Режим выбирается при загрузке конфигурационного файла. Однако выражение (6) не учитывает тот факт, что при активировании одной конституенты сигнал (ноль в случае подключения шины «Ноль вольт», «Ground») будет на всех выходах, поскольку они соединены (v.).

Для исключения такого явления возможна установка диодов q:

d.„ k

(Ground )k

■Hir.i„H

k^>z(dr_lxl...xn)qr_l(v) k^j(xr..xJ

dn k

2 -2 _

(Ground)k

(v*)xi ■■■Xn (v*)

к => z(dr_2x1...xn)qrJy)

k^>(x i...xj

z(kd0...drixl...xn) =

(Ground)k

k=> j(xr..x„)

dk

(Ground)k

(v*)xi...x„-i(v*)

k=>z(d0x\...xn)q0(\/») к=> j(x \..Xn)

(v.).

(8)

Но это, в свою очередь, будет препятствовать прохождению нулевого значения функции, поэтому возможным первым решением будет установка подтягивающего к нулю резистора R0 на входе элемента NOT, не обозначенного в выражении (8):

d . к к => z(d . x,...x)q, (v*)

? -1 / \ / \ V ? -1 1 и/J ?*_1 ^ ^

-——^(v*):«!. ,.xn(v)-'-—-

(Ground )к к => j(xx ...хп)

d, k

2n-2 _

(Ground )k

(v)xi...xn(v)

k=>z(d x i...xn

,(v.)

k=>(xi...xn)

z(kd0...d2„_x1...xn) =

-(V'X • •

(Ground)k

к => j(xl... xn)

dk

(Ground)k

(v)xi...x„-l(v)

к z(d0xi.,.x„)q0(v) £=> j(x\...xn)

(9)

(v.)^( WOT ).

Это приводит к увеличению задержки и потребляемой мощности. Кроме того, резистор занимает относительно большую площадь кристалла. Другим решением может быть использование отключающих транзисторов I (к), управляемых сигналом к:

d,n ,k

(Ground )k

k^z{drixv..xn)tri{k){ v»)

d2n-2k _ (Ground)k

(v)xi...xn(v)

k=>z(d„_xi...xn)tr_(fc)(v)

k=>(xi...xn)

z(kd0...drixl...xn) =

(Ground )k

£ =i> j(xl...xn)

(Ground)k

i j(x\...x„)

(10)

(v*)^o( wor ).

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

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

Для одновременного вычисления логической функции и дешифрации набора переменных, т.е. для получения унитарного кода активного набора, необходимо по той же цепочке xf^'x l2j ... x fnn передавать как значение функции dj, так и некоторую константу, например, ноль (допустим, подключать шину «Ноль Вольт», не совсем корректно обозначаемую в системах схемотехнического моделирования «Ground»). Но это тоже невозможно. Тем не менее, выход есть.

Анализ выражений (3), (4) позволяет установить факт обязательного активирования (истинности) двух подцепочек длиной п - 1 при учете того, что п - старшая переменная:

V8!./ V82/ Ъщ 8!/ 82/ Ъп] _

х! х2 ••■ п

х! х2 п

51 j v 52J v5(n-1)j _ 51 j 52j 5(n-1)j x1 x2 ••■xn-1 .

xi x2 ••• Xn-1

Следовательно, всегда используется только половина дерева (3), (4). Это позволяет передавать константу не по текущей цепочке

Si j 52 J 5nj Si j 52 J 5nj

xl J x2 J ... xn J, а по ее «зеркальному отражению» x1 J x2 J ... xn J, тем

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

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

—-(v*)xi ■ ■ • (V*)-—-

(Ground)Xn

Xn —^ J . . . Xn^)

d . x - x => z(d „ xi...x )(v)

/ \ / \ n V П/У/

-(v»)xi... xn_x (v»)-

(Ground)xn

x„ => j(x 1 ..

z(dQ...dr_lxl...xn) =

(Ground)x

d°X" (v)xi ..

(Ground) xn

Xn=>j(x 1...xj

(v.). (11)

В выражении (11)у(х1...хп') означает номер, получаемый при инверсировании старшей переменной. Так, например, для двух переменных получим следующие выражения:

X (v.) ^ z(d3x2xj )(v*)

X 2 ^ "1"

(Ground) x

d~. Х-,

(Ground)x2

"(v®) X1(v*)

X (v.) ^ z(d2x2x1)(v») X2 ^ "0"

d1 X2 , ч , 4X2(v») ^ z(d X2 x1)(v.)

—-(v.) x (v.)-1-1-

(Ground)x

X ^ "3"

d0x2 , , 4X2(v») ^ z(d0x2X1)(v.)

—0-(v.) x1 (v.) —-—--—-——-

(Ground) x2

x ^ "3"

(v.).

(12)

Для трех переменных аналогично получаем следующие выражения:

dпХъ s \ / \ ^ z^dqX^x^x1 )(^/*)

-7 3 _ (у)xx (v*)- 3 ' 3 2

(Ground) Хз

(Ground) Хз

(v*) x2 xi (v*)

d Х -

-5 3 - (v*)x2x (v*)

(Ground) Хз

d Х --

-4 3 - (v*)Х2 Х1 (v*)

(Ground) Х3

--(v*) Х2 x(v*)

(Ground) Х

d Х 3

(Ground) Х,

■(v*) Х2 Х1 (v*)

d Х 3

■(v*) Х 2 x(v*)

(Ground) Х

-d°X-( v*) Х2 Х1 (v*)

(Ground) Х3

Х3 ^ "1116 "

(— ^ z(d6x3x2-1)(v*)

-3 ^ "1106"

k Х ^ z( d1x3 x2 x1)(v*)

1 — Х3 ^>"1016"

Х ^ z ( d—-2-1)(v*)

-3 ^4 "1006"

-3 ^ z( d3-3xx )(v*)

"0116"

-3 ^ z(d2-3x-1)(v*)

^"0106"

-3 ^ z( d1 x3 x 2 x1)(v*)

=^"0016"

-3 ^ z( d0-3-2 -1)(v*)

Х ^"0006"

(v*).

(13)

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

х ^ 0

d Х

z (do di х) = - 1 }(v*).

х ^ 1

(14)

d0x

В (14) х ^ 0 означает выдачу нулевого сигнала на этом выходе, если х, а х ^ 1 - выдачу нулевого сигнала на другом выходе, если не х. Кроме этого, есть еще и третий выход - значения функции.

Так, для получения нового элемента на три переменных из элементов (12) используем (14) без конфигурационных настроек:

dп Хл

(Х3 = 0)Х2

(v») x

Х(v») = z(d7x2x1 )(v»)

Х2 = "7(7)"

(x = 0) x2

(v») xi(v»)

x (v») = z(d6x2xi)(v»)

dx2

(x = 0) x,

d4 x2 (x = 0)x2

-(v») x(v»)

(v»)x1(v»)

^-(v») x-

(x3 = 1) x2

d x -d2 x2 -(v») xi(v»)

(x3 = 1)x2

d x 2

(x3 = 1) x; d x 2

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

-(v») xi(v»)

-(v»)xi (v»)

— x2 = 7(6)"

x2 (v») = z (dx2 x )(v»)

7(5)"

x2(v») = z(d4 x2 xi)(v»)

7(4)"

2(v») = z( d3 x2 xi)(v»)

x2 = ' 7 (3)"

x2(v») = z (d2x2xi)(v»)

x2 = 7(2!)"

x2(v») = z(dx2 x )(v»)

>" 7(0)"

x2(v») = z (d0 x2 xi)(v»)

(v»)Ci

x2 = "7(0)"

(v»K

x = 0

-=^M(v»)NOT). (15)

x3 = i

cnx3

(x3 = i) x2

В выражении (15) номер активируемого j выхода указан обобщенно.

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

Известный LUT по выражениям (3), (4) представлен на рис. 1.

а б

Рис. 1. LUT в виде одноуровневого дерева: а - w-LUT; б - 2-LUT

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

б

Рис. 2. Адаптивный п-ШТ, вычисляющий значение заданной логической функции или дешифрацию набора переменных в зависимости от сигнала настройки с подтягивающим к уровню нуля резистором на входе инвертора 4: а - схема электрическая функциональная; б - структура блоков 5 формирования конституент нуля

Предлагаемый LUT, вычисляющий значение заданной логической функции и дешифрацию набора переменных одновременно, показан на рис. 3.

б

Рис. 3. LUT, вычисляющий значение заданной логической функции и дешифрацию набора переменных одновременно: а - w-LUT; б - 2-LUT

Принцип формирования номера активного выхода (формируемой конституенты) для 2-LUT в двоичном коде поясняет табл. 1.

Таблица 1

Номер формируемой конституенты 2-LUT на выходе цепи данной конституенты в двоичном коде

00b 01b 10b 11b

1 0b 1 1b 00b 01b

а

То же в десятичном коде показано в табл. 2.

Таблица 2

Номер формируемой конституенты 2-ЬиТ на выходе цепи данной конституенты в десятичном коде

0 1 2 3

2 3 0 1

Принцип формирования номера активного выхода (формируемой конституенты) для и-ШТ в двоичном коде поясняет табл. 3.

Таблица 3

Номер формируемой конституенты и-ЬИТ на выходе цепи данной конституенты 0.. .2" - 1 в двоичном коде

000...00b 000.01b .... 111.10b 111.11b

L00...00b 100.01b .... ( )11.10b 011.11b

Принцип формирования номера активного выхода (формируемой конституенты) для и-ШТ в десятичном коде поясняет табл. 4.

Таблица 4

Номер формируемой конституенты и-ЬИТ на выходе цепи данной конституенты 0.2" - 1 в десятичном коде

0 1 . 2n - 2 2n - 1

2n-1 2n-1 + 1 . 2n-1 - 2 2n-1 - 1

Разработанный 1-ШТ, вычисляющий значение заданной логической функции и дешифрацию набора переменных одновременно без конфигурационных настроек, приведен на рис. 4.

Рис. 4. 1- LUT, вычисляющий значение заданной логической функции и дешифрацию набора переменных одновременно без конфигурационных настроек

Принцип наращивания разрядности для 3-LUT, вычисляющего значение заданной логической функции и дешифрацию набора переменных одновременно, построенного из двух 2-LUT с подтягивающими резисторами и одного 1-LUT, показан на рис. 5.

Рис. 5. З-ШТ, вычисляющий значение заданной логической функции и дешифрацию набора переменных одновременно, построенный из двух 2-ШТ с подтягивающими резисторами и одного 1-ЦиТ (см. рис. 4)

Разработанный 2-ЦОТ, вычисляющий значение заданной логической функции и дешифрацию набора переменных одновременно с блоками конституент нуля (БКН) вместо подтягивающих резисторов, показан на рис. 6.

Рис. 6. 2-LUT, вычисляющий значение заданной логической функции и дешифрацию набора переменных одновременно с блоками конституент нуля (БКН) вместо подтягивающих резисторов

2. Схемотехническое моделирование элементов LUT, вычисляющих значение заданной логической функции и дешифрацию набора переменных

Выполнено схемотехническое моделирование Multisim фирмы National Instruments [20] предлагаемого адаптивного LUT (рис. 7, 8).

Рис. 7. Адаптивный с подтягивающим к уровню нуля резистором:

а - в режиме вычисления заданной логической функции; б - в режиме дешифрации входного набора

а

б

Рис. 7. Окончание

Рис. 8. Адаптивный 3-ШТ с подтягивающим к уровню нуля резистором в режиме дешифрации входного набора

Выполнено схемотехническое моделирование LUT, вычисляющего значение заданной логической функции и дешифрацию набора переменных одновременно. Моделирование 2-LUT с подтягивающим к уровню нуля резистором, вычисляющим значение заданной логической функции и дешифрацию набора переменных одновременно, показано на рис. 9.

б

Рис. 9. 2-ШТ с подтягивающим к уровню нуля резистором, вычисляющий значение заданной логической функции и дешифрацию набора переменных одновременно: а - набор 11, выход 01; б - набор 00, выход 10

а

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

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

Оценим эффективность предложенного ADC LUT (Lade) - выражение (9). Сложность DC LUT (Lde) [22] по выражению (3), реализующего одну функцию, определяется выражением:

Ldc-lut„ = 2n+1 + 2n + n2n + m2n + 2m, (16)

где m - число логических функций, n - число переменных.

В предлагаемом устройстве ADC LUT (Ladc) получим без учета диодов и подтягивающего резистора:

L^C-lut„ = n ■ 2n + 2 • 2n + 4n + n ■ 2n + 4. (17)

Таким образом, выигрыш в числе транзисторов имеет вид:

с/ ч (2n+1 + 2n + 2■ 2n)m , ч

5(m) =-г---. (18)

2 + 2n + n2n + m2n + 2m

На рис. 10 представлен выигрыш (18) для n = 3 в зависимости от m.

Рис. 10. Выигрыш ADC LUT (Lade) (18) для n = 3 в зависимости от m

При этом задержка увеличивается на значение задержки конфигурационного транзистора 15 (см. рис. 2), диода и подтягивающего резистора. Однако в предложенном LUT по выражению (11), вычисляющем значение заданной логической функции и дешифрацию набора переменных одновременно, задержка уменьшается за счет использования второй неактивной половины дерева. Причем оба режима выполняются одновременно, что невозможно в ADC LUT, хотя затраты в количестве транзисторов сравнимы с затратами ADC LUT. Таким образом, LUT по выражению (11) предпочтительнее LUT по выражению (3).

Заключение

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

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

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

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

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

позволяет реализовать 2" +1 функций вместо 2" в одном режиме и одной в другом.

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

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

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

2. 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

3. 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

4. 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

5. 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. - URL: Designshttps://dl.acm.org/citation.cfm?doid=2591513. 2591596 (дата обращения: 18.11.2022). DOI: 10.1145/2591513.2591596

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

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

7. 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%D1%82% D0%B5%D0%BB%D1%8C/Downloads/ug-s 10-lab-683699-666917.pdf (дата обращения: 18.11.2022).

8. 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. (IntellTSIS) 2021: International, 24-26 March 2021. - Khmelnytskyi, Ukraine: IEEE, 2021. - P. 471-480.

9. 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. - Paper 142. - Lviv-Slavsko, Ukraine, 2020. DOI: 10.1109/TCSET49122.2020.235591

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

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

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

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

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

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

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

17. 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.

18. National Instruments. Multisim [Электронный ресурс]. - URL: http://www.ni.com/multisim/ (дата обращения: 18.11.2022).

19. Microwind & Dsch Version 3.5 [Электронный ресурс]. - URL: https://www.yumpu.com/en/document/view/40386405/microwind-manual-lite-v35pdf-moodle (дата обращения: 18.11.2022).

20. 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

21. 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/9783-319-55595-9

22. Tyurin S.F., Vikhorev R.V. A Decoder - look up tables for FPGAs // IJC. - Sep. 2021. - Vol. 20, № 3. - P. 365-373. DOI: https://doi.org/10.47839/ijc.20.3.2282

References

1. 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).

2. 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

3. 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

4. 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

5. 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, available at: Designshttps://dl.acm.org/citation.cfm?doid=2591513.2591596 (accessed

18 November 2022). DOI: 10.1145/2591513.2591596

6. Mead C.A., Conway L. Introduction to VLSI Systems, available at: https://www.researchgate.net/publication/23438249_Introduction_to_VLSI_ systems (accessed 18 November 2022).

7. Intel® Stratix® 10 Logic Array Blocks and Adaptive Logic Modules, available at: User Guidefile:///C:/Users/%D0%9F%D0%BE%D0 %BB%D1 %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).

8. 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. Khmelnytskyi, Ukraine: IEEE, 2021, pp. 471-480.

9. 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. Paper 142, Lviv-Slavsko, Ukraine, 2020. DOI: 10.1109/TCSET49122.2020.235591

10. 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.

11. 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.

12. 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).

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

14. 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 politekhnicheskogo universiteta. Elektrotekhnika, informatsionnye tekhnologii, sistemy upravleniia, 2019, no. 29, pp. 136-147.

15. Tiurin S.F. Osobennosti arkhitektury Giperfleks [Features of the Hyperflex architecture]. Vestnik Voronezhskogo gosudarstvennogo universiteta. Sistemnyi analiz i informatsionnye tekhnologii, 2018, no. 1, pp. 56-62.

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

17. 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.

18. National Instruments. Multisim, available at: http://www.ni.com/ multisim/ (accessed 18 November 2022).

19. Microwind & Dsch Version 3.5, available at: https://www.yumpu.com/en/document/view/40386405/microwind-manual-lite-v35pdf-moodle (accessed 17 November 2022).

20. 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

21. 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

22. Tyurin S.F., Vikhorev R.V. A Decoder - look up tables for FPGAs. IJC, Sep. 2021, vol. 20, no. 3, pp. 365-373. DOI: https://doi.org/10.47839/ijc.20.3.2282

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

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

Советов Станислав Игоревич (Пермь, Российская Федерация) -аспирант кафедры «Автоматика и телемеханика» Пермского национального исследовательского политехнического университета (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, 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.).

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).

Поступила: 10.07.2023. Одобрена: 29.07.2023. Принята к публикации:01.10.2023.

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

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

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

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

Тюрин, С.Ф. Логический элемент ПЛИС FPGA, реализующий функцию и дешифрацию набора переменных / С.Ф. Тюрин, С.И. Советов // Вестник Пермского национального исследовательского политехнического университета. Электротехника, информационные технологии, системы управления. - 2023. - № 47. - С. 5-31. DOI: 10.15593/2224-9397/2023.2.01

Please cite this article in English as:

Tyurin S.F., Sovetov S.I. FPGA LUT implementing a logic function and decoding a set of variables simultaneously. Perm National Research Polytechnic University Bulletin. Electrotechnics, information technologies, control systems, 2023, no. 47, pp. 5-31. DOI: 10.15593/2224-9397/2023.2.01

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