Открыть сервис

Конфигурируемый логический блок

Конфигурируемый логический блок (КЛБ, англ. Configurable Logic Block, CLB) — это базовый структурный элемент программируемых логических интегральных схем (ПЛИС) архитектуры FPGA (Field-Programmable Gate Array), предназначенный для реализации комбинационных и последовательностных логических функций. КЛБ представляет собой матрицу из нескольких логических элементов, триггеров и мультиплексоров, соединённых с программируемой коммутационной сетью, что позволяет настраивать его функциональность после изготовления микросхемы.

История

Концепция конфигурируемого логического блока возникла в середине 1980-х годов с появлением первых FPGA. Компания Xilinx (США) в 1985 году выпустила микросхему XC2064, в которой впервые использовалась архитектура на основе матрицы КЛБ. В отличие от предшествовавших программируемых логических матриц (PLA) и ПЛИС типа CPLD, где логические блоки были жёстко специализированы, КЛБ обеспечивали значительно большую гибкость за счёт возможности перепрограммирования на уровне отдельных ячеек.

В 1990-е годы архитектура КЛБ совершенствовалась: увеличивалось количество логических элементов в блоке, добавлялись встроенные триггеры, улучшались возможности синхронизации. Крупнейшие производители FPGA — Xilinx (организация признана нежелательной в РФ), Altera (ныне Intel Programmable Solutions) — разработали собственные варианты КЛБ, отличающиеся числом входов, типом таблиц поиска и наличием встроенной памяти.

Устройство и архитектура

Основные компоненты

КЛБ состоит из нескольких функциональных модулей, соединённых внутренними шинами:

  • Таблица поиска (Look-Up Table, LUT) — ключевой элемент, реализующий произвольную логическую функцию от N входов (обычно 4–6). LUT представляет собой статическую память (SRAM) на 2^N ячеек, каждая из которых хранит один бит результата. При подаче входных сигналов на адресные линии LUT выводит соответствующее значение.
  • Триггер (Flip-Flop) — элемент памяти, хранящий один бит данных. В большинстве КЛБ присутствует один или два триггера на каждый логический элемент, что позволяет реализовывать последовательностные схемы (регистры, счётчики).
  • Мультиплексор — управляет выбором источника сигнала (например, выход LUT или триггера) и направлением данных.
  • Быстрый перенос (Carry Chain) — специализированная цепь для реализации арифметических операций (сложение, вычитание) без задержек на коммутацию.

Типичная структура

В современных FPGA (например, серии Xilinx 7 Series или Intel Cyclone V) КЛБ обычно содержит 4–8 логических элементов (LE). Каждый LE включает:

  • одну 4-входовую или 6-входовую LUT;
  • один триггер с возможностью синхронного/асинхронного сброса;
  • выходной мультиплексор.

КЛБ также имеет встроенную память (distributed RAM) объёмом до 64 бит, которая может использоваться как регистровый файл или сдвиговый регистр.

Коммутационная сеть

КЛБ соединяется с другими блоками через программируемую матрицу соединений (Switch Matrix), состоящую из транзисторных ключей. Соединения бывают:

  • локальные — внутри одного КЛБ;
  • глобальные — между КЛБ через длинные линии (long lines);
  • направленные — для тактовых сигналов и сбросов.

Классификация

По типу логических элементов

  • На основе LUT — наиболее распространённый тип (Xilinx, Altera, Lattice). LUT может быть 4-входовой (4-LUT) или 6-входовой (6-LUT). В FPGA с 6-LUT один КЛБ может реализовывать две функции от 5 входов или одну от 6.
  • На основе мультиплексоров — используется в некоторых FPGA (например, Actel). Вместо LUT применяются мультиплексоры, управляемые входными сигналами.
  • Гибридные — сочетают LUT и встроенные арифметические блоки (DSP-срезы).

По числу триггеров

  • Однотриггерные — простые КЛБ для базовых схем.
  • Многотриггерные — до 4 триггеров на логический элемент, что позволяет реализовывать конвейерные структуры.

