Привет с вами снова Александр и FPGA-тян. На самом деле хочется признаться, что эта статья задумывалась как первая, поэтому и имеет в названии слово " Знакомство". Но она никак не могла пройти модерацию (по неизвестной мне причине), однако я всё же решил выложить и этот пробный материал. Поэтому давайте мысленно представим, что она всё же вышла первой и будем отталкиваться от этого при прочтении.

Первые ПЛИС

Итак, давным-давно в далекой галактике придумали электронные компоненты объединять вместе на кристалле, тогда появились первые ИС (Интегральные схемы), но первые ИС были монолитные и неразборные, потому могли применяться только для отдельных задач, поэтому люди решили сделать  их настраиваемыми, то есть программируемыми. Вот и получаем расшифровку ПЛИС – Программируемые Логические Интегральные Схемы. Одними из первых были PAL (programmable array logic), они состояли из множества входов проходящих через программируемый массив логических элементов AND и фиксированный набор элементов OR, а выходы подаются на D-триггеры. Даже рисуночек остался. “Программирование” такой схемы выполняется c помощью пережигаемых перемычек (т.е. такие микросхемы однократно программируемые, что не очень удобно)

Рисунок 1 – PAL
Рисунок 1 – PAL

Ещё были CPLD (Complex Programable Logic Device). Смысл этой микросхемы был в реализации нескольких PAL схемы на одном кристалле и добавления возможности передачи сигналов между ними. Однако современные CPLD являются уже многократно программируемыми, а их узлы выполнены с использованием флэш памяти. Ну вот, мы уже и подошли вплотную к FPGA.

Да, ты права, но время читателей ограничено, поэтому я стараюсь объяснять, максимально просто не вдаваясь в детали. Так о чём мы разговаривали? Правильно о FPGA.

FPGA или всё же ПЛИС?

Итак, FPGA (Field-Programmable Gate Array) или по-другому массив программируемых логических ячеек. Упрощено можно сказать, что внутри плис есть огромное количество ячеек LUT (Look-UP Table), через которые и реализуется функция изменения логики работы схемы (Рис.2).

Рисунок 2 – устройство LUT
Рисунок 2 – устройство LUT

Как мы видим, на рисунке логическая ячейка состоит из LUT на 3 входа, из мультиплексора и триггера для хранения состояния сигнала. Также мы видим основной принцип реализации логической схемы. В примере приведена логическая функция от трёх аргументов:

Y=(a&b)|(~c).

Далее для перевода логики работы составим таблицу истинности от трёх переменных как на картинке. И вся эта таблица напрямую записывается в LUT.  Далее выход lut идёт через мультиплексор на триггер. Вот в общем то и основной принцип работы FPGA.

Да, на сегодня мы прощаемся с вами! Спасибо всем тем, кто вдумчиво прочитал эту статью и низкий вам поклон.

Список литературных источников

1.    https://ru.wikipedia.org/wiki/ПЛИС#Ранние_ПЛИС

2.    https://ru.wikipedia.org/wiki/Интегральная_схема

3.    https://ru.wikipedia.org/wiki/Программируемая_пользователем_вентильная_матрица

4.    ПЛИС С XILINX. Языки описания аппаратуры VHDL/Verilog САПР, приемы проектирования (Aвтор И. Е. Тарасов)

5.    FPGA prototyping by Verilog examples (Автор PONG P.CHU)

Комментарии (4)


  1. iliasam
    24.05.2025 08:53

    "Но она никак не могла пройти модерацию (по неизвестной мне причине)"
    Подозреваю, это потому, что статья слишком короткая.
    Вот пример интересной, хоть и переводной статьи: https://habr.com/ru/articles/520420/


    1. Liarddead Автор
      24.05.2025 08:53

      Она изначально задумывалась очень короткой и простой. Я стараюсь избегать больших и длинных статей написанных в академическом стиле. Такие статьи очень курты и почётны, но для меня слишком сложны в написании. Я стараюсь сделать максимально краткую выжимку из материала и интересно это обыграть. Собственно поэтому и есть FPGA-тян.


  1. slepmog
    24.05.2025 08:53

    Четвёртая запись в truth table неверна.


    1. Liarddead Автор
      24.05.2025 08:53

      Верно там должно получаться ноль