Научная статья на тему 'Системная реализация логики в ПЛИС FPGA'

Системная реализация логики в ПЛИС FPGA Текст научной статьи по специальности «Математика»

CC BY
85
17
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММИРУЕМАЯ ЛОГИЧЕСКАЯ ИНТЕГРАЛЬНАЯ СХЕМА (ПЛИС) / ЛОГИЧЕСКИЙ ЭЛЕМЕНТ (ЛЕ) / КОНФИГУРИРУЕМЫЙ ЛОГИЧЕСКИЙ БЛОК (КЛБ) / СОВЕРШЕННАЯ ДИЗЪЮНКТИВНАЯ НОР&SHY / МАЛЬНАЯ ФОРМА (СДНФ) / ДИЗЪЮНКТИВНАЯ НОРМАЛЬНАЯ ФОРМА (ДНФ) / СИСТЕМНАЯ РЕАЛИЗАЦИЯ ЛОГИЧЕСКИХ ФУНКЦИЙ / КОНЪЮНКТИВНАЯ НОРМАЛЬ&SHY / НАЯ ФОРМА (КНФ) / МУЛЬТИПЛЕКСОР ГЕНЕРАТОР ФУНКЦИЙ N ПЕРЕМЕННЫХ (LUTFPGA) / ДЕШИФ&SHY / РАТОР / LOGIC ELEMENT FPGA LUT (LOOK UP TABLE) / FULL DISJUNCTIVE NORMAL FORM (FDNF) / DISJUNCTIVE NORMAL FORM (DNF) FPGA LOGIC / LUT - FDNF / FPGA LOGIC ON THE BASIS OF THE DECODER / LUT - DC / LUT - DNF

Аннотация научной статьи по математике, автор научной работы — Тюрин С. Ф., Городилов А. Ю., Громов О. А., Сулейманов А. А.

Списываются и оцениваются по сложности в количестве транзисторов известная и предло -женные реализации логического элемента (ЛЭ) программируемых логических интеграль­ных схем (ПЛИС) типа FPGA ( field-programmable gate array). Существующие ЛЭ FPGA ре­ализуют логические функции (ЛФ) в СДНФ (совершенной дизъюнктивной нормальной фор­ме) СДНФ ЛЕ на основе деревьев передающих транзисторов. Делается вывод, что предла­гаемая структура дешифратор DC LUT предпочтительна для системной реализации логи­ческих функций по аппаратным затратам при незначительном увеличении задержки.

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

System realization of the FPGA logic

In the work they are compared full disjunctive normal form (FDNF) FPGA logic, FPGA logic on the basis of the decoder and disjunctive normal form (DNF) FPGA logic. It proves that with a large quantity of variables it is preferable DNF FPGA logic.

Текст научной работы на тему «Системная реализация логики в ПЛИС FPGA»

2013

ВЕСТНИК ПЕРМСКОГО УНИВЕРСИТЕТА

Математика. Механика. Информатика

Вып. 4(23)

ИНФОРМАТИКА ИНФОРМАЦИОННЫЕ СИСТЕМЫ

УДК 519.1(075.8)+510.6(075:8)

Системная реализация логики в ПЛИС FPGA

С. Ф. Тюрин, А. Ю. Городилов

Пермский государственный национальный исследовательский университет Россия, 614990, Пермь, ул. Букирева, 15 tyurinsergfeo@yandex.ru; +7-952-32-02-510; gora830@yandex.ru; +7-902-83-07-328

О. А. Громов, А. А. Сулейманов

Пермский национальный исследовательский политехнический университет Россия, 614990, Пермь, Комсомольский пр., 29 ogromov@inbox.ru; +7-952-60-08-480; alex@pstu.ru; +7-922-64-67-077

Списываются и оцениваются по сложности в количестве транзисторов известная и предло -женные реализации логического элемента (ЛЭ) программируемых логических интегральных схем (ПЛИС) типа FPGA ( field-programmable gate array). Существующие ЛЭ FPGA реализуют логические функции (ЛФ) в СДНФ (совершенной дизъюнктивной нормальной форме) - СДНФ ЛЕ на основе деревьев передающих транзисторов. Делается вывод, что предлагаемая структура - дешифратор DC LUT предпочтительна для системной реализации логических функций по аппаратным затратам при незначительном увеличении задержки.

Ключевые слова: программируемая логическая интегральная схема (ПЛИС); логический элемент (ЛЕ); конфигурируемый логический блок (КЛБ); совершенная дизъюнктивная нормальная форма (СДНФ); дизъюнктивная нормальная форма (ДНФ); системная реализация логических функций; дизъюнктивная нормальная форма (ДНФ); конъюнктивная нормальная форма (КНФ); мультиплексор - генератор функций n переменных (LUTFPGA); дешифратор.

