Усовершенствованный метод реализации в FPGA систем логических функций, заданных в сднф

Усовершенствованный метод реализации в FPGA систем логических

функций, заданных в СДНФ

С. Ф. Тюрин, Р.В. Вихорев Пермский Национальный Исследовательский Политехнический Университет

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

Ключевые слова: программируемые логические интегральные схемы, field-programmable gate array, look-up table, система логических функций, совершенная дизъюнктивная нормальная форма.

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

2n

zout = v (& ^) • d ),

i = 1 1=1

где a(i,j) -показатель инверсирования переменной в соответствующей ветви дерева передающих транзисторов, его значение противоположно значению j-го разряда в двоичной записи числа i, die {0,1} - значение i-й конфигурационной ячейки SRAM. Для реализации системы из m логических функций в существующих ПЛИС необходимо:

2'

2аи( = V (& х^ ) • йг), I = 1, т ' = 1

Такая реализация ориентирована на системы функций, зависящих от разных переменных. Если же функции зависят от одних переменных,

например, арифметической суммы, то необходимо m раз (в случае арифметической суммы - при сложении по модулю два и при реализации мажоритарной функции или функции переноса - 2 раза) повторять конституенты и, соответственно, настройку.

Рассмотрим подробно простейший LUT на одну переменную Х (1-LUT) реализующий логическую функцию:

Zout = d0 • х v dx • х,

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

Zout = d0 • X v dj • х,

В дереве передающих транзисторов, реализующих (2) в зависимости от сигнала х на входе инвертора функции сигналы всегда ортогональны, то есть со входов настройки всегда подаётся либо 0, либо 1 и нет ситуации, когда оба передающих транзистора по х и не х не активированы. Выполним реверс (2) для дешифрации входного набора:

di = &х°"('-l,] ) • Zout ; i = 1,2",

j=1 1

Введём входной сигнал d вместо z, получим:

douti = &xf"1,j) • d" ; i = 1,2",

j=1

Но при реализации (3) в виде дерева передающих транзисторов нарушается условие ортогональности сигналов, так как в случае не активации одного из передающих транзисторов вход одного из инверторов

получается «оборванным». Ортогональность обеспечивается ( dn = 1) в

случае:

d = &(х j(г-и) v х j(г-и)); i = 1,2"

OUt.i ]=iy 1 1 '

Причём, в отличие от обеспечения ортогональности в известном LUT, где сигналы со всех ветвей дерева «собираются» на одном выходе, что привело бы к выражению

d = & (х f-u )) v & (х f-u )); i = 1,2" outi 1 1=1 1

Выражение (4) описывает обеспечение ортогональности по каждой переменной в каждой ветви дерева.

Для программирования значений т логических функций предлагается:

