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

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


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

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

Как мы видим, на рисунке логическая ячейка состоит из 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)
iliasam
"Но она никак не могла пройти модерацию (по неизвестной мне причине)"
Подозреваю, это потому, что статья слишком короткая.
Вот пример интересной, хоть и переводной статьи: https://habr.com/ru/articles/520420/
Liarddead Автор
Она изначально задумывалась очень короткой и простой. Я стараюсь избегать больших и длинных статей написанных в академическом стиле. Такие статьи очень курты и почётны, но для меня слишком сложны в написании. Я стараюсь сделать максимально краткую выжимку из материала и интересно это обыграть. Собственно поэтому и есть FPGA-тян.