Введение

Современные программируемые логические схемы (ПЛИС) типа FPGA (field-programmable gate array) содержат конфигурируемые логические блоки (КЛБ)[1], состоящие из логических элементов ЛЭ. Логический элемент ЛЭ ПЛИС FPGA - это постоянное запоминающее устройство ПЗУ (LUT - Look Up Table), представляющее собой мультиплексор (дерево мультиплексоров), входы данных которого настраиваются так называемыми конфигурируемыми ячейками памяти [1, 2]. Обычно используются мультиплексоры на 4,

© Тюрин С. Ф., Городилов А. Ю., Громов О. А., Сулейманов А. А., 2013

5 переменных, уже используются LUT на 6, 7 переменных.

На рис. 1 с целью упрощения дальнейших рассуждений представлена структура LUT всего на две переменные.

SFAM|—--

SFAM|—[>-1 L-

SFAM|—[>-

Рис. 1. Транзисторная схема LUT с числом входов n =2 (мультиплексор 4-1)

Настройка на требуемую логическую функцию осуществляется путём записи в ячейки конфигурационной памяти SRAM значений 0 либо 1 в соответствии с таблицей истинности, так что:

2 _ .

zout t * di & xy

it1

(1), d, X {0,1}(1).

j 11

Недостатком такой структуры LUT FPGA является то, что она реализует логические функции в совершенной дизъюнктивной нормальной форме (СДНФ), что приводит к значительным аппаратным затратам при увеличении числа переменных. Отсутствует возможность реализации систем логических функций в одном ЛЭ.

1. Дешифратор DC-LUT

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

Транзисторная схема, "обратная" структуре, изображенной на рис. 1, может быть получена путём разворота LUT на 180", причём выход - инвертор будет слева входом, который, например, "зануляется", а входы - четыре левых инвертора - будут выходами (рис. 2).

X2

Х1

22

ZD

стоки и истоки транзисторов фактически эквивалентны.

Получаем дешифратор, причём де-мультиплексор можно получить, если на вход левого инвертора подавать бит данных d. Далее, m раз объединяя по ИЛИ соответствующие выходы 0, 1, 2, 3, получим реализацию постоянной памяти (ПЗУ, ROM) на 4 m-раз-рядных ячейках, например на четырех четырёхразрядных ячейках (рис. 3).

Рис. 3. ПЗУ на четыре четырёхразрядных ячейки

В структуре, изображённой на рис. 3, программируются связи 0, 1, 2, 3 (ненужные удаляются) с соответствующими элементами ИЛИ. Если эти связи могут изменяться - получим перепрограммируемое ПЗУ, т. е. реализуются 4 функции (Ю-£3) 4 переменных. Такое программирование аналогично программированию межсоединений [1].

Рис. 2. Транзисторная схема - дешифратор DC-LUT, структура, "обратная" структуре рис. 1

Тогда выходы 0, 1, 2, 3 активируются при наборе соответствующего кода на входах адреса xl, х2. Таким образом, реализуется унитарный код, например 0111 при нулевых адресных сигналах. Тем более что в КМДП транзисторах, используемых в LUT при одинаковых топологических характеристиках,

Рис. 4. Программируемые межсоединения с 16 направлений (SR0...15 конфигурационная память SRAM)

n

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

Структура на рис. 2 отличается от структуры на рис. 1 следующим: в LUT (рис. 1) всегда активирована одна из цепочек в дереве передающих транзисторов к выходному инвертору, который принимает значение 0 или 1 в зависимости от настройки SRAM. В структуре рис. 2 также активирована одна из цепочек в обратном дереве передающих транзисторов, но, поскольку инверторов много, то, вход инверторов неактивных цепочек фактически "оборван". Поэтому необходимо для каждого выходного инвертора создать альтер -нативную цепочку, гарантированно переводящую его выход, например, в единицу. Для этого предлагается выражение, двойственное конъюнкции, описывающей соответствующую цепочку в обратном дереве.

Так, для выхода 0 - выражение 2

Z0 Т X2 X1, (2)

получаем

Zo Т Х2 * X,. (3)

Тогда это будет выглядеть так (рис. 5).

Рис. 5. Нулевой разряд DC LUT2 с альтернативной цепочкой

Известный ЛУТ на n переменных LUTn без учёта коммутаций входных переменных оценивается следующим образом.

Транзисторов в дереве всего

LtrLUTn Т 2"G1 н 2 n 12 2. (4)

Учтём настройки входов - на каждый в ячейке SRAM - 6 транзисторов:

LrLUTn4™ т 2nG1 н 2 G 6 *2n, n 1 2. (5)

Учтём инверторы по входам + входные выходные инверторы (в каждом 2 транзистора), получим всего в LUTn:

LtrLUTn Т

Т 2nG 1 н 2 G (6 G 2) *2n G 2 *n G 2, n 1 2. (6) Преобразуя, получаем итого

LrLUTn Т 2nG 1 G 8 *2n G 2 *n, n 1 2. (7)

Проведём расчёт для предлагаемого DC LUTn. Транзисторов в обратном дереве столько же:

LtrDCНLUTn Т 2nG 1 Н 2 n 1 2. (8)

Далее учитываем транзисторы во всех инверторах (в каждом - два транзистора):

LrН invН DCН LUTn Т 2nG 1 Н 2 G 2n G 2. (9)

Плюс межсоединения для m разрядов, на каждое необходима ячейка конфигурационной памяти, содержащая 6 транзисторов, да ещё инвертор:

mcH DCН LUTn Т (6m G 2) *2n. (10)

LDC Н LUTn Т 2nG1 G 2n G (6m G 2)2n. (11)

Задержка увеличивается по сравнению с LUTn всего на 2 транзистора.

2. Логический элемент ПЛИС - FPGA на основе ДНФ реализации логических функций с использованием передающих КМДП транзисторов

В работах [3, 4] предложена ДНФ-реа-лизация логики на основе аппаратно реализованного алгоритма ПЛМ - программируемой логической матрицы с использованием в качестве базисных функционально-полных толерантных (ФПТ) КМДП-элемен-тов. Для реализации такого подхода с использованием МОП передающих транзисторов предложены блок программируемой конъюнкции (матрица "И"), в котором требуемая у-я конъюнкция п переменных Ру Т 1..кf по каждой /-ой переменной будет формироваться с использованием двух бит конфигурационной памяти [5] (рис. 6).

а) б)

