FPGA
Програмована користувачем вентильна матриця, ПКВМ (англ. Field-Programmable Gate Array, FPGA) — напівпровідниковий пристрій, що може бути налаштований виробником або розробником після виготовлення; звідси назва: «програмується користувачем». ПКВМ програмуються шляхом зміни логіки роботи принципової схеми, наприклад, за допомогою вихідного коду мовою проектування (типу VHDL), на якому можна описати цю логіку роботи мікросхеми. ПКВМ є однією з архітектурних різновидів програмованих логічних інтегральних схем (ПЛІС).
ПКВМ можуть бути модифіковані практично в будь-який момент у процесі їх використання. Вони складаються з конфігурованих логічних блоків, подібних перемикачам з множиною входів і одним виходом (логічні вентилі або gates). У цифрових схемах такі перемикачі реалізують базові виконавчі операції AND, NAND, OR, NOR і XOR. У більшості сучасних мікропроцесорів функції логічних блоків фіксовані і не можуть модифікуватися. Принципова відмінність ПКВМ полягає в тому, що і функції блоків, і конфігурація з'єднань між ними можуть змінюватися за допомогою спеціальних сигналів, що посилаються схемою. У деяких спеціалізованих інтегральних схемах (ASIC) використовуються логічні матриці, аналогічні ПКВМ за структурою, однак вони конфігуруються один раз в процесі виробництва, у той час як ПКВМ можуть постійно перепрограмувати і міняти топологію з'єднань в процесі використання. Однак, така гнучкість вимагає істотного збільшення кількості транзисторів мікросхеми.
Історія
Індустрія ПКВМ виросла з програмованих ПЗП (ППЗП) і програмованих логічних інтегральних схем (ПЛІС). Обидва ці типи пристроїв є програмованими, причому програмування може виконуватися або на заводі-виробнику, або користувачем, проте, програмування їх полягає тільки у зміні зв'язків між вентилями. Співзасновник Xilinx Росс Фрімен і Берні Вондершміт винайшли першу комерційно придатну ПКВМ XC2064 у 1985 році. Ця мікросхема, що має програмовані вентилі і програмовані з'єднання між вентилями, поклала початок нової технології і нового ринку. Через 20 років за цей винахід Росс Фрімен був занесений до Національної Зали Слави винахідників.
Сама концепція програмованих вентильних матриць, логічних вентилів і логічних блоків запатентована Девідом Пейджем і Луверном Петерсоном в 1985 році. У 1990-х роках відбувся різкий стрибок інтересу до ПКВМ, зросла їх складність та обсяги виробництва. Якщо на початку 1990-х років ПКВМ використовувалися в основному в області телекомунікацій і мереж зв'язку, то до кінця десятиліття вони знайшли своє застосування в споживчих товарах, в автомобільній промисловості та інших галузях.
Сплеск слави ПКВМ стався в 1997 році, коли Адріан Томпсон об'єднав генетичні алгоритми і технологію ПКВМ для створення пристрою розпізнавання мовлення (звуку). Алгоритм Томсона дозволив за допомогою вентильної матриці розміром 64×64 клітин на чипі фірми Xilinx створити конфігурацію, необхідну для вирішення поставленого завдання.
Архітектура
ПКВМ включають в себе три головних програмованих елементи: нескоммутовані програмовані логічні блоки (ПЛБ), блоки введення-виведення (БВВ) і внутрішні зв'язки. ПЛБ є функціональними елементами для побудови логіки користувача, БВВ забезпечують зв'язок між контактами корпусу і внутрішніми сигнальними лініями. Програмовані ресурси внутрішніх зв'язків забезпечують управління шляхами сполучення входів і виходів ПЛБ і блоків введення-виведення на відповідні мережі. Всі канали трасування мають однакову ширину (однакова кількість провідників). Більшість блоків БВВ вписуються або в один рядок (по висоті), або в один стовпець (по ширині) масиву вентилів.
Логічний блок класичної ПКВМ складається з таблиці пошуку на 4 входи і тригера. В останні роки виробники почали переходити на таблиці пошуку з 6 входами у високопродуктивних частинах схеми, пояснюючи це необхідністю підвищення продуктивності.
Логічний блок має таблицю пошуку на 4 входи і вхід синхронізації (clock). Вихід блоку тільки один, це може бути регістрова або нерегістровая вихідна таблиця пошуку. Оскільки сигнали синхронізації в комерційних ПКВМ (а часто й інші сигнали, розпаралелюючих на велику кількість входів — high-fanout signals) трасуються особливим чином спеціальними трасувальними ланцюгами, управління цими сигналами робиться окремо.
Входи розташовані на окремих сторонах логічного блоку, вихідний контакт може трасуватися у двох каналах: або праворуч від блоку, або знизу. Вихідні контакти кожного логічного блоку можуть з'єднуватися з трасувань сегментами в суміжних каналах. Аналогічно, контактний майданчик блоку введення-виведення (pad) може з'єднуватися з трасуваним елементом у будь-якому суміжному каналі. Наприклад, верхній контактний майданчик чипа може з'єднуватися з будь-яким з W провідників (де W — ширина каналу) в горизонтальному каналі, розташованому безпосередньо під ним.
Як правило, трасування ПКВМ несегментоване, тобто кожен сегмент провідника з'єднує лише один логічний блок з перемикаючим блоком. Через огибания програмованих перемикачів у блоці перемикача трасування виходить більш довгим. Для збільшення швидкості внутрішньосистемних з'єднань, в деяких архітектурах ПКВМ використовуються більш довгі трасувальні з'єднання між логічними блоками.
У місці перетину вертикальних і горизонтальних каналів створюються перемикаючі блоки. При такій архітектурі для кожного провідника, що входить до перемикальних блок, існують три програмованих перемикача, які дозволяють йому підключатися до трьох інших провідникам в суміжних сегментах каналу. Модель чи топологія вимикачів, використовувана в цій архітектури, є планарної або доменної топологією перемикальних блоків. У цій топології провідник траси номер один підключається тільки до провідника траси номер один у суміжних каналах, провідник траси номер 2 підключається тільки до провідників траси номер 2 і так далі.
Сучасні сімейства ПКВМ розширюють перераховані вище можливості і включають вбудовану функціональність високого рівня. Маючи ці загальні функції, вбудовані в кремній, можна скоротити площу кристала, до того ж ці функції будуть працювати швидше, ніж якщо їх створювати на базі примітивів. До таких засобів належать мультиплексори, блоки цифрової обробки сигналів, вбудовані процесори, швидка логіка введення-виведення і вбудована пам'ять. ПКВМ Zynq UltraScale+RFSoCs компанії Xilinx відрізняються наявністю у їх структурі до 16 швидкодіючих АЦП і ЦАП[1].
ПКВМ також широко застосовуються для систем перевірки придатності, у тому числі в докремнєвій і післякремнєвій перевірці придатності, а також при розробці вбудованих програм. Це дозволяє компаніям-виробникам інтегральних схем перевіряти працездатність своїх пристроїв до виготовлення їх на заводі, скорочуючи час виходу виробу на ринок.
Див. також
Примітки
Джерела
- Угрюмов Е. П. Глава 7. Программируемые логические матрицы, программируемая матричная логика, базовые матричные кристаллы / Цифровая схемотехника. Учеб. пособие для вузов. Изд.2, БХВ-Петербург, 2004. С. 357.