По архитектуре FPGA

  • Симметричная — КЛБ расположены в регулярной матрице (Xilinx).
  • Иерархическая — КЛБ объединены в кластеры (Altera).
  • Морфологическая — КЛБ с изменяемой конфигурацией (например, Xilinx Virtex).

Применение

КЛБ используются в FPGA для реализации широкого спектра цифровых схем:

  • Комбинационная логика — дешифраторы, мультиплексоры, компараторы.
  • Последовательностные схемы — регистры, счётчики, конечные автоматы.
  • Арифметические операции — сложение, умножение, деление (с использованием цепей быстрого переноса).
  • Цифровая обработка сигналов — фильтры, БПФ, свёртки.
  • ИнтерфейсыUART, SPI, I2C, Ethernet.
  • Встраиваемые системы — процессорные ядра (например, MicroBlaze, Nios II).

Примеры конкретных применений:

  • В авионике — системы управления полётом, где требуется перепрограммирование без замены оборудования.
  • В телекоммуникациях — базовые станции, где FPGA с КЛБ обрабатывают протоколы LTE/5G.
  • В научных приборах — ускорители частиц, где КЛБ реализуют триггерные схемы с задержками менее 1 нс.

Характеристики и производительность

Ключевые параметры КЛБ:

  • Число входов LUT — определяет сложность реализуемых функций. 6-LUT позволяет реализовать любую функцию от 6 переменных.
  • Задержка распространения — время от входа LUT до выхода триггера, обычно 0,5–2 нс.
  • Частота переключения — максимальная тактовая частота, до 1 ГГц в современных FPGA.
  • Энергопотребление — динамическое (зависит от активности) и статическое (ток утечки). В FPGA с КЛБ на 28 нм техпроцессе — около 0,1–0,5 мВт на один логический элемент.

Производительность КЛБ оценивается в логических элементах (LE) или вентилях. Один LE эквивалентен примерно 10–20 логическим вентилям. Современные FPGA содержат от 10 000 до 10 миллионов LE.

Сравнение с другими технологиями

ПараметрКЛБ (FPGA)CPLDASIC
ГибкостьВысокая (перепрограммирование)Средняя (однократное программирование)Низкая (фиксированная маска)
ПроизводительностьСредняя (задержки на коммутацию)Высокая (меньше задержек)Максимальная
ЭнергопотреблениеВысокое (из-за коммутации)СреднееНизкое
Стоимость разработкиНизкая (без масок)СредняяВысокая (миллионы долларов)
Область примененияПрототипирование, гибкие системыЗамена дискретной логикиМассовое производство

КЛБ уступают ASIC по производительности и энергопотреблению, но превосходят по гибкости и времени выхода на рынок.

Интересные факты

  • Первый FPGA XC2064 содержал всего 64 КЛБ, каждый из которых имел 4-входовую LUT и один триггер.
  • В FPGA Xilinx Virtex-7 (2012 год) КЛБ содержат 6-входовые LUT и до 4 триггеров, что позволяет реализовать до 2 миллионов логических вентилей на один блок.
  • В 2023 году компания AMD (признана нежелательной в РФ) приобрела Xilinx, что усилило конкуренцию в сегменте FPGA.
  • В России разрабатываются собственные FPGA на основе КЛБ, например, серия «Эльбрус» (АО «МЦСТ») и «Байкал» (АО «Байкал Электроникс»), которые ориентированы на импортозамещение в оборонной и космической промышленности.

Источники

  • Xilinx. «7 Series FPGAs Configurable Logic Block User Guide» (UG474).
  • Altera (Intel). «Cyclone V Device Handbook: Logic Elements and Logic Array Blocks».
  • «FPGA Architecture: Survey and Challenges» — IEEE Transactions on Very Large Scale Integration Systems, 2015.
  • «Конфигурируемые логические блоки в ПЛИС» — журнал «Электроника: наука, технология, бизнес», 2020.
  • «Программируемые логические интегральные схемы» — учебное пособие, МГТУ им. Н.Э. Баумана, 2019.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →