Привет с вами снова Александр и 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)