Zl = v (dout.i • Кг X 1 =1, m i = 1

где h - настройка вхождения конституент i в данную функцию из m функций системы.

Предлагаемое схемотехническое решение DC LUT

Выражение (1) представляет собой мультиплексор 2-1 и может быть реализовано в виде элементарного дерева с управляемыми переменной х ветвями - Рис. 1:

Рис. 1. Элементарный LUT на одну переменную (1-LUT), настроенный на вычисление функции «не х».

n

Элементарный DC LUT [5-10] - на одну переменную (1- DC LUT) получается путём передачи сигнала в элементарном 1- LUT в другом

Рис.2. Элементарный DC LUT - на одну переменную (1- DC LUT) Для Рис. 2 получим:

dout.0( x) = x; dout 1( x) = х.

Рис. 3. Элементарный 1-ОС ШУТ - на одну переменную без входного

инвертора.

Тогда ноль передаётся либо на выход 0 (набор 0, Х=0), либо на выход 1 (набор 1, Х=1). Как окажется в дальнейшем, удобней активная единица на выходе, поэтому вводим инверторы - Рис. 4

Рис. 4. Элементарный 1-DC LUT - на одну переменную с выходными инверторами, активная единица. Выражению (5) обеспечения ортогональности при n=1 соответствует

схема Рис. 5

X

Рис. 5. Элементарный дешифратор без инверторов на выходах и обеспечением ортогональности сигналов на выходах 0,1.

Рассмотрим реализацию DC LUT большего числа переменных и особенности отказоустойчивой их реализации с учётом ограничений - не более 4-х транзисторов в последовательной цепочке.

С учётом схемы Рис. 5 дешифратор 2- DC LUT будет реализован следующим образом - Рис. 6:

Рис. 6. Дешифратор на две переменные с обеспечением ортогональности сигналов по выходам 0,1,2,3 Здесь в отличие от LUT используется локальная ортогональность - в каждом элементарном дешифраторе. Оба дополнительных транзистора активированы, но на вход инвертора по выходу 3 поступает логическая

единица только через Х1 поскольку x1 закрыт.

С целью подтверждения работоспособности предлагаемого решения, было произведено моделирование в NI Multisim, National Instruments Corporation (USA, Texas) 4-DC-LUT, которое представлено на Рис.7.

Рис. 7. Моделирование 4 DC-LUT в NI Multisim

Литература

1. Строгонов А., Цыбин С. Программируемая коммутация ПЛИС: взгляд изнутри. URL: kit-e.ru/articles/plis/2010_11_56.php.

2. Тельпухов Д. В., Рухлов В. С., Рухлов И. С. Исследование и разработка методов оценки сбоеустойчивости комбинационных схем, реализованных в базисе ПЛИС // Инженерный вестник Дона, 2016, №1 URL: ivdon.ru/ru/magazine/archive/n1y2016/3504.

3. Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices -URL:altera.com .cn/content/dam/altera_www/global/zh_CN/pdfs/literature/hb/stx3/ stx3_siii51002.pdf.

4. FPGA Architecture URL: altera.com/en_US/pdfs/literature/wp/wp-01003.pdf.

5. Пат. 2602780 Российская Федерация: МПК G06F 7/57 H03K 19/173 Программируемое логическое устройство / заявитель и патентообладатель Тюрин С.Ф., Вихорев Р. В., Плотникова А.Ю. - №2014115537/08, заявл. 17.04.2014; опубл. 20.11.2016, Бюл. №32.

6. Пат. 2573732 Российская Федерация: МПК G06F 7/57 H03K 19/173 Программируемое логическое устройство [Текст]/ заявитель и патентообладатель Тюрин С.Ф., Вихорев Р. В., - № 2014107336/08, заявл. 25.02.2014; опубл. 27.01.2016, Бюл. №3.

7. Пат. 2547229 Российская Федерация: МПК G06F 7/57 H03K 19/173 Программируемое логическое устройство / заявитель и патентообладатель Тюрин С.Ф., Городилов А.Ю., Вихорев Р. В., - № 2014120558/08, заявл. 21.05.2014; опубл. 10.04.2015, Бюл. №10.

8. Тюрин С.Ф., Городилов А.Ю., Данилова Е.Ю. Диагностирование логического элемента DC LUT FPGA // Инженерный вестник Дона, 2016, №1 URL: ivdon.ru/ru/magazine/archive/n2y2014/2313

9. Тюрин С.Ф., Прохоров А.С. Усовершенствованный логический элемент FPGA. // Вестник Воронежского государственного университета. Серия: Системный анализ и информационные технологии, 2016, № 4 URL: vestnik.vsu.ru/pdf/analiz/2016/04/2016-04-12.pdf

10. Тюрин С.Ф., Прохоров А.С. Логический элемент FPGA, вычисляющий две функции одновременно. // Проектирование и технология электронных средств. 2016. № 2. С. 18-23.

11. Тюрин С.Ф. Функционально-полные толерантные элементы ПЛИС FPGA для аэрокосмических вычислительных комплексов // Вестник Сибирского государственного аэрокосмического университета имени академика М. Ф. Решетнева (Вестник СибГАУ) 2016. №2. С.484-489.

12. Пат. 2601145 Российская Федерация: МПК G11C 17/00 Программируемое логическое устройство / заявитель: Тюрин С.Ф., Каменских А.Н., Плотникова А.Ю. патентообладатель: ФГБОУ ВО «Пермский национальный исследовательский политехнический университет» - № 2015117840/08, заявл. 12.05.2015; опубл. 27.10.2016, Бюл. №30.

References

1. Strogonov A., Tsybin S. Programmiruemaya kommutatsiya PLIS: vzglyad iz nutria [Programmable switching FPGA: a view from the inside] URL: kit-e.ru/articles/plis/2010_11_56.php. (accessed: 20/02/2017).

2. Tel'pukhov D. V., Rukhlov V. S., Rukhlov I. S. Inzhenernyj vestnik Dona (Rus), 2016, №1. URL: ivdon.ru/ru/magazine/archive/n1y2016/3504.

3. Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices. URL:altera.com .cn/content/dam/altera_www/global/zh_CN/pdfs/literature/hb/stx3/ stx3_siii51002.pdf.

4. FPGA Architecture. URL: altera.com/en_US/pdfs/literature/wp/wp-01003.pdf.

5. Patent RF, no. 2602780 MPK G06F 7/57 H03K 19/173 Programmiruemoe logicheskoe ustroystvo [Programmable logic device]. Tyurin S.F., Vikhorev R. V., Plotnikova A.Yu.

6. Patent RF, no. 2573732 MPK G06F 7/57 H03K 19/173 Programmiruemoe logicheskoe ustroystvo [Programmable logic device]. Tyurin S.F., Vikhorev R. V.

7. Patent RF, no. 2547229 MPK G06F 7/57 H03K 19/173 Programmiruemoe logicheskoe ustroystvo [Programmable logic device]. Tyurin S.F., Gorodilov A.Yu., Vikhorev R. V.

8. Tyurin S.F., Gorodilov A.Yu., Danilova E.Yu. Inzhenernyj vestnik Dona (Rus), 2016, №1. URL: ivdon.ru/ru/magazine/archive/n2y2014/2313

9. Tyurin S.F., Prokhorov A.S. Vestnik Voronezhskogo gosudarstvennogo universiteta. Seriya: Sistemnyy analiz i informatsionnye tekhnologii (Rus), 2016, № 4. URL: vestnik.vsu.ru/pdf/analiz/2016/04/2016-04-12.pdf

10. Tyurin S.F., Prokhorov A.S. Proektirovanie i tekhnologiya elektronnykh sredstv. 2016. № 2. pp. 18-23.

11. Tyurin S.F. Vestnik Sibirskogo gosudarstvennogo aerokosmicheskogo universiteta imeni akademika M. F. Reshetneva (Vestnik SibGAU). 2016. №2. pp. 484-489.

12. Patent RF, no. 2601145 MPK G11C 17/00 Programmiruemoe logicheskoe ustroystvo [Programmable logic device]. Tyurin S.F., Kamenskikh A.N., Plotnikova A.Yu.