Програмо́вана користуваче́м ве́нтильна ма́триця, ПКВМ () — напівпровідниковий пристрій, що може бути налаштований виробником або розробником після виготовлення; звідси назва: «програмується користувачем». ПКВМ програмуються шляхом зміни логіки роботи принципової схеми, наприклад, за допомогою вихідного коду мовою проектування (типу VHDL), на якому можна описати цю логіку роботи мікросхеми. ПКВМ є однією з архітектурних різновидів програмованих логічних інтегральних схем (ПЛІС).
ПКВМ можуть бути модифіковані практично в будь-який момент у процесі їх використання. Вони складаються з конфігурованих логічних блоків, подібних перемикачам з множиною входів і одним виходом (логічні вентилі або gates). У цифрових схемах такі перемикачі реалізують базові виконавчі операції AND, NAND, OR, NOR і XOR. У більшості сучасних мікропроцесорів функції логічних блоків фіксовані і не можуть модифікуватися. Принципова відмінність ПКВМ полягає в тому, що і функції блоків, і конфігурація з'єднань між ними можуть змінюватися за допомогою спеціальних сигналів, що посилаються схемою. У деяких спеціалізованих інтегральних схемах (ASIC) використовуються логічні матриці, аналогічні ПКВМ за структурою, однак вони конфігуруються лише раз в процесі виробництва, у той час як ПКВМ можуть постійно перепрограмувати і міняти топологію з'єднань в процесі використання. Однак, така гнучкість вимагає істотного збільшення кількості транзисторів мікросхеми.
Історія Індустрія ПКВМ виросла з програмованих мікросхем постійної пам'яті ПЗП (EPROM) і програмованих логічних інтегральних схем (ПЛІС). Обидва ці типи пристроїв є програмованими, причому програмування може виконуватися або на заводі-виробнику, або користувачем, проте, програмування їх полягає тільки у зміні зв'язків між вентилями. Співзасновник 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 швидкодійних АЦП і ЦАП.
ПКВМ також широко застосовуються для систем перевірки придатності, у тому числі в докремнєвій і післякремнєвій перевірці придатності, а також при розробці вбудованих програм. Це дозволяє компаніям-виробникам інтегральних схем перевіряти працездатність своїх пристроїв до виготовлення їх на заводі, скорочуючи час виходу виробу на ринок.
Див. також ASSP (електроніка) Конструювання мікросхем САПР Формальна верифікація Фізична верифікація
Примітки
Джерела Угрюмов Е. П. Глава 7. Программируемые логические матрицы, программируемая матричная логика, базовые матричные кристаллы / Цифровая схемотехника. Учеб. пособие для вузов. Изд.2, БХВ-Петербург, 2004. С. 357.