О РЕЛИЗАЦИИ ЛОГИЧЕСКИХ ФУНКЦИЙ ШЕСТИ ПЕРЕМЕННЫХ В АДАПТИВНОМ ЛОГИЧЕСКОМ МОДУЛЕ FPGA STRATIX III

Аннотация


Логика программируемых пользователем вентильных матриц (ППВМ), в последние годы именуемых в России программируемыми логическими интегральными схемами - ПЛИС типа FPGA (Field-Programmable Gate Array), строится на программируемых мультиплексорах, реализующих однобитовую память. Такие запоминающие устройства, фактически являющиеся ОЗУ, в документации фирм-производителей называются LUT (Look Up Table), что имеет смысл таблиц истинности. При конфигурировании ПЛИС в LUT записывается таблица истинности необходимой логической функции, в которой для каждого конкретного входного вектора указывается значение логической функции. Чаще всего используются LUT на 4 переменных 4LUT, соответственно необходимый объём конфигурационной памяти - 16 бит. LUT представляет собой дерево транзисторов, одна из 16 ветвей которого активизирована соответствующим входным набором. Источники указывают, что такое количество переменных является оптимальным для реализации комбинационных и последовательностных конечных автоматов. С начала нулевых годов производители, в частности фирма Альтера, начали анонсировать LUT на большее число переменных, в частности, упоминаются 5LUT, 6LUT и даже 7LUT и 8LUT. При этом заявляется, что такое усовершенствование позволяет повысить эффективность реализации логических функций. Однако известно, что согласно правилам Мида и Конвей не допускается соединение более чем четырёх передающих транзисторов в последовательной цепочке, имеющееся в 4LUT. Вызывают интерес такие сложные LUT, названные адаптивными логическими модулями, так как они могут реализовывать несколько логических функций различного-настраиваемого числа переменных. Такие ALМ имеются в ПЛИС Stratix III фирмы «Альтера». Анализируются описания ALМ ПЛИС Stratix III и устанавливаются неточности описания в русскоязычных источниках. Устанавливается, что ALМ содержит помимо двух указанных 4LUT ещё четырёх дополнительных 3LUT, что и обеспечивает реализацию двух 4LUT, и, соответственно, выбор одного из четырёх 4LUT есть как раз 6LUT. Таким образом, реализация функции шести переменных использует композицию деревьев 4LUT и 3LUT, что и обеспечивает соблюдение правил Мида и Конвей.

Полный текст

Введение. Программируемые пользователем вентильные матрицы (ППВМ), чаще называемые в РФ программируемыми логическими интегральными схемами - ПЛИС типа 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].

Об авторах

С. Ф Тюрин

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

Email: tyurinsergfeo@yandex.ru

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

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

Статистика

Просмотры

Аннотация - 30

PDF (Russian) - 9

Ссылки

  • Ссылки не определены.

© Тюрин С.Ф., 2016

Creative Commons License
Эта статья доступна по лицензии Creative Commons Attribution-NonCommercial 4.0 International License.

Данный сайт использует cookie-файлы

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

О куки-файлах