Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_ПКСнаПЛС_Лк.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

Тема 2. Базові структури програмованих логічних пристроїв

ПРОГРАМОВАНА ЛОГІКА

Програмовані логічні пристрої (PLD – Programmable Logic Device) були розроблені в середині 70-х років. Ідея полягала в створенні комбінаційних логічних схем, які були б програмовані на рівні апаратних засобів. Інакше кажучи, PLD - універсальна мікросхема, апаратні засоби якої можуть бути реконфігуровані для одержання конкретного пристрою.

Рис. 1 – Архітектура ПЛМ (y0=x0x1+x0x1x2x3 + ...)

Перші PLD називали PAL (Programmable Array Logic), або PLA (Programmable Logic Array), залежно від схеми програмування. Спочатку використовували тільки логічні вентилі (без тригерів), у такий спосіб дозволяючи тільки виконання комбінаційних схем. Потім були розроблені регістрові PLD, що містили один тригер на кожний вивід схеми. Це дозволяло здійснювати прості послідовні функції.

У 1980-х роках додаткова логічна схема була підключена до кожного виходу PLD. Новий осередок (Макроосередок, макрокомірка) містив, крім тригера, логічні вентилі й мультиплексори. Крім того, сама комірка була програмована, що дозволяло організувати кілька режимів роботи. Додатково, був уведений зворотний зв'язок вихідного сигналу схеми до програмованого масиву, що давало більшу гнучкість PLD. Цю нову структуру PLD називали узагальненим PAL (GAL – generic PAL). Подібна архітектура була відома як PALCE (КМОН PAL електрично перепрограмований) пристрій.

Усі названі ПЛІС (PAL, PLA, регістрові PLD (до кожного виводу PAL і PLA підключається тригер) і GAL/PALCE (до кожного виводу PAL і PLA крім тригера підключається додаткова логіка, що дозволяє реалізовувати більш складні алгоритми обробки)), взяті разом, називаються SPLD (Simple PLD - простий PLD). GAL/PALCE – єдиний пристрій, який ще виготовляється в окремому корпусі. У подальшому кілька пристроїв GAL були виготовлені на тому ж самому кристалі, з використанням більш складної схеми маршрутизації, передової технології, і кількох додаткових особливостей (підтримка JTAG та ін.). Цей підхід став відомим як CPLD (Complex PLD - складний PLD). CPLD сьогодні досить популярні через їхню високу щільність, ефективність та низькі ціни.

Нарешті у середині 1980-х років були розроблені FPGA (Field Programmable Gate Arrays). FPGA відрізняються від CPLD архітектурою, технологією, внутрішніми особливостями та вартістю. Вони призначені головним чином для розробки складних цифрових схем.

Таким чином, ПЛІС випускаються декількох видів:

1. Прості ПЛІС (SPLD) - PAL, PLA, регістрові PAL/PLA, GAL;

2. Складні PLD (CPLD);

3. FPGA.

входи

входи

архітектура PAL

архітектура PLA

Рис. 2 – Архітектура простих ПЛІС

Усі PLD (прості або складні) енергонезалежні. Вони можуть бути одноразово програмовані (OTP- one-time programmable), коли використовуються плавкі перемички, або перепрограмованими, зі СППЗП (ел. стирання програмованих ПЗП) або флеш – пам’яттю (у більшості нових пристроїв). З іншого боку, FPGA використовують статичну оперативну пам’ять для зберігання зв'язків. У цьому випадку конфігурація завантажується із зовнішньої постійної пам’яті. Є, однак, енергонезалежні варіанти. Єдине фундаментальне розходження між ними - PAL має програмовані зв'язки «І» та фіксовані зв'язки «АБО», а в PLA, обидва види зв'язків програмовані. Основною перевагою була більша гнучкість. Однак, більш високі затримки у внутрішніх вузлах понизили швидкодію схеми.

АРХІТЕКТУРА FPGA

Основна архітектура FPGA зображена на рис. 3. Пристрій складається з матриці CLB (Configurable Logic Blocks -конфігуровані логічні блоки), зв'язаних матрицею перемикачів (switch matrix) (рис. 3). Внутрішня архітектура CLB відрізняється від архітектури PLD. Вона заснована на пошуковій таблиці (lookup table). Крім того, в FPGA число тригерів набагато більше, ніж в CPLD, що дозволяє створювати більш складні послідовні схеми.

Рис. 3 – Архітектура FPGA

Основна ідея мікросхем FPGA полягає в тому, що будь-яка функція може бути описана таблицею істинності. Тому мікросхеми цього типу реалізують логічну функцію на основі таблиці перекодування (look-up table), що представляє собою однобітний ОЗУ на 16 комірок (рис. 4).

Рис. 4 – Таблиця перекодування

У ЛТ за адресою G3, G2, G1, G0 записана одиниця, якщо код адреси являє собою конституєнту одиниці заданої чотиривходової логічної функції. Наприклад, якщо за адресою 1,1,1,1 записана одиниця, а по іншим адресами - нуль, то ЛТ реалізує чотиривходову функцію І. На рис.4 показаний приклад кодування функції Виключаюче Або на чотири входи.