Рис. 6. Логический элемент ПЛИС — FPGA на основе ДНФ реализации логических функций с использованием передающих транзисторов а) матрица "И", б) матрица "ИЛИ"

В набираемую цепочку входит либо переменная Si, либо её инверсия (неSi), либо эта переменная отсутствует. Тогда, например, по первой переменной первой конъюнкции, S1. 1=1, (неS1. 1)=0 для S1, по второй переменной S2.1=0, (неS2.1)=1 для (неS2), а по третьей, отсутствующей переменной S3.1=1, (неS3.1)=1 для (~). То есть соответствующий передающий транзистор будет открыт всегда, на любом наборе, и ортогональность цепей к нему соблюдается.

В т блоках программируемой функции (матрица "ИЛИ"), например в первом, в конфигурационные ячейки Р1 ,\\ (\¥=1...к) записывается единица, если эта \¥-конъюнкция входит в функцию, иначе записывается ноль. Так, для суммы по модулю два трёх переменных 80л^81л®2 настройка матриц ЛЕ-ДНФ определяется по данным табл. 1, 2.

Таблица 1. Матрица "И" для ЛЕ-ДНФ

№ S1.1 HeS1.1 S2.1 HeS2.1 S3.1 HeS3.1 Конъюнкция

1 1 0 1 0 1 1 S1S2

2 1 1 1 0 1 0 S2S3

3 1 0 1 1 1 0 S1S3

4 0 1 0 1 1 1 (HeS1)(HeS2)

Таблица 2. Матрица "ИЛИ" для ЛЕ-ДНФ

№ Fi.1 Fi.2 Fi.3 Fi.4 Функция

1 1 1 1 0 i=1 ; S1S2 или S2S3 или S1S3

2 0 0 1 1 i=2; S1S3 или (HeS1)(HeS2)

Оценим аппаратные затраты на реализацию логического элемента ПЛИС - FPGA на основе ДНФ реализации m логических функций, содержащих не более k конъюнкций n переменных.

3. Сравнение сложности вариантов реализации LUT для систем логических функций

Сравним по сложности известный (L) и предложенные варианты (Ldc - на основе дешифратора, L dnf - на основе ДНФ) реализации LUT для систем логических функций при различных параметрах числа переменных n, количества функций m, количества конъюнкций k. Так, при m = k =8, n=4 L dnf немного уступает по сложности Ldc, но при п?г4 значи-

тельно опережает два других варианта, причем известная реализация (Ь) всегда хуже (рис. 7).

Рис. 7. Сравнение аппаратных затрат в транзисторах известной структуры LUTn (L), DC LUTn (Ldc) и LUTДНФ (L dnf) при m

= k =8

При m = к =16, n = 4L dnf сравним с известным LUT, но при n 1г5 лучше других вариантов (рис. 8).

-4 -A-

t 1-

/

/

Рис. 10. Сравнение аппаратных затрат в транзисторах известной структуры LlJTn (L), DC LUTn (Ldc) и LUT ДНФ '(L dnf) при m = 16, k =8

