📌 Programmable Logic

Programmable Logic — класс цифровых логических устройств, структура которых может быть сконфигурирована пользователем после производства. Используется для реализации схем, специфичных под задачу.

🧠 Как работает

Programmable Logic состоит из базовых логических элементов (например, LUT, Flip-Flops), объединённых в CLB и соединённых через программируемую маршрутизацию:

  • Пользователь описывает логику (на HDLVerilog или VHDL)
  • Код компилируется в битстрим — конфигурационный файл
  • Битстрим загружается в устройство: FPGA, CPLD, eFPGA
  • После загрузки устройство начинает функционировать как цифровая схема

Типы логики:

Тип устройстваОсобенности
FPGAГибкость, масштабируемость, SRAM-конфигурация
CPLDМеньше по объёму, быстрее конфигурация (FLASH)
eFPGAВстраиваемый блок в SoC
PLA, PALУстаревшие варианты с фиксированной структурой

⚙️ Где применяется

ОбластьПримеры
EmbeddedПользовательские периферии, GPIO
Digital Signal Processing DSPРеализация FIR, FFT, MAC
AI AcceleratorsАппаратные ядра для ML-алгоритмов
ASIC prototypingПроверка логики до массового производства
NetworkingFirewall, NAT, Packet Parser
Industrial ControlТаймеры, интерфейсы, PWM

💻 Пример (фрагмент Verilog)

module and_gate(input a, input b, output y);
  assign y = a & b;
endmodule

📐 Внутреннее устройство (на примере FPGA)

МодульНазначение
LUT (Look-Up Table)Булева логика
Flip-Flops / registersСинхронизация, хранение состояний
CLBСоставной логический блок
Routing MatrixКоммутация между CLB
BRAMБлоки встроенной памяти
DSP BlocksАЛУ, MAC для математики
IO BlocksИнтерфейс с внешними сигналами
PLL / Clock ManagementТактирование
Configuration LogicЗагрузка битстрима, проверка и управление

🧩 Связанные технологии

✅ Преимущества

  • Аппаратная гибкость без производства новых чипов

  • Быстрая итерация: можно изменить поведение за минуты

  • Идеально подходит для нестандартных или критичных задач

  • Высокая параллельность и низкие задержки

❌ Недостатки

  • Сложность разработки, требует знаний HDL

  • Большие размеры и энергопотребление по сравнению с ASIC

  • Задержки коммутации между блоками

  • Дорогие чипы в высокоплотных проектах