Матриця з'єднань також може бути запрограмована і дозволяє з'єднувати ці блоки в різні конфігурації. Програмування схеми досягається в такий спосіб. Вся схема ПЛІС «пронизана» комірками конфігураційного ОЗУ. Кожна клітинка цього ОЗУ – це елемент, який може містити або '0' або '1'. Блоки з'єднуються провідниками через ключі, до кожного з яких підключена одна комірка конфігураційного ОЗУ. Якщо осередок містить 1, то ключ замкнутий, і з'єднання є, якщо 0, то ключ розімкнути, і з'єднання немає. Програмування ПЛІС полягає в процесі запису відповідних значень в конфігураційну пам'ять кристала. Воно може бути здійснено просто завантаженням значень з комп'ютера через відповідний роз'єм на платі, наприклад JTAG.

Крім підтримки JTAG і різних логічних рівнів, включені додаткові особливості: статичні ОЗП, множення тактової частоти (PLL або DLL), інтерфейс PCI. Деякі пристрої також включають спеціалізовані блоки, зокрема сигнальні процесори і мікропроцесори. Інше фундаментальне розходження між FPGA й CPLD полягає в пам'яті сполучних схем. У той час як CPLD енергонезалежні, більшість FPGA використовують статичні ОЗП. Цей підхід заощаджує місце на кристалі й знижує вартість мікросхеми, оскільки FPGA містить дуже велику кількість програмованих взаємозв'язків, але вимагає зовнішнього ПЗП. Є, однак, енергонезалежні FPGA із плавкими перемичками (antifuse), які застосовуються у випадках, коли перепрограмування не потрібно.

СИСТЕМИ НА КРИСТАЛІ

Подальший розвиток архітектур йде по шляху створення комбінованих структур, що поєднують зручність реалізації алгоритмів ЦОС на базі LUT і реконфігурованих модулів пам'яті, характерних для FPGA-структур і багаторівневих ПЛІС із зручністю реалізації на CPLD - архітектурах. Так, ПЛІС АРЕХ20К фірми Altera містять в собі логічні елементи всіх перерахованих типів, що дозволяє застосовувати ПЛІС як основну елементну базу для «систем на кристалі» (system-on-chip, SOC, SoC).

