Програмована користувачем вентильна матриця

вентильна

Програмована вентильна матриця(ППВМ, англ. field-programmable gate array, FPGA) — напівпровідниковий пристрій, який може бути налаштований виробником або розробником після виготовлення; звідси назва: "програмована користувачем". ППВМ програмуються шляхом зміни логіки роботи принципової схеми, наприклад, за допомогою вихідного коду мовою проектування (типу VHDL), якою можна описати цю логіку роботи мікросхеми. ППВМ є одним з архітектурних різновидів програмованих логічних інтегральних схем (ПЛІС).

ППВМ можуть бути модифіковані практично будь-якої миті в процесі їх використання. Вони складаються з конфігурованих логічних блоків, подібних до перемикачів з безліччю входів і одним виходом (логічні вентилі або gates). У цифрових схемах такі перемикачі реалізують базові двійкові операції AND, NAND, OR, NOR та XOR. У більшості сучасних процесорів функції логічних блоків фіксовані і не можуть змінюватися. Принципова відмінність ППВМ полягає в тому, що і функції блоків, і конфігурація з'єднань між ними можуть змінюватися за допомогою спеціальних сигналів, що посилаються схемою. У деяких спеціалізованих інтегральних схемах (ASIC) використовуються логічні матриці, аналогічні ППВМ за будовою, проте вони конфігуруються один раз у процесі виробництва, тоді як ППВМ можуть постійно перепрограмуватися та змінювати топологію сполук у процесі використання. Однак така гнучкість потребує суттєвого збільшення кількості транзисторів мікросхеми.

Зміст

Галузь ППВМ виросла з програмованих ПЗП (ППЗП) та програмованих логічних інтегральних схем (ПЛІС). Обидва ці типи пристроїв є програмованими, причомупрограмування може виконуватися або на заводі-виробнику, або користувачем, однак програмування їх роботи полягає тільки в зміні зв'язків між вентилями [1] . Співзасновники Xilinx Росс Фрімен (англ.) українська. та Бернард Вандершміт (англ.) україн. винайшли першу комерційно придатну ППВМ XC2064 у 1985 році. Ця мікросхема, що має програмовані вентилі та програмовані з'єднання між вентилями, започаткувала нову технологію і новий ринок. Через 20 років за цей винахід Росс Фрімен був занесений до Національної Зали слави винахідників США (англ.) українців. .

Сама концепція програмованих вентильних матриць, логічних вентилів та логічних блоків запатентована Девідом Пейджем та Луверном Петерсоном у 1985 році [2] [3] . У 1990-х роках стався різкий стрибок інтересу до ППВМ, зросла їхня складність та обсяги виробництва. Якщо на початку 1990-х років ППВМ використовувалися в основному в галузі телекомунікацій та мереж зв'язку, то до кінця десятиліття вони знайшли своє застосування у споживчих товарах, автомобільній промисловості та інших галузях.

Сплеск слави ППВМ стався у 1997 році, коли Адріан Томпсон об'єднав генетичні алгоритми та технологію ППВМ для створення пристрою, здатного відрізняти звукові тони частотою 1 КГц та 10 КГц. Генетичні алгоритми дозволили за допомогою вентильної матриці розміром 64х64 клітини на мікросхемі фірми Xilinx створити конфігурацію, необхідну для вирішення поставленого завдання [4] .

ППВМ включають три головних програмованих елемента:

  • нескоммутовані програмовані логічні блоки (ПЛБ);
  • блоки введення-виведення (БВВ);
  • внутрішні зв'язки.

ПЛБ є функціональними елементами для побудови логіки користувача. БВВ забезпечують зв'язокміж контактами корпусу та внутрішніми сигнальними лініями. Програмовані ресурси внутрішніх зв'язків забезпечують керування шляхами з'єднання входів та виходів ПЛБ та блоків введення-виведення (БВВ) на відповідні мережі [5] . Всі канали трасування мають однакову ширину (однакова кількість провідників). Більшість блоків вводу-виводу (БВВ) вписуються або в один рядок (за висотою), або в один стовпець (за шириною) масиву вентилів.

Логічний блок (ПЛБ) класичної ППВМ складається з таблиці істинності(див.обговорення)(англ. lookup table, LUT ) на чотири входи та одного тригера (див. малюнок нижче). В останні роки виробники почали переходити на таблиці істинності з більшим числом входів, що дозволяє задіяти менше логічних блоків для типових додатків [6] .

Логічний блок (ПЛБ) має таблицю істинності на чотири входи та вхід синхронізації (clock). Вихід блоку лише один — реєстрова чи нереєстрова вихідна таблиця істинності. Оскільки сигнали синхронізації в комерційних ППВМ (а часто й інші сигнали, що розпалюються на велику кількість входів - high-fanout signals) трасуються особливим чином спеціальними трасувальними ланцюгами, управління цими сигналами робиться окремо.

Для прикладу архітектури розташування контактів логічного блоку показано нижче.

Входи розташовані окремих сторонах логічного блоку; вихідний контакт може трасуватися у двох каналах: або праворуч від блоку, або знизу. Вихідні контакти кожного логічного блоку можуть з'єднуватися з трасувальними сегментами в суміжних каналах. Аналогічно, контактний майданчик блоку введення-виведення (pad) може з'єднуватися з трасувальним елементом у будь-якому суміжному каналі. Наприклад, верхній контактний майданчик чіпа можез'єднуватися з будь-яким із W провідників (де W - ширина каналу) у горизонтальному каналі, розташованому безпосередньо під ним.

Як правило, трасування ППВМ несегментоване, тобто кожен сегмент провідника з'єднує лише один логічний блок із перемикаючим блоком. Через обгинання програмованих перемикачів у перемикальному блоці трасування виходить довшим. Для збільшення швидкості внутрішньосистемних з'єднань, у деяких архітектурах ППВМ між логічними блоками використовуються довші трасувальні з'єднання.

У місці перетину вертикальних та горизонтальних каналів створюються перемикальні блоки. При такій архітектурі для кожного провідника, що входить у перемикач, існують три програмованих перемикача, які дозволяють йому підключатися до трьох інших провідників у суміжних сегментах каналу. Модель або топологія вимикачів, що використовується у цій архітектурі, є планарною або доменною топологією перемикачів. У цій топології провідник траси номер 1 підключається лише до провідника траси номер 1 у суміжних каналах, провідник траси номер 2 підключається лише до провідників траси номер 2 тощо. На малюнку нижче показані з'єднання перемикача.

Сучасні сімейства ППВМ розширюють перераховані вище можливості та включають вбудовану функціональність високого рівня. Завдяки наявності цих загальних функцій у кристалі кремнію можна зменшити площу кристала, до того ж за такої схеми ці функції працюватимуть швидше, ніж при їх реалізації на основі примітивів. Прикладами таких функцій є мультиплексори, блоки цифрової обробки сигналів, вбудовані процесори, швидка логіка вводу-виводу та вбудована пам'ять.

ППВМ також широко застосовуються для системперевірки придатності, у тому числі в докремнієвій та післякремнієвій перевірці придатності, а також при розробці програм для систем, що вбудовуються. Це дозволяє компаніям-виробникам інтегральних схем перевіряти працездатність своїх пристроїв до виготовлення на заводі, скорочуючи час виходу вироби ринку.