FPGA LUT С ДВУМЯ ВЫХОДАМИ ДЕКОМПОЗИЦИИ ПО ШЕННОНУ
- Авторы: Тюрин С.Ф1,2, Чудинов М.А1,3
- Учреждения:
- Пермский национальный исследовательский политехнический университет
- Пермский государственный национальный исследовательский университет
- ПАО «Морион»
- Выпуск: № 29 (2019)
- Страницы: 136-147
- Раздел: Статьи
- URL: https://ered.pstu.ru/index.php/elinf/article/view/2546
- DOI: https://doi.org/10.15593/.v0i29.2546
- Цитировать
Аннотация
В настоящее время количество логических элементов, программируемых логических интегральных схем (ПЛИС) типа FPGA (field-programmable gate array) достигает нескольких миллионов, что создает совершенно новые возможности при синтезе цифровой аппаратуры. При этом основой так называемых адаптивных логических модулей (АЛМ) FPGA являются деревья передающих транзисторов LUT (Look Up Table), вычисляющие логические функции в совершенной дизъюнктивной нормальной форме (СДНФ). При работе в арифметическом режиме вычисляются логические функции, отличающиеся значением одной переменной, например, переноса из разряда в разряд, что позволяет ускорить реализацию многоразрядной суммы. Для этого берут два LUT, выходы которых мультиплексируются по значению этой переменной, т.е. как бы вычисляют логические функции «впрок». Похожий принцип использован в архитектуре «Гиперфлекс» (HyperFlex), где разложение логической функции по Шеннону в цепи обратной связи позволяет обеспечить повышение быстродействия автомата с памятью. При этом используются две копии логической функции управления триггером, выбор которых также производится мультиплексором 2-1. Несмотря на отсутствие дефицита логических элементов в некоторых приложениях, например в отказоустойчивой аппаратуре, эти своего рода дублирующие элементы могли бы быть полезны, например, при построении резервированных структур. Поэтому предлагается реализовать декомпозицию по Шеннону на основе одного LUT, для чего дублируются только самые последние два транзистора соответствующего дерева с выходным инвертором, поскольку вычисляется та же самая логическая функция, но на наборе аргументов, отличающемся только одной переменной. В статье описывается предлагаемое техническое решение и оценивается выигрыш в количестве транзисторов по отношению к известному решению.
Полный текст
Введение. Программируемые логические интегральные схемы (ПЛИС) являются одним из самых востребованных сегментов рынка элементной базы цифровой аппаратуры, выпускаемой с середины 80-х гг. ХХ в. [1-3]. К ПЛИС в настоящее время относят также и микросхемы систем на кристалле SoC (System-on-a-Chip) [4] и так называемые системы в пакете-SiP (System-in-Package), представляющие собой объёмные сборки разных микросхем [5, 6]. Имеются многочисленные модификации ПЛИС, но их делят на два основных класса: FPGA (field-programmable gate array), в которых логические функции реализуются в СДНФ (совершенной дизъюнктивной нормальной форме) в генераторах функций, представляющих собой дерево транзисторов (LUT-Look Up Table), CPLD (complex programmable logic devices), в которых вычисляются системы логических функций в дизъюнктивной нормальной форме (ДНФ) [7-11]. Так, на сайте фирмы «Интел» [12] указаны следующие продукты: Stratix10 (14 нм), Stratix V (28 нм), Arria 10 (20 нм), Arria V (28 нм), Cyclone10 (20 нм), Cyclone V (28 нм), MAX10 (55 нм), причём MAX 10 одновременно числится и по разряду CPLDs (complex programmable logic devices), в который входят также и MAX V (возможно 90 нм), MAX II (скорее всего 0,15 мкм). По классу SoC проходят ПЛИС Stratix10, Arria 10, Arria V, Cyclone 10, Cyclone V. На сайте другой крупнейшей фирмы производителя ПЛИС-Xilinx [13] представлены микросхемы ПЛИС Spartan-6 (45 нм), Virtex-7, Kintex-7, Artix-7, Spartan-7 (28 нм),Virtex UltraScale, Kintex UltraScale (20 нм), Virtex UltraScale+, Kintex UltraScale+ (16 нм). Имеются так называемые адаптивные логические модули АЛМ [14], оптимально конфигурируемые под требуемое число переменных. Всё начиналось с реализации логических функций до 4 переменных, в АЛМ возможна реализация любых функций 7 переменных и некоторых функций 8 переменных. Использование технологии tri-gate [15-17] позволило достичь нового уровня быстродействия или энергоэффективности. Изобилие ресурсов привело к созданию резервированных структур ПЛИС [18]. В связи с этим вызывает интерес вопрос ускорения вычислений логических функций и автоматных отображений за счёт так называемой декомпозиции по Шеннону [19]. Дело в том, что наличие уже десятков миллионов логических элементов дает возможность комбинационной реализации многих алгоритмов, реализуемых ранее только последовательностыми автоматами. Рассмотрим особенности такой декомпозиции, применяемой в настоящее время, и предложим подход к её дальнейшему развитию. 1. Декомпозиция при выполнении арифметических операций. Дизъюнктивное разложение Шеннона (булева факторизация) по некоторой i-й переменной [20] позволяет разложить логическую (булеву) функцию f на две подфункции в виде дизъюнктивной нормальной формы (ДНФ), в одной из которых i-я переменная равна 0, а в другой - 1. Пусть эта переменная х, которая может быть в выражении f как без инверсии, так и с инверсией, так же, как и другие переменные y,z…w, тогда разложение Шеннона по х имеет вид: (1) Конъюнктивное разложение Шеннона (используется конъюнктивная нормальная форма (КНФ)) по х имеет вид: (2) Разложение Шеннона функций небольшого числа переменных удобно выполнять по таблице истинности. Например, проанализируем функции полного однобитного сумматора (рис. 1). Функция суммы при (верхняя часть таблицы) становится суммой по модулю два , а при (нижняя часть таблицы) - эквиваленцией Функция переноса при - это конъюнкция а при - дизъюнкция Таким образом, при изменении данных (Date 1 = A, Date 2 = B) подфункции вычисляются без учёта переноса, который используется для выбора одной из двух подфункий. Логический элемент ПЛИС содержит генераторы функций LUT-2 (Look Up Table) и мультиплексоры 2-1 (рис. 2). Рис. 1. Дизъюнктивное разложение Шеннона функций полного сумматора Рис. 2. Использование декомпозиции в логическом элементе при динамическом арифметическом режиме (LEin Dynamic Arithmetic Mode) Мультиплексоры на основе передающих транзисторов (Pass Transistors) 2-1, по существу, представляют собой LUT-1 на одну переменную без настройки входов данных. Следовательно, фактически происходит одновременная реализация двух подфункций суммы и двух подфункций переноса, зависящих от Date 1(A), Date 2 (B), которые затем выбираются старшей переменной Carry-In 0, Carry-In 1. 2. Декомпозиция при реализации последовательностного автомата. При реализации последовательностного автомата (автомата с памятью) для увеличения максимальной частоты реализации автоматных отображений за счет разложения Шеннона «укорачивается» петля обратной связи [19]. На рис. 3 показана «длинная» обратная связь, реализующая некоторую функцию переходов: (3) Рис. 3. «Длинная» обратная связь А, В, С - это векторы входных переменных соответствующего автомата. Здесь указан синхронный триггер (T, flip-flop) на выходе реконфигурируемого LUT, входящего в состав так называемого адаптивного логического модуля ALM. Частота синхронизации CLC рассчитывается с учетом задержки в петли обратной связи на трёх последовательных ALM и логике четвертого ALM, поэтому суммарная задержка относительна велика, и она включает задержку в элементах маршрутизации. Эта обратная связь «длинная», потому что проходит через матрицу локальных связей, где возможны значительные задержки сигналов. Одна переменная А, В или С для АLМ, реализующего функции 4 и даже в ряде случаев 7 и 8 переменных, - не показательный случай, поэтому пусть это будут некие векторы: (4) например, (5) Допустим, имеем такую функцию переходов: (6) Выполняем разложение Шеннона (Shannon decomposition or Boolean factorization), получаем: (7) (8) На рис. 4 показана реализация двух этих функций в разных LUT ALM. При этом число переменных уменьшено на одну за счет исключения переменной состояния триггера у. Рис. 4. «Короткая» обратная связь при введении разложения Шеннона Поэтому петля обратной связи короткая, и задержка определяется только задержкой логики последнего АLМ. Такой подход увеличивает аппаратные затраты, но они несущественны для ПЛИС, имеющей уже десятки миллионов таких логических элементов, здесь главное - скорость. Все это называется гипероптимизацией. Поиск возможностей такой оптимизации осуществляется гиперретаймингом. Дальнейшее продвижение этого направления может привести к тому, что такое разложение будет выполнено по всем переменным. 3. Логический элемент, реализующий декомпозицию по старшей переменной. Развитие направления декомпозиции по Шеннону может привести к тому, что задержка на вычисление логических функций будет сведена к минимуму, который определяется выбором одной из конституент всего одним транзистором однорангового дерева. В этом случае целесообразно использовать вектор входного набора в унитарном коде: (9) В выражении (9) позиция в одном из разрядов определяет входной вектор функции (рис. 5). Для уменьшения затрат на реализацию таких «декомпозированных» функций большого числа переменных предлагается использовать модифицированный унитарный код, включающий несколько бит, например три: (10) Тогда, например, определяет группу из двух переменных , которые уже подлежат дешифрации (рис. 6). Рис. 5. Выбор одного из значений функции f унитарным кодом входного вектора Рис. 6. Выбор одного из значений функции f унитарным кодом входного вектора Возникает задача нахождения оптимальной декомпозиции по Шеннону - по нескольким переменным, так, чтобы и трассировка переменных, и LUT были не слишком сложными, с одной стороны, и задержка на вычисление логической функции не слишком увеличилась, с другой. Предлагается также LUT с двумя выходами декомпозиции по старшей переменной (рис. 7). Рис. 7. LUT-3 с двумя предлагаемыми выходами декомпозиции по старшей переменной А, F(ABC) - существующий выход Функционирование предлагаемого LUT-3 в зависимости от значения старшей переменной показано на рис. 8. а б Рис. 8. Функционирование предлагаемого LUT-3: а - старшая переменная А = 0; б - старшая переменная А = 1 В этом случае создается возможность контроля функционирования LUT путём тестирования с использованием математического аппарата булевых производных, описанного, например, в [20]. Для этого необходимо создать тест, т.е. такие функции, в которых изменение старшей переменной приводит к разным значениям подфункций. Выводы. Таким образом, для обеспечения быстродействия ПЛИС разработчики передовых фирм идут по пути усложнения проектов с использованием разложения Шеннона, что позволяет, кроме прочего, уменьшить длину обратной связи в последовательностном автомате. Следует ожидать увеличение возможностей комбинационных реализаций схем конечных автоматов, традиционно реализуемых последовательностно в силу имеющихся ранее ограничений на количество логических элементов и объём памяти. В связи с этим предлагается унитарный LUT, когда активна только одна входная переменная. Похожий принцип используется при маршрутизации связей в ПЛИС. Например, условия для этого создаст унитарное кодирование памяти автомата. Такой LUT будет обладать максимальным быстродействием. Для снижения аппаратурных затрат возможно комбинированное кодирование входного вектора, что, конечно, ухудшит быстродействие вычисления значений логических функций. С целью упрощения контроля таких вычислений предложен LUT с двумя выходами декомпозиции по старшей переменной. Использование модифицированного LUT позволит уменьшить время диагностирования. Целью дальнейших исследований может быть рассмотрение предложенного LUT с встроенным элементом сложения по модулю два.Об авторах
С. Ф Тюрин
Пермский национальный исследовательский политехнический университет; Пермский государственный национальный исследовательский университет
М. А Чудинов
Пермский национальный исследовательский политехнический университет; ПАО «Морион»
Список литературы
- Угрюмов Е.П. Цифровая схемотехника: учеб. пособие. - 2-е изд., перераб. и доп. - СПб.: БХВ-Петербург, 2007. - 782 с.
- Современные реализации ПЛИС [Электронный ресурс]. - URL: http://fpga.parallel.ru/devices.html (дата обращения: 31.10.2018).
- Строгонов А., Цыбин С. Программируемая коммутация ПЛИС: взгляд изнутри [Электронный ресурс]. - URL: http://www.kit-e.ru/articles/plis/2010_11_56.php (дата обращения: 11.10.2018).
- Intel SoC FPGAs [Электронный ресурс]. - URL: https://www.intel.com/content/www/us/en/products/programmable/soc.html (дата обращения: 31.10.2018).
- Systemin Package [Электронный ресурс]. - URL: https://amkor.com/ technology/system-in-package/(дата обращения: 31.10.2018).
- SiP Products [Электронный ресурс]. - URL: ttps://www.altera.com/ products/sip/overview.html(дата обращения: 11.10.2018).
- Виды программируемой логики [Электронный ресурс]. - URL: http://www.pvsm.ru/programmirovanie/87810 (дата обращения: 10.10.2018).
- Programmable Logic Devices [Электронный ресурс]. - URL: http://ee.sharif.edu/~logic_circuits_t/readings/PLD.pdf (дата обращения: 04.11.2018).
- Программируемая логика и её применение в микропроцессорных системах [Электронный ресурс]. - URL: http://lektsii.org/7-10275.html (дата обращения: 08.11.2018).
- CPLD (Complex Programmable Logic Device) [Электронный ресурс]. - URL: http://www.myshared.ru/slide/981511/ (дата обращения: 09.11.2018).
- Stephen Brown, Jonathan Rose. Architecture of FPGAs and CPLDs: A Tutorial [Электронный ресурс]. - URL: http://www.eecg.toronto.edu/~jayar/pubs/brown/survey.pdf (дата обращения: 10.10.2018).
- INTELFPGA [Электронный ресурс]. - URL: https://www.altera.com/ (дата обращения: 23.10.2018).
- Xilinx [Электронный ресурс]. - URL: https://www.xilinx.com/ products/silicon-devices/fpga.html (дата обращения: 31.10.2018).
- Logic Array Blocks and Adaptive Logic Modules in Stratix III Devices [Электронный ресурс]. - URL: https://www.altera.com.cn/content/dam/alterawww/global/zh_CN/pdfs/literature/hb/stx3/stx3_siii51002.pdf (дата обращения: 20.10.2018).
- Ryan Kenny, Jeff Watt. The Breakthrough Advantage for FPGAs with Tri-Gate Technology [Электронный ресурс]. - URL: https://www.altera.com/en_US/pdfs/literature/wp/wp-01201-fpga-tri-gate-technology.pdf (дата обращения: 12.10.2018).
- Трёхмерные транзисторы 22нм [Электронный ресурс]. - URL: https://habrahabr.ru/company/intel/blog/118816/ (дата обращения: 15.10.2018).
- Интегрированные транзисторы CMOS tri-gate [Электронный ресурс]. - URL: http://compress.ru/article.aspx?id=16789 (дата обращения: 24.10.2018).
- Carl Carmichael. Triple Module Redundancy Design Techniques for Virtex FPGAs [Электронный ресурс]. - URL: https://www.xilinx.com/ support/documentation/application_notes/xapp197.pdf (дата обращения: 07.11.2018).
- Understanding How the New Intel®HyperFlex™ FPGA Architecture Enables Next Generation High-Performance Systems [Электронный ресурс]. - URL: https://www.altera.com/products/fpga/stratix-series/stratix10/ features.html#hyperflexarchitecture (дата обращения: 27.10.2018).
- Тюрин С.Ф., Аляев Ю.А. Дискретная математика: практическая дискретная математика и математическая логика. - М.: Финансы и статистика, 2010. - 394 с.
Статистика
Просмотры
Аннотация - 132
PDF (Russian) - 35
Ссылки
- Ссылки не определены.