SOC — це така структура електронної схеми, що містить функціональні складові цілого пристрою (наприклад комп'ютера) на одній мікросхемі. В залежності від призначення SoC може оперувати як цифровими сигналами, так і аналоговими, аналого-цифровими, а також частотами радіодіапазону. Типовим застосуванням таких схем є широке різноманіття вбудованих систем. Типова SoC вміщує: мікроконтролер, мікропроцесор чи процесор цифрових сигналів. Деякі схеми обладнані більш ніж одним процесором, тоді їх ще називають MPSoC (Multiprocessor System-on-Chip), блок пам'яті, який може працювати із такими типами пам'яті: ROM, RAM, EEPROM та флеш, джерело опорної частоти, наприклад кварцеві генератори та кола з оберненим зв'язком (phase-locked loops – цифрова система фазової автопідстройки частоти), таймери, лічильники та кола затримок, стандартні інтерфейси для зовнішніх пристроїв: USB, FireWire, Ethernet, UART, SPI, входи та виходи цифро-аналогових и аналого - цифрових перетворювачів, регулятори напруги та стабілізатори живлення.

КЛАСИФІКАЦІЯ ПЛІС

Архітектура та можливості сучасних ПЛІС дуже різні, але у більшості випадків можна навести декілька класифікаційних ознак:

  • ступінь інтеграції або логічна ємність;

  • архітектура логічного елемента мікросхеми;

  • тип запам’ятовуючого елемента для пам’яті конфігурації;

  • наявність вбудованих модулів (процесорних блоків, внутрішньої пам’яті, помножувачів, блоків цифрової обробки сигналів, інтерфейсів для різноманітних протоколів та інших).

Ступінь інтеграції або логічна ємність – найбільш важливий показник мікросхем ПЛІС. Сучасні мікросхеми включають в себе сотні мільйонів транзисторів, але мікросхема ПЛІС має дуже велику надлишковість структури, тому для більш коректного визначення об’єму мікросхем виробники використовували такий параметр як кількість еквівалентних логічних вентилів типу 2І-НІ або 2АБО-НІ, які б використовувались для реалізації пристроїв тієї ж самої складності, що і на ПЛІС. Такий спосіб розрахунку об’єму ПЛІС використовувався приблизно до 2004 року. Мікросхеми, які випускались на той час, мали обсяг від 10 тисяч еквівалентних логічних елементів (для мікросхеми Flex10K10 фірми ALTERA) до 5,3 мільйонів еквівалентних логічних елементів (для мікросхеми APEX ІІ фірми ALTERA). Слід відмітити, що кожна з фірм, що випускає мікросхеми програмованої логіки, розраховує кількість еквівалентних вентилів за власною методикою, що ускладнює порівняння мікросхем різних типів. Крім того, в структуру мікросхеми крім власне логічних елементів входить ще дуже багато різноманітних вузлів (елементи вводу-виводу інформації, блоки пам’яті, ресурси трасування сигналів і т.д.), кожен з яких описується різною кількістю еквівалентних логічних елементів. Це також ускладнює розрахунок у еквівалентних вентилях.

Тому сьогодні для вимірювання ємності мікросхеми використовують такий параметр як кількість логічних елементів. Але, оскільки архітектура логічних елементів для різних мікросхем навіть одного виробника відрізняється від іншої, то порівняння мікросхем стає ще більш ускладненим. Для порівняння ПЛІС різних виробників можна порекомендувати статтю [1].

З іншого боку мікросхеми основних виробників ПЛІС можуть бути поділеними на такі умовні класи як дешеві мікросхеми (Lowest Cost), мікросхеми середнього класу (middle) та hi-end мікросхеми. Так серед продукції компанії Altera до мікросхем класу Lowest Cost відносяться мікросхеми серії Cyclone. Для мікросхем компанії Xilinx це серія Spartan [3, 7, 13, 16]. Вартість найменшої з таких мікросхем складає близько 12 доларів. До мікросхем середнього класу компанія Altera відносить мікросхеми серії Arria, що орієнтовані на реалізацію швидкісних інтерфейсів вводу-виводу. Вартість найменшої з цих мікросхем складає близько 170 доларів. Мікросхеми класу hi-end є найкращим досягненням виробника і до таких мікросхем відносяться мікросхеми серії Statix компанії Altera та Virtex компанії Xilinx [3, 8, 17, 18]. Вартість таких мікросхем може сягати кількох тисяч доларів.

За архітектурою логічного елементу (Logic Element – LE) найбільш часто мікросхеми розділяють на два типи [2, 4]:

CPLD – Complex Programmable Logic Devices – пристрій зі складною програмованою логікою;

FPGA – Field Programmable Gate Array – матриця програмованих логічних елементів.

Мікросхеми з архітектурою CPLD реалізовують в логічному елементі складну логічну функцію у вигляді логічного рівняння, яке формується за допомогою функцій «І» та «АБО». Це більш ускладнений варіант ПЛМ мікросхем. Конфігураційні дані в мікросхемах цього виду зберігається у вбудованій пам’яті типу Flash, тому для своєї роботи мікросхеми не потребує зовнішнього завантажувача конфігурації. Найбільш характерними представниками такого виду ПЛІС можуть слугувати мікросхеми серії МАХ7000 та МАХ3000 фірми ALTERA або CoolRunner та XC9500 фірми XILINX [6, 9, 10, 12, 14]. Більш детально архітектура мікросхеми МАХ3000 буде розглянута у параграфі 1.3.

Основна ідея мікросхем FPGA полягає в тому, що будь-яка функція може бути описана таблицею дійсності. Тому мікросхеми цього типу реалізують логічну функцію на основі таблиці перекодування (look-up table), яка за принципом роботи подібна до постійного запам’ятовуючого пристрою. Класичним прикладом такого типу мікросхем можна назвати серії FLEX 10K фірми Altera, яке свого часу було дуже поширене і описане в багатьох книгах та підручниках [9, 11]. Ми ж розглянемо архітектуру FPGA мікросхем на прикладі мікросхем Cyclone ІІ фірми ALTERA в параграфі 1.1. До FPGA мікросхем також відносяться ПЛІС серії Stratix фірми Altera та Spartan і Virtex компанії Xilinx [3, 10].

Тип запам’ятовуючого елемента пам’яті конфігурації визначає можливості ПЛІС по програмуванню, перепрограмуванню і збереженню інформації при відключенні живлення.

Сучасні мікросхеми використовують ЕEPROM, Flash або SRAM технологією для виготовлення запам’ятовуючого елементу, що дає можливість перепрограмувати мікросхему.

Мікросхеми, що використовують технологію ЕEPROM або Flash забезпечують енергонезалежне збереження конфігурації, а також і багаторазове програмування мікросхеми. Мікросхема на SRAM повинна кожен раз програмуватися при ввімкненні живлення. Конфігураційні дані в цьому випадку зберігається у зовнішньому ПЗП або у персональному комп’ютері.

Наявність вбудованих модулів. Окрім стандартних логічних елементів ПЛІС може містити також апаратні блоки, які виконують спеціалізовані функції. Найбільш часто в мікросхемах розміщують блоки пам’яті, помножувачі, блоки фазового автопідстроювання частоти. Кількість та наявність таких блоків визначається складністю та призначенням мікросхеми. Наявність таких блоків з одного боку ускладнює мікросхему, підвищуючи її вартість. З іншого боку апаратні ядра значно потужніші за швидкодією у порівнянні з такими самими пристроями, створеними на логічних елементах [4].