Програмовані логічні інтегральні схеми
Програмовані логічні ІС (ПЛІС)
Ще недавно в розпорядженні розробника цифрових електронних пристроїв була лише «жорстка» логіка. Мистецтво проектування полягала в досягненні поставленої мети за допомогою мінімального числа ІМС, здатних виконувати лише строго певні функції. Пристрій налагоджували і вдосконалювали, перерізаючи друковані провідники і «навішуючи» дротові перемички і додаткові деталі. Нерідко помилки, допущені на етапі проектування, вдавалося виправити тільки ціною виготовлення нової друкованої плати.
Мікропроцесори ситуації майже не змінили, адже кожен з них вимагає досить складної «обв'язки» зі звичайних логічних елементів. До того ж у багатьох випадках спеціалізовані цифрові пристрої вирішують задачу ефективніше універсальних мікропроцесорних.
Революція почалася з появою ІМС ППЗУ і програмованих логічних матриць (ПЛМ або PLD - programmable logical device). Перепалюючи за допомогою програссатора передбачені в них плавкі перемички, розробник отримав можливість реалізувати в одній ІМС десяток майже будь-яких логічних функцій. Типовими представниками одноразово програмованих ППЗУ і ПЛМ - вітчизняні серії 556 і 1556. Але ІМС із зайвою перепаленою перемичкою доводилося викидати.
Багаторазово програмовані ПЗП з УФ стиранням, на жаль, мало підходять для реалізації логічних функцій через недостатнє швидкодії.
Деяке поширення отримали «замовні» ІМС на основі БМК (серії К1515 і К1520). БМК містять сотні логічних елементів і здатний замінити кілька десятків ІМС малої і середньої ступені інтеграції. Елементи з'єднують прямо на кристалі по потрібної замовнику схемою на останніх етапах виробничого циклу. Природно, замовляти такі ІМС має сенс при потребі не менше декількох сотень штук (nх100), а змінити що-небудь в готовому приладі неможливо.
Подальший розвиток технології ПЛМ і БМК призвело до створення програмованих логічних інтегральних схем (ПЛІС). Реалізовані ними функції можна багаторазово змінювати, нерідко для цього навіть не потрібно витягувати ІМС з пристрою, в якому вона працює.
Подібно БМК, кристал ПЛІС містить велику кількість однотипних логічних елементів. Основна відмінність в тому, що з'єднують елементи в потрібному порядку за допомогою електрично програмованих перемичок - ключів на МОП-транзисторах. А в кожному логічному елементі є перемикачі (мультиплексори), програмуючи які, можна змінювати їх функції. Майже всі зовнішні висновки ПЛІС універсальні. Будь-який з них може служити входом, виходом або бути двонаправленим. Деякі висновки мають додаткові функції, наприклад, служать для програмування конфігурації ІМС, що, однак, не виключає їх використання в якості звичайних входів або виходів.
За внутрішньої конфігурації і способу запам'ятовування конфігурації ПЛІС фірми Xilinx можна розділити на два види:
- CPLD (complex programmable logic device) - складна програмована логічна матриця (ХС7000 і ХС9500).
Подібно ОЗУ, FPGA зберігають задану конфігурацію тільки при включеному харчуванні і «забувають» її після виключення. Кожен раз, включивши харчування, таку ПЛІС необхідно програмувати заново. Програму зазвичай зберігають в установленому на одній платі з ПЛІС завантажувальному ПЗУ. Процедура перезапису виконується автоматично, після чого ПЛІС переходить в робочий режим.
В одному ПЗУ допускається зберігати інформацію для кількох ПЛІС. Одна з них служить провідною (master) і закінчивши власну завантаження, управляє записом даних в ведені (slave) ІМС. Призначення провідною або відомою ніяк не впливає на логічні функції, що їх ПЛІС після завантаження.
Мікросхеми CPLD зберігають конфігурацію незалежно від наявності напруги живлення. У мікросхеми ХС7000 конфігурацію заносять за допомогою програматора, а перуть УФ випромінюванням. Такі ПЛІС встановлюють, як правило, в уже налагоджені пристрою. Для налагодження нових пристроїв вони незручні через тривалу (до години) процедури стирання (причому всієї інформації).
Мікросхеми ХС9500, виконані по технологііFLASH, можна неодноразово програмувати не витягаючи з пристрою, в якій вони встановлені. Для цього в них є спеціальний порт (JTAG). Щоб записати або внести в неї зміни, висновки цього порту через кілька буферних мікросхем з'єднують кабелем з портом LPT персонального комп'ютера. Через нього ж комп'ютер може отримати інформацію про логічних рівнях на всіх висновках ПЛІС і контрольних точках всередині неї.
Можливість організувати такий порт передбачена і в ПЛІС структури FPGA останніх серій.

На рис.1 схематично показана структура кристала мікросхеми FPGA. Її центральну частину займає матриця конфігуруються логічних блоків (КЛБ), а по периметру знаходяться блоки введення / виводу (БВВ), з'єднані з контактними майданчиками. Подання про складність сучасних ПЛІС дає табл.1. де наведені відомості про кількість КЛБ і БВВ, наявних в серії ХС4000. Вентилі і тригери в даному випадку не самостійні елементи, а входять до складу зазначених блоків. Кожен з БВВ здатний бути вхідним або вихідним.

По кутах кристала розташовані допоміжні вузли. Вільну від логічних елементів площу займають канали трасування, де прокладено велику кількість провідників, на перетині яких знаходяться програмовані ключі. Кожен ключ складається з 6 МОП-транзисторів, з'єднаних як показано на рис.2.

Ставлячи відкрите чи закрите стан кожного з транзисторів, можна з'єднати КЛБ між собою і з БВВ потрібним чином.