Рис. 8. Сравнение аппаратных затрат в транзисторах известной структуры LUTn (L), DC LUTn (Ldc) и LUT ДНФ (L dnf) при m = k =16

При m =8, k = 16 L dnf только при n?2 лучше других вариантов (рис. 9).

Рис. 11. Сравнение аппаратных затрат в транзисторах известной структуры LUTn (L), DC LUTn (Ldc) и LUT ДНФ (L dnf) при m = 24, к =24

Но при большом к относительно п выигрыш возможен при достаточно больших п (рис. 12).

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

Рис. 12. Сравнение аппаратных затрат в транзисторах известной структуры LUTn (L), DC LUTn (Ldc) и LUT ДНФ (L dnf) при m = 8, k =24

Однако в области больших n LUT ДНФ является безусловным фаворитом (рис. 13, 14,

15).

Рис. 9. Сравнение аппаратных затрат в транзисторах известной структуры LUTn (L), DC LUTn (Ldc) и LUT ДНФ (L dnf) при m = 8, k =16

При увеличении числа функций и относительно небольшом числе конъюнкций L dnf выигрывает уже при небольшом п (рис. 10, 11). Рис 13 Сравнение аппаратных затрат в

транзисторах известной структуры L UTn (L), DC LUTn (Ldc) и LUT ДНФ (L dnf) при m = 16, k =32, n=4... 16

В

Рис. 14. Сравнение аппаратных затрат в транзисторах известной структуры LlJTn (L), DC LUTn (Ldc) и LUT ДНФ (L dnf) при m = 32, k =64, n=4... 32

--[!="""]

Рис. 15. Сравнение аппаратных затрат в транзисторах известной структуры LUTn (L), DC LUTn (Ldc) и LUTДНФ (L dnf) при m = 32, k =64, n=4... 64 Заключение

Таким образом, системная реализация логических функций в предлагаемой структуре DC LUT, обратной существующей структуре мультиплексора - генератора функций n переменных ПЛИС типа FPGA (LUT FPGA) предпочтительней известной по аппаратным затратам при незначительном увеличении задержки. Логический элемент ПЛИС - FPGA на основе ДНФ по сравнению с LUT FPGA и DC LUT при небольшом числе конъюнкций даже при небольших n.

При этом существующий ЛЕ и DC LUT фактически не могут реализовать даже 16 раз-

рядные функции, а LUT ДНФ имеет приемлемые затраты и для 64-разрядных функций. А быстродействие LUT ДНФ так же, как и известного, определяемого в основном длиной цепочки передающих транзисторов - n, определяется цепочкой транзисторов в блоках программируемых конъюнкций - это тоже n, а цепочки в блоках программируемых функций содержат всего один транзистор.

Список литературы

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

2. Look up table implementation of fast carry for adders and counters: US 005274581A, 28.12.1993.

3. Тюрин С.Ф., Греков А.В., Набатов А.В. Микропрограммно-аппаратное восстановление логики программируемых логических интегральных схем с использованием функционально-полных толерантных элементов // Научно-технические ведомости СПбГПУ. Информатика. Телекоммуникации. Управление. 2012, № 1(140). С. 107-112.

4. Тюрин С.Ф., Байдаров А.А., Морозов А.М., Набатов А.В. Моделирование в системе Квартус-2 конфигурируемого логического блока на основе ДНФ представления систем логических функций с использованием функционально-полных толерантных элементов // Информационно-измерительные и управляющие системы. 2012. № 3. С. 44-50.

5. Тюрин С.Ф., Понуровский И.С. Логический элемент ПЛИС FPGA для реализации ДНФ // Вестник Ижевского государственного технического университета. 2013. № 2. С. 95-98.

System realization of the FPGA logic

S. F. Tyurin, A. Y. Gorodilov

Perm State University, Russia, 614990, Perm, Bukirev st., 15 tyurinsergfeo@yandex.ru; 8-952-32-02-510; gora830@yandex.ru; +79028307328

О. А. Gromov, A. A. Suleymanov

Perm State National Research University, Russia, 614990, Perm, Komsomolsk av., 29 ogromov@inbox.ru; +7-952-60-08-480; alex@pstu.ru; +7-922-64-67-077

In the work they are compared full disjunctive normal form (FDNF) FPGA logic, FPGA logic on the basis of the decoder and disjunctive normal form (DNF) FPGA logic. It proves that with a large quantity of variables it is preferable DNF - FPGA logic.

Key words: logic element FPGA - LUT (Look Up Table); full disjunctive normal form (FDNF); LUT - FDNF; FPGA logic on the basis of the decoder; LUT - DC; disjunctive normal form (DNF) FPGA logic; LUT - DNF.

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