Інтерфейс JTAG та периферійне сканування
Терміном JTAG позначають сукупність засобів та операцій, що дозволяють проводити тестування ВІС/НВІС без фізичного доступу до кожного її висновку. Абревіатура JTAG виникла за найменуванням розробника - об'єднаної групи з тестів Joint Test Action Group. Терміном "периферійне сканування" (ПС) або англійською мовою Boundary Scan Testing (BST) називають тестування за JTAG стандартом (IEEE Std 1149.1). Таке тестування можливе лише для мікросхем, усередині яких
є набір спеціальних елементів - осередків периферійного сканування (осередків ПС), в англійській термінології BSC (Boundary Scan Cells) та схем керування їх роботою.
Осередки BSC розміщені між кожним зовнішнім виведенням мікросхеми і схемами кристала, що утворюють пристрій, що сам перевіряється. Дедалі більше сучасних мікросхем забезпечується інтерфейсом JTAG, т. е. можливостями периферійного сканування.
Основна концепція периферійного сканування ілюструє рис. 8.24, a. Комірки сканування BSC можуть працювати у різних режимах. У робочому режимі вони просто пропускають сигнали через себе ліворуч і не змінюють функціонування пристрою. При цьому для виходів звичайного логічного типу потрібна одна BSC, для виходів із третім станом - дві (друга для вироблення сигналу управління буфером), для двонаправлених висновків - три, що видно з рис. 8.24, а. Вхідні сигнали проходять через осередки BSC прямо до відповідних точок основних схем кристала.
У режимі тестування пропуск сигналів через комірки припиняється, а самі вони, з'єднуючись послідовно, утворюють регістр, що зсуває, що володіє також деякими додатковими функціями. У такий зсувний регістр із входу даних тестування може бути введений тестовий код для подачі на вхідні точки основної схемикристала. Результат, який виробить основна схема, завантажується в осередки BSC на її виходах і потім послідовно виводиться для порівняння з очікуваним правильним результатом поза пристрій.
Периферійне сканування дозволяє перевіряти роботу самих мікросхем, монтажні міжз'єднання мікросхем між собою на друкованій платі, зчитувати сигнали на висновках мікросхеми під час її роботи або керувати цими сигналами.
Мал. 8.24. Структура апаратних засобів інтерфейсу JTAG (а) та схема комірки периферійного сканування (б)
Перевірка роботи самих мікросхем полягає у завданні для них вхідного впливу та спостереження за отриманим результатом, перевірка справності монтажу мікросхем на платі здійснюється, наприклад, при взаємодії двох мікросхем, що мають JTAG інтерфейс. У цьому випадку тестуюча інформація вводиться у вихідні осередки однієї мікросхеми, а потім
листується у вхідні осередки іншої. При справності всіх міжз'єднань прийнята інформація ідентична введеній.
За допомогою розширення можливостей інтерфейсу JTAG можна проводити реконфігурацію мікросхем безпосередньо в системі, без вилучення мікросхем з пристрою.
СВІС програмованої логіки типу "система на кристалі"
Зменшення топологічних норм проектування та ряд технологічних удосконалень довели рівень інтеграції сучасних мікросхем НВІС ПЛ до величин у кілька мільйонів еквівалентних вентилів, а швидкодія до тактових частот 500. 600 і більше МГц. На таких кристалах можна розмістити цілу систему (процесорну частину, пам'ять, інтерфейсні схеми та ін.).
Визначення НВІС як "система на кристалі" виникло внаслідок двох факторів. По-перше, через високий рівень інтеграції, що дозволяє розміститина кристалі схеми високої складності (системи). При цьому різні за функціонуванням блоки реалізуються тими самими апаратними засобами завдяки їх програмованості. Такі НВІС позначаються в англомовній літературі терміном generic. По-друге, через те, що НВІС набуває спеціалізованих областей, виділених на кристалі для певних функцій - апаратні ядра (Hardcores). Системи різного призначення поділяються, тим щонайменше, на типові частини, як і ставить питання доцільності запровадження СБИС ПЛ поруч із програмованою логікою спеціалізованих областей із наперед визначеними функціями.
Введення спеціалізованих апаратних ядер, маючи ряд позитивних наслідків, звужує в той же час коло споживачів НВІС, оскільки
У порівнянні з повністю програмованими схемами (типу generic) зменшується їхня універсальність.
Реалізація складних функцій спеціалізованими апаратними ядрами значно зменшує площу кристала в порівнянні з їх реалізаціями на логічних блоках, що конфігуруються. Для деяких апаратних ядер площа знижується на порядок, для інших – менше. Наприклад, помножувач 8×8, побудований за модифікованим алгоритмом Бута і реалізований методами замовлення проектування, розмістився на площі в 5 разів меншою, ніж такий же, реалізований на логічних блоках, що реконфігуруються, звичайних для взятої FPGA.
Таким чином, введення спеціалізованих апаратних ядер у FPGA та CPLD – процес суперечливий за результатами. Він скорочує площу кристала при реалізації складних функцій і веде до досягнення максимальної швидкодії, але й таїть у собі небажані наслідки для виробника НВІС, тому що може відчутно звузити ринок їх збуту, а це веде до зростання цін і втрати певною мірою конкурентоспроможностіпродукції.
Що ж переважатиме? Тут ключове питання – які саме спеціалізовані апаратні ядра буде обрано для реалізації.
Найочевидніший вибір – блоки ОЗУ. Ці блоки тією чи іншою мірою потрібні майже всім систем, причому деякі з них вимагають дуже великих обсягів пам'яті. З'ясувалися вже й умови ефективного використання ядер пам'яті – не надто великі блоки, можливість змінювати організацію пам'яті, можливість мати асинхронний та синхронний режими роботи, організовувати буфери FIFO та двопортову пам'ять. Багато FPGA вже давно грунтуються на SRAM-комірках (зазвичай на кожен конфігурований ЛБ витрачається 16. 32 біт ОЗУ), і ці комірки можуть бути застосовані не тільки для конфігурування ЛБ, але й організуються в прості ОЗУ, які можуть об'єднуватися в більш ємні регістрові файли. Однак такий варіант не дає максимальної швидкодії і істотно знижує кількість доступної користувачеві логіки кристала, тому що кожні 16. 32 біта пам'яті "виводять з ладу" цілий ЛБ, тобто за еквівалентною складністю 10. 20 логічних вентилів.
У середньому блок ОЗУ з замовним проектуванням ємністю 256. 512 біт може бути реалізований на площі приблизно 1/10 від тієї, яка витрачається на подібний блок, складений з розподілених на кристалі клітинок пам'яті конфігурації. Часи доступу також зменшуються до 1,5. 4 рази.
Області ОЗУ-перші і, безумовно, головні спеціалізовані апаратні ядра. Інших не так багато. Це помножувачі, що використовуються в деяких НВІС ПЛ, а також схеми інтерфейсу JTAG. Ядра інтерфейсу JTAG успішно впровадилися в багато НВІС підводного човна, оскільки вони виконують важливі функції, потрібні дуже багатьом, займають дуже невелику площу на кристалі і дозволяють досягти високої швидкодії.
Найскладнішими з практично відомих ядер є контролери шини PCI, також необхідні в багатьох додатках і потребують максимальної швидкодії.