REALIZATION OF 6 INPUT LUT IN ADAPTIVE LOGIC MODULE

Abstract


The logic of field programmable gate arrays (FPGAs), referred to in Russian programmable logic integrated circuits - PLIC type FPGA (Field-Programmable Gate Array) programmable multiplexers based on realizing one-bit memory. Such storage devices are actually RAM, documentation firms - producers called LUT (Look Up Table), it makes sense to truth table. When configuring the FPGA LUT recorded truth table the necessary logic function, which for each input vector indicates the value of the logic function. The most commonly used variables LUT 4, 4LUT, respectively, the necessary amount of configuration memory - 16 bits. LUT is a tree of transistors, one of 16 branches which enabled the corresponding input set. Sources indicate that a number of variables is optimal for the realization of combinational and sequential state machines. Since the beginning of zero years manufacturers, in particular firm Altera began to announce the LUT to a greater number of variables, in particular, referred to 5LUT, 6LUT even 7LUT and 8LUT. At the same time it states that this improvement can increase the efficiency of implementing logic functions. However, it is known that according to the rules Mead and Conway is not permissible to connect more than four transistors in a serial transmission chain. Of interest are complex LUT, called adaptive logic modules ALM, since they can implement multiple logical functions of different custom-numbers of variables. These ALM are in the Stratix III FPGA firm Altera. Analyzes describe the Stratix III FPGA and inaccurate descriptions installed in the Russian-language sources. It is established that ALM contains besides the two mentioned 4LUT four more additional 3LUT, which ensures the implementation of two 4LUT and, accordingly, the selection of one of four 4LUT-that is just 6LUT. Thus, the implementation of a function of two variables using the composition of trees 4LUT 3LUT, which ensures compliance with the rules Mead and Conway.

Full Text

Введение. Программируемые пользователем вентильные матрицы (ППВМ), чаще называемые в РФ программируемыми логическими интегральными схемами - ПЛИС типа FPGA (Field-Programmable Gate Array), содержат логические элементы, именуемые в документации фирмы «Альтера» LUT (Look Up Table) - таблицы истинности, представляющие из себя мультиплексоры на основе деревьев из передающих транзисторов [1]. Наиболее полное представление о них для русскоязычного читателя даёт великолепный материал С. Цыбина, А. Строгонова [2]. Простейший LUT на две переменные (2-LUT) имел бы вид (рис. 1). Для настройки на заданную логическую функцию двух переменных в четыре ячейки ОЗУ (SRAM) загружается соответствующая таблица истинности. При активации одного из 4 путей в дереве транзисторов (см. рис. 1) переменными Х1, Х2 значение логической функции считывается из соответствующей ячейки ОЗУ и передаётся на выход OUT. Инверторы по переменным обеспечивают реализацию всех членов СДНФ: Рис. 1. LUT на две переменные (2-LUT) LUT на три переменные (3-LUT) представлен на (рис. 2). Рис. 2. LUT на три переменные (3-LUT) Здесь уже необходимо 8 бит настройки. В источниках указано, что оптимальным по быстродействию и сложности представления типовых логических функций является использование LUT на четыре переменных (4-LUT). Такой LUT для входных переменных A, B, C, D с установленным на выходе функционально-полным толерантным логическим элементом ФПТЛЭ [3-8] изображён на рис. 3. ФПТЛЭ обеспечивает реализацию половинных возможностей LUT при отказе одного любого транзистора среди VT1-VT30, транзисторов инверторов и SRAM. В ПЛИС Stratix III имеются адаптивные (перестраиваемые под требуемую задачу) логические блоки (ALM), которые объединяются в логические блоки (Logic Array Block, LAB) [9], которые, как утверждается, реализуют функции даже 7 переменных. Вызывают интерес технологии такой реализации LUT по сравнению с представленными на рис. 1, 3. Рис. 3. LUT на четыре переменных (4-LUT) 2. Особенности ПЛИС Stratix III. ПЛИС Stratix III описана в достаточном количестве источников, имеются даже диссертации, защищённые в Воронежском техническом университете [10-13]. Имеются данные о возможном производстве таких ПЛИС на Воронежском заводе полупроводниковых приборов «ВЗПП-Микрон», ОАО «КТЦ “ЭЛЕКТРОНИКА”» (предприниматель - уже упомянутый С.А. Цыбин) [14], а также в Зеленограде. Структура таких ПЛИС включает так называемые блоки LAB (logic array block), они содержат, как написано, в качестве «строительных блоков» адаптивные логические модули ALM (adaptive logic modules) в количестве 10 штук, которые могут быть конфигурированы для реализации комбинационной логики, в том числе арифметических операций, а также для реализации автоматов с памятью. Имеются локальные (local interconnect) - к соседу внутри LAB слева и справа, а также глобальные (между LAB) матрицы связей (рис. 4). C4 C12 Row Interconnects of Variable Speed & Length LAB MLAB R20 R4 Column Interconnects of Variable Speed & Length Direct link interconnect from adjacent block Direct link interconnect to adjacent block Direct link interconnect from adjacent block Direct link interconnect to adjacent block Local Interconnect ALMs Local Interconnect is Driven from Either Side by Columns & LABs, & from Above by Rows Рис. 4. Структура ПЛИС Stratix III Memory LAB (MLAB) - это вариация LAB, которая может быть реконфигурирована в двухпортовое ОЗУ ёмкостью 320 бит (рис. 5). LUT-based-16×2 (1) Simple dual port SRAM ALM LUT-based-16×2 (1) Simple dual port SRAM ALM LUT-based-16×2 (1) Simple dual port SRAM ALM LUT-based-16×2 (1) Simple dual port SRAM ALM LUT-based-16×2 (1) Simple dual port SRAM ALM LAB Control Blok LAB Control Blok LUT-based-16×2 (1) Simple dual port SRAM ALM LUT-based-16×2 (1) Simple dual port SRAM ALM LUT-based-16×2 (1) Simple dual port SRAM ALM LUT-based-16×2 (1) Simple dual port SRAM ALM LUT-based-16×2 (1) Simple dual port SRAM ALM MLAB LAB Рис. 5. Структура MLAB и LAB Каждый ALM может пропускать сигналы «через себя» (рис. 6). LAB MLAB ALMs ALMs Direct link interconnect to right Direct link interconnect to left Local Interconnect Direct link interconnect from right LAB, TriMatrix memory block, DSP block, or IOE output Direct link interconnect from left LAB, TriMatrix memory block, DSP block, or IOE output Рис. 6. Непосредственная связь (direct link connection) Блоки управления LAB (Control Block) обеспечивают управление (LAB Control Signals) с использованием сигналов локальных связей и синхронизации. 3. Адаптивные логические блоки ПЛИС Stratix III. В доступных для автора источниках указано, что архитектура ALМ совместима архитектурой 4-входовых LUT-4 LUT, а один ALМ может также реализовывать любые функции до шести переменных и определенные функции семи переменных. Отмечается, что такая архитектура выигрывает по быстродействию и эффективности (вероятно, речь идёт об аппаратных затратах и площади кристалла). Далее в русскоязычных источниках и даже в статьях Цыбина С.А. довольно путано описывается эта перестраиваемая логика ALМ. Например, приводится на (рис. 7). На рис. 7 в верхней части указаны восемь входов адаптивной LUT, что может создать впечатление о возможности реализации 8-LUT, но нижняя часть рисунка уточняет, что LUT-то всё-таки шестивходовая. Более подробная структура ALМ0, ALМ1, представленная на рис. 8, не вносит ясности в особенности реализации дерева 6-LUT. Адаптивная LUT Полный сумматор Полный сумматор Регистр regout (0) regout (1) combout (0) combout (1) ALM 1 2 3 4 5 6 7 8 Регистр 6-входовая LUT 1 2 3 4 5 6 regout combout Регистр Пара LUT-триггер Схема переноса Рис. 7. Адаптивный логический модуль ПЛИС Stratix III Вход для реализации арифметических операций shared_arith_in 6-входовый LUT 6-входовый LUT dataf0 datae0 dataa datab datac datad datae1 dataf1 adder0 adder1 Выход для реализации арифметических операций shared_arith_out Вход переноса carry_in Выход переноса carry_out Комбинационные функции или однобитное ОЗУ на 16 ячеек памяти Комбинационные функции или однобитное ОЗУ на 16 ячеек памяти Комбинационный выход Комбинационный выход D Q rego D Q reg1 labclk ALUT0 ALUT1 Рис. 8. Состав адаптивных логических модулей ALМ0, ALМ1 ПЛИС Stratix III Ещё более запутывает информация презентации [15], в которой чёрным по белому написано, что для реализации k-LUT необходимо 2 k бит SRAM и мультиплексор также 2k:1. Это попросту невозможно! Различные режимы использования ALМ не проясняют детали (рис. 9). 4-входовый LUT 4-входовый LUT combout0 combout1 5-входовый LUT 3-входовый LUT combout0 combout1 combout0 5-входовый LUT 4-входовый LUT combout0 combout1 combout1 combout0 combout0 combout1 dataf0 datae0 datac dataa datab datad datae1 dataf1 dataf0 datae0 datac dataa datab datad datae1 dataf1 dataf0 datae0 datac dataa datab datad datae1 dataf1 5-входовый LUT 5-входовый LUT dataf0 datae0 datac dataa datab datad datae1 dataf1 6-входовый LUT 6-входовый LUT 6-входовый LUT datae1 dataf1 dataf0 datae0 dataa datab datac datad dataf0 datae0 dataa datab datac datad Рис. 9. Режимы использования адаптивных логических модулей ALМ Со входами a, b, c, d мы уже встречались (см. рис. 3), это адресные входы мультиплексора 16-1, входы данных которого должны настраиваться 16 битами SRAM, это 2 в степени 4. А вот входы e0,f0, e1,f1 вызывают вопрос, не парафазные ли это линии для дерева транзисторов? Тем не менее, возьмём первоисточник (те из читателей, кто жил в эпоху марксизма-ленинизма, знают, что это такое!). 4. Детализация архитектуры адаптивных логических блоков. Рассмотрим документацию на ПЛИС Stratix III [16], там приведена детализация ALМ, обозначим некоторые функции (рис. 10). Таким образом, выясняется, что всё-таки ALМ построен не только на двух 4LUТ, но имеются ещё четыре LUТ на 3 переменных 3LUТ, т.е. из двух 3LUТ можно получить один 4LUТ. Следовательно, всего четыре 4LUТ, тогда становится понятно, как строится 6LUТ - двумя старшими переменными e, f выбирают один из четырёх! Получим соответствующие выражения: Рис. 10. Детализация архитектуры адаптивных логических модулей ALМ с обозначенными некоторыми функциями На рис. 10 не указаны управляющие сигналы на ряде мультиплексоров, обозначенных трапециями (LUТ1-6 тоже мультиплексоры, но изображены с управляющими сигналами, настройка подразумевается). Выводы Таким образом, на самом деле в ALМ имеются два 4LUТ, как и указано в переводных статьях, но не только. Фактически имеются ещё два LUТ на 3 переменных 3LUТ, из которых можно построить два дополнительных 4LUТ. Всего и получается четыре 4LUТ. Тогда понятно, как из них строятся и 5LUТ, и 6LUТ. Не вызывает затруднений и вопрос получения двух 5 LUТ. Следовательно, настройка должна содержать не мене 64 битов для задания любой функции 6 переменных. Целесообразно в дальнейшем по выражениям настройки ALМ получить логическую модель и проверить по ней соответствие заявленных возможностей ALМ с изображёнными в документации вариантами с учётом возможностей, предложенных в [17-21] и ограничений [22].

About the authors

S. F Tyurin

Perm National Research Polytechnic University

Email: tyurinsergfeo@yandex.ru

References

  1. Look up table implementation of fast carry for adders and counters: pat. US 005274581A, 28.12.1993.
  2. Цыбин С. Программируемая коммутация ПЛИС: взгляд изнутри [Электронный ресурс]. - URL: http://www.kit-e.ru/articles/plis/ 2010_11_56.php (дата обращения: 16.12.2014).
  3. Тюрин С.Ф. Функционально-полные толерантные булевы функции // Наука и технологические разработки. - 1998. - № 4. - С. 7-10.
  4. Функционально-полный толерантный элемент: пат. Рос. Федерация № 2438234 / С.Ф. Тюрин, О.А. Громов; опубл. 27.12.2011. Бюл. № 36.
  5. Функционально-полный толерантный элемент: пат. Рос. Федерация № 2449469 / С.Ф. Тюрин, О.А. Громов, А.В. Греков; опубл. 27.04.2012. Бюл. № 12.
  6. Функционально-полный толерантный элемент: пат. Рос. Федерация № 2496227 / Тюрин С.Ф., Громов О.А., Греков А.В., Сулейманов А.А. Опубл. 20.10.2013. Бюл. № 29.
  7. Программируемое логическое устройство: пат. Рос. Федерация № 2503993 / С.Ф. Тюрин, А.В. Набатов, О.А. Громов, А.В. Греков, Д.А. Карлов; опубл. 10.01.2014. Бюл. № 1.
  8. Функционально-полный толерантный элемент: пат. Рос. Федерация № 2541854 / Ю.П. Дудкин, С.Ф. Тюрин, А.А. Южаков, О.А. Громов; опубл. 20.02.2015. Бюл. № 5.
  9. Золотуха Р., Комолов Д. Stratix III - новое семейство FPGA фирмы Altera [Электронный ресурс]. - URL: http://kit-e.ru/assets/ files/pdf/ 2006_12_30.pdf (дата обращения: 28.11.2015).
  10. Использование ресурсов ПЛИС Stratix III фирмы Altera при проектировани микропроцессорных ядер [Электронный ресурс]. - URL: file:///C:/Users/%D0%A2%D1%8E%D1%80%D0%B8%D0%BD/Desktop/ %D0%A6%D1%8B%D0%B1%D0%B8%D0%BD%2010%20%D0%B3%D0 %BE%D0%B4.pdf (дата обращения: 27.11.2015).
  11. Цыбин С.А. Проектирование высокоинтегрированных программируемых логических интегральных схем по субмикронным проектным нормам: дис. … канд. техн. наук [Электронный ресурс]. - URL: http://www.dissercat.com/content/proektirovanie-vysokointegrirovannykh-programmiruemykh-logicheskikh-integralnykh-skhem-po-su#ixzz3sl1sJ1o7 (дата обращения: 28.11.2015).
  12. Давыдов С.И. Проектирование функциональных блоков программируемой логической интегральной схемы, конфигурируемых с использованием метода сканирования пути [Электронный ресурс]. - URL: http://www.dslib.net/tverdoteln-elektronika/proektirovanie-funkcionalnyh-blokov-programmiruemoj-logicheskoj-integralnoj.html (дата обращения: 28.11.2015).
  13. Быстрицкий А.В. Проектирование структуры межсоединений программируемых логических интегральных схем [Электронный ресурс]. - URL: http://www.dslib.net/tverdoteln-elektronika/proektirovanie-struktury-mezhsoedinenij-programmiruemyh-logicheskih-integralnyh.html (дата обращения: 28.11.2015).
  14. Открытое акционерное общество «Конструкторско-технологический центр “Электроника”» [Электронный ресурс]. - URL: http://www.edc-electronics.ru/upload/iblock/1cd/1cd2009ffa52599ff023b0843885fad6.pdf (дата обращения: 29.11.2015).
  15. Presentation on ALTERA'S FPGA Technology [Электронный ресурс]. - URL: http://www.authorstream.com/Presentation/hsrathore158-1410279-fpga/ (дата обращения: 29.11.2015).
  16. Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices [Электронный ресурс]. - URL: https://www.altera.com.cn/content/ dam/altera-www/global/zh_CN/pdfs/literature/hb/stx3/stx3_siii51002.pdf (дата обращения: 29.11.2015).
  17. Программируемое логическое устройство: пат. Рос. Федерация № 2544750 / С.Ф. Тюрин; опубл. 20.03.2015. Бюл. № 8.
  18. Программируемое логическое устройство: пат. Рос. Федерация № 2547229 / С.Ф. Тюрин, А.Ю. Городилов, Р.В. Вихорев; опубл. 10.04.2015. Бюл. № 10.
  19. Тюрин С.Ф., Городилов А.Ю., Данилова Е.Ю. Программируемое логическое устройство. Положительное решение ФСИС РФ по заявке № 2014116999/08(026804) от 25.04.2014.
  20. Тюрин С.Ф. Ячейка статической оперативной памяти. Положительное решение ФСИС РФ от 20.03.15 по заявке 2014110973/08 от 21.03.2014.
  21. Методика автоматизированного синтеза самосинхронных схем в функционально полном толерантном базисе / А.Н. Каменских, С.Ф. Тюрин, Ф.А. Пономарев, О.Д. Барламов // Нейрокомпьютеры: разработка, применение. - 2015. - № 10. - С. 43-47.
  22. Дж. Д. Ульман. Вычислительные аспекты СБИС / пер. с англ. А.В. Неймана; под ред. П.П. Пархоменко. - М.: Радио и связь, 1990. - 480 с.

Statistics

Views

Abstract - 58

PDF (Russian) - 29

Refbacks

  • There are currently no refbacks.

Copyright (c) 2016 Tyurin S.F.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies