Налагодження внутрішньосхемної FPGA Microsemi
Інформація про продукт
Технічні характеристики
- Тип пристрою: Microsemi SmartFusion2 SoC FPGA
- Дата виходу: травень 2014 р
- Можливості налагодження: внутрішньосхемне налагодження FPGA, вбудований логічний аналізатор
- Максимальна частота захоплення даних: до 100 МГц
Анотація
ПЛІС є потужними елементами дизайну вбудованих систем із багатьма перевагами дизайнуtages, але ці пристрої можуть мати складну конструкцію зі складними проблемами конструкції, які потрібно налагодити. Відстеження проблем проектування, таких як помилки визначення, проблеми взаємодії системи та помилки системного часу, може бути проблемою. Включення можливостей внутрішньосхемного налагодження в FPGA може значно покращити налагодження апаратного забезпечення та уникнути численних годин розчарування. У цьому документі описано кілька різних підходів до внутрішньосхемного налагодження для FPGA, визначено ключові компроміси та через прикладampДизайн файлу, призначений для пристрою Microsemi SmartFusion®2 SoC FPGA, покаже, як можна використовувати нові можливості для прискорення налагодження та тестування.
вступ
ПЛІС є всепоширеними та потужними елементами дизайну, які зараз є практично в кожній вбудованій системі. Зі збільшенням потужності, включенням складних функціональних блоків на чіпі та вдосконалених послідовних інтерфейсів ці пристрої також можуть мати складні проблеми з проектуванням, які потребують усунення. Відстеження таких проблем, як помилки функціонального визначення (на рівні FPGA або системи), проблеми взаємодії функціональної системи, проблеми системного часу та проблеми з точністю сигналу між мікросхемами (як-от шум, перехресні перешкоди або відбиття) стають набагато складнішими при використанні вдосконалених FPGA. Симуляція, безумовно, є великою підмогою у виявленні багатьох проблем дизайну, але багато взаємодій у реальному світі не відображатимуться, доки проект не буде реалізовано апаратно. Щоб спростити процес, було розроблено декілька різних методів усунення складних проектних проблем. Ретельне розуміння кожної з цих ключових технік, включаючи різні додатковіtages та disadvantages, є корисним під час розгляду того, яка техніка або комбінація технік підходить для конкретного дизайну.
Колишнійampдизайн FPGA, призначений для пристрою Microsemi SmartFusion2 SoC FPGA, можна використовувати для демонстрації деяких перевагtages та disadvantagці стандартні методи, а також новітні можливості внутрішньосхемного налагодження. Цей показовий прикладampLe покаже, як можна використовувати ці різні методи для прискорення ідентифікації та усунення апаратних проблем під час налагодження апаратного забезпечення.
Чому налагодження FPGA є критичним аспектом проектування та розробки системи?
FPGA мають дві основні моделі використання, які відрізняють їх від інших елементів дизайну. ПЛІС можна використовувати у виробничому продукті або як засіб розробки для перевірки чи прототипу концепції виробничого дизайну. При використанні в якості виробничого транспортного засобу FPGA можуть бути набагато більш гнучкою ціллю, ніж ASIC або виробничі транспортні засоби на основі ЦП. Це особливо важливо для нового дизайну, який ще не реалізовано в апаратному забезпеченні. Конструкції з різними архітектурними варіантами можна легко створити та перевірити, щоб визначити оптимальний дизайн. ПЛІС із вбудованими процесорами (SoC FPGA) також дають змогу замінити обробку на основі центрального процесора функціями прискорення на основі FPGA з апаратним забезпеченням. Ці допtages може значно скоротити час, необхідний для проектування, перевірки, тестування та аналізу несправностей для розробки нових продуктів.
При використанні для прототипування конструкції, можливо, для виробництва ASIC, гнучкість FPGA є ключовою перевагою. Фактична апаратна платформа, навіть яка працює не на повній швидкості, значно полегшує отримання детальних показників продуктивності системи, даних аналізу пропускної здатності та результатів перевірки концепції архітектури. Підтримка FPGA для надійних реалізацій промислових стандартних шин (наприклад, PCIe®, Gigabit Ethernet, XAUI, USB, CAN та інших) спрощує тестування, пов’язане з цими інтерфейсами. Новітні сімейства ПЛІС із вбудованими процесорами ARM (SoC FPGA) дозволяють легко створювати прототипи реалізацій із вбудованими процесорами. Раніше розроблений код процесора можна перенести на прототип, а новий код можна створити паралельно з розробкою обладнання.
Ця комбінація стандартного процесора зі стандартними шинами інтерфейсу дає змогу використовувати велику екосистему доступних бібліотек коду, драйверів, функціональних API, операційних систем реального часу та навіть повних операційних систем для набагато швидшого створення робочого прототипу. Крім того, після уточнення конструкції прототип FPGA можна використовувати для захоплення обширних тестових наборів моделювання (як для стимулу, так і для відповіді), які відображають фактичні дані системи. Ці набори даних можуть бути неоціненними при створенні остаточного моделювання для ASIC або іншої виробничої реалізації. АвансtagВикористання FPGA як прототипу конструкції може значно скоротити час на проектування, валідацію, тестування та аналіз несправностей для реалізації кінцевого продукту.
В обох цих поширених моделях використання FPGA гнучкість FPGA як цільового проекту є ключовою перевагоюtagд. Це означає, що багато змін і ітерацій дизайну були б нормою, і, таким чином, здатність швидко виправляти помилки дизайну була б критично важливою для забезпечення якомога більшої кількості варіантів дизайну. Без ефективної можливості налагодження значної частини перевагtagГнучкість конструкції FPGA буде зменшена додатковим часом, необхідним для налагодження. На щастя, FPGA також можуть надавати додаткові апаратні функції, які значно спрощують налагодження в реальному часі. Перш ніж розглядати ці можливості, давайте спочатку розглянемо найпоширеніші типи проблем, з якими може зіткнутися конструкція FPGA, щоб ми мали відповідний фон для оцінки ефективності та відповідних компромісів різних інструментів налагодження.
Поширені проблеми під час налагодження конструкцій FPGA
Разом із розширеними можливостями, які надають сучасні FPGA, пов’язана з цим підвищена складність ускладнює створення безпомилкових проектів. Насправді було підраховано, що налагодження може займати понад 50% циклу проектування вбудованої системи. Оскільки час виходу на ринок продовжує стискати цикл розробки, налагодження апаратного забезпечення початкової системи відводиться на задній план — надто часто припускаючи, що перевірка (сама по собі великий відсотокtage графіка розробки), виявить усі помилки до початкового запуску системи. Давайте розглянемо лише кілька поширених типів системних проблем, щоб краще зрозуміти проблеми, з якими зіткнеться типовий дизайн під час початкового налаштування системи.
Помилки функціонального визначення може бути подвійно важко знайти, оскільки дизайнер неправильно зрозумів конкретну вимогу, тому помилку можна не помітити, навіть якщо уважно розглядати деталі дизайну. колишнійampЗагальна помилка функціонального визначення була б там, де перехід кінцевого автомата не завершується в правильному стані. Помилки також можуть виявлятися в системних інтерфейсах як проблема взаємодії. Затримка інтерфейсу, напрample, може бути неправильно вказано, що призведе до неочікуваного переповнення або недоповнення буфера.
Проблеми синхронізації системного рівня є ще одним дуже поширеним джерелом помилок проектування. Зокрема, асинхронні події є поширеним джерелом помилок, коли ефекти синхронізації або перетину часової області не враховуються ретельно. Під час роботи на швидкості такі типи помилок можуть бути дуже проблематичними та проявлятися дуже рідко, можливо, лише тоді, коли проявляються певні шаблони даних. Багато поширених порушень хронометражу належать до цієї категорії, і їх зазвичай дуже важко, якщо не неможливо, змоделювати.
Порушення синхронізації також можуть бути результатом низької точності сигналу між інтегральними схемами, зокрема в системах з кількома шинами живлення для кожної схеми. Низька точність сигналу може спричинити шум сигналу, перехресні перешкоди, відбиття, надмірне навантаження та проблеми з електромагнітними перешкодами (EMI), які часто проявляються як порушення синхронізації. Проблеми з джерелом живлення, такі як перехідні процеси (зокрема, під час запуску або вимкнення системи), коливання навантаження та високі напруги розсіювання потужності також можуть призвести до таємничих помилок, які часто нелегко відстежити назад до джерела живлення. Навіть якщо дизайн повністю правильний, проблеми з виготовленням плати можуть призвести до помилок. Несправні паяні з’єднання та неправильно підключені роз’єми, наприкладample, може бути джерелом помилок і навіть залежати від температури чи розташування плати. Використання передових методів упаковки FPGA може ускладнити зондування сигналів на друкованій платі, тому просто отримати доступ до потрібного сигналу часто може бути проблематично. Часто багато проблем із проектуванням не спричиняють миттєвої помилки й мають виникати в дизайні, доки помилка не виявиться. Відстеження початкової помилки до першопричини часто може бути розчаровуючим, важким і трудомістким завданням.
наприкладample, один неправильний біт у таблиці перекладу може призвести до помилки лише через багато циклів. Деякі з інструментів, які ми обговоримо далі в цьому документі, які використовують спеціальне внутрішньосхемне обладнання для налагодження, спеціально націлені на те, щоб зробити ці «полювання на помилки» швидшими та легшими. Перш ніж приступати до подробиць цих інструментів, давайте спочатку розглянемо популярну техніку налагодження на основі програмного забезпечення, щоб краще зрозуміти перевагуtages та disadvantagвикористання моделювання для налагодження.
Використання симуляції для налагодження
Як правило, під час симуляції дизайну всі компоненти реального життя всередині та поза проектом моделюються математично як програмні процеси, які виконуються послідовно на стандартному ЦП. Застосування широкого діапазону стимулів до дизайну та перевірка очікуваного результату порівняно з результатом моделювання дизайну є простим способом виявлення найбільш очевидних помилок проектування. Вікно, що показує типовий запуск моделювання, наведено на рисунку 1 нижче. Чіткий авансtagСимуляція порівняно з налагодженням на основі апаратного забезпечення полягає в тому, що моделювання можна виконувати в програмному забезпеченні — фактичне проектування на основі апаратного забезпечення та тестовий стенд не потрібні. Симуляція може швидко виявити багато помилок проектування, зокрема ті, що пов’язані з неправильними специфікаціями, нерозумінням вимог до інтерфейсу, функціональними помилками та багатьма іншими «грубими» типами помилок, які легко виявляються за допомогою простих векторів стимулів.
Симуляція особливо ефективна, коли розробнику доступні великі комбінації стимулів, а кінцеві результати добре відомі. У цих випадках моделювання може виконати майже вичерпну перевірку конструкції. На жаль, більшість проектів не мають легкого доступу до обширних наборів тестів, і процес їх створення може забрати багато часу. Створення набору тестів, який охоплює 100% дизайну, практично неможливе для великих проектів на основі FPGA, тому потрібно використовувати короткі шляхи, щоб спробувати охопити ключові елементи дизайну. Інша складність із симуляцією полягає в тому, що вона не є реалізацією «реального світу» і не може вловлювати асинхронні події, взаємодію системи на швидкості або порушення часу. Нарешті, процес моделювання може бути дуже повільним, і якщо потрібно багато ітерацій, моделювання швидко стає найбільш трудомістким і часто найдорожчим етапом процесу розробки.
В якості альтернативи (або, можливо, краще сказати, як доповнення до моделювання) розробники FPGA виявили, що вони можуть додати обладнання для налагодження в дизайн FPGA, щоб спостерігати та контролювати ключові сигнали всередині пристрою. Ці методи спочатку розроблялися як спеціальні підходи, але поступово перетворилися на стандартну стратегію налагодження обладнання. Таке використання можливостей внутрішньосхемного налагодження забезпечує значні перевагиtages для проектів на основі FPGA, а в наступному розділі буде розглянуто три найпоширеніші стратегії та їх різні переваги.tages та disadvantagес.
Загальні підходи внутрішньосхемного налагодження для FPGA
Найпоширеніші методи реалізації можливостей внутрішньосхемного налагодження в FPGA використовують або вбудований логічний аналізатор, зовнішнє тестове обладнання, або спеціальне обладнання для перевірки сигналу, вбудоване в структуру FPGA. Вбудований логічний аналізатор зазвичай реалізується за допомогою FPGA-матриці та вставляється в проект. ДжTAG порт використовується для доступу до аналізатора, а отримані дані можна відобразити на ПК. Коли використовується зовнішнє тестове обладнання, конструкція FPGA, що тестується, змінюється таким чином, щоб вибрані внутрішні сигнали FPGA направлялися на вихідні контакти. Потім ці контакти можна спостерігати через зовнішнє тестове обладнання. Коли використовується спеціальне апаратне забезпечення сигналу, широкий вибір внутрішніх сигналів можна зчитувати в режимі реального часу. Деякі реалізації проб можна навіть використовувати для запису в реєстри або місця пам’яті, що додатково покращує можливості налагодження. Розглянемо докладніше адванtages та disadvantagкожну з цих технік, а потім перегляньте напрampфайл, щоб побачити, як ці різні підходи можуть вплинути на загальний час налагодження.
Вбудований логічний аналізатор налагодження FPGA
Концепція вбудованого логічного аналізатора була прямим результатом можливостей внутрішньосхемного налагодження, які розробники реалізували під час першого використання FPGA. Вбудовані логічні аналізатори додали нові можливості та усунули вимогу для розробника розробляти власний аналізатор. Більшість FPGA пропонують ці можливості, а треті сторони пропонують стандартні аналізатори (Identify® від Synopsys є одним із популярнихample), який може легко взаємодіяти з інструментами вищого рівня для подальшого підвищення продуктивності.
Функціональність логічного аналізатора вставлена в конструкцію, використовуючи структуру FPGA і вбудовані блоки пам’яті як буфери трасування, як показано на малюнку 2. Також створюються ресурси запуску, щоб можна було легко вибирати та фіксувати складні взаємодії сигналів. Доступ до аналізатора для керування та передачі даних зазвичай здійснюється через стандартний JTAG порт для спрощення вимог до інтерфейсу. Зібрані дані можна відобразити на комп’ютері за допомогою загального viewпрограмного забезпечення та зазвичай відображає вихідну форму сигналу логічного симулятора viewстиль.
АвансtagОсобливості цього підходу полягають у тому, що не використовуються додаткові контакти вводу-виводу FPGA, лише стандартний JTAG сигнали. IP-ядра вбудованого логічного аналізатора зазвичай відносно недорогі і в деяких випадках можуть бути опцією для існуючих інструментів синтезу FPGA або моделювання. У деяких випадках вбудований логічний аналізатор також може надавати додаткові виходи для невикористаних входів/виходів, якщо це зручніше. Один із недоліківtagЦей підхід полягає в тому, що потрібна велика кількість ресурсів FPGA. Зокрема, якщо використовуються буфери трасування, це зменшить кількість доступних блоків пам’яті. Якщо потрібен широкий буфер, це також буде компромісом із глибиною пам’яті (оскільки використання ширшої пам’яті призводить до меншої глибини пам’яті) — великий недолікtage при використанні менших пристроїв. Можливо, найбільшим недоліком цієї методики є те, що кожного разу, коли вноситься коригування розміщення зонда, необхідно перекомпілювати та перепрограмувати конструкцію. При використанні великого пристрою цей процес може зайняти значну кількість часу. Через те, як зонди сигналу розміщені в конструкції, може бути важко співвіднести співвідношення часу сигналу. Крім того, затримки між сигнальними зондами не узгоджуються, і, отже, тимчасові співвідношення важко порівняти. Це особливо складно при порівнянні асинхронних сигналів або сигналів з різних часових областей.
In-Circuit FPGA Debug – Зовнішнє тестове обладнання
Використання внутрішньосхемного коду налагодження в поєднанні із зовнішнім тестовим обладнанням було природним розвитком, коли зовнішній логічний аналізатор уже був доступний для тестування системи. Створивши простий код налагодження для ідентифікації та вибору внутрішніх тестових сигналів і застосувавши їх до вводу/виводу FPGA, як показано на малюнку 3, можна було використовувати розширені можливості аналізаторів (такі як великі буфери трасування, складні послідовності запуску та численні viewing options), щоб створити прості, але потужні середовища налагодження. Більш складні внутрішньосхемні можливості для розширених параметрів запуску можуть мінімізувати кількість необхідних виходів. наприкладampНаприклад, вибір конкретних адрес на широкій шині може бути непомірним, якщо потрібні зовнішні контакти.
Використання внутрішньої логіки FPGA значно зменшує вимоги до вводу-виводу та навіть може шукати конкретні шаблони адрес (можливо, послідовність виклику та повернення) для налагодження складніших проблем. Якщо доступний загальний інтерфейс користувача, це може спростити процес навчання та підвищити продуктивність.
АвансtagСуть цього підходу полягає в тому, що він використовує вартість зовнішнього випробувального обладнання, тому немає додаткових витрат на інструменти. Деякі IP-ядра схеми налагодження доступні у виробників обладнання або виробників FPGA і можуть бути дуже дешевими або навіть безкоштовними. Обсяг ресурсів FPGA, необхідних для реалізації логіки вибору сигналу, дуже малий, і оскільки функція трасування виконується за допомогою зовнішнього логічного аналізатора, пам’ять блоків не потрібна. Оскільки логіка вибору недорога, також можна підтримувати велику кількість каналів із широким запуском. Логічний аналізатор може працювати як у режимі синхронізації, так і в режимі стану, що допомагає виділити деякі проблеми синхронізації.
ДисаванtagЦей підхід може включати необхідність придбання логічного аналізатора, якщо він ще не призначений для проекту. Цей недолікtage може бути достатньо, щоб перешкодити цьому підходу в багатьох випадках. Однак зауважте, що деякі варіанти недорогого логічного аналізатора стають доступними, які використовують ПК або планшет для відображення, що робить цей варіант набагато більш рентабельним для простих вимог налагодження.
Ще одним недоліком може бути кількість споживаних контактів FPGAtage і якщо потрібно спостерігати за широкими шинами, необхідно значне планування компонування плати та додавання роз’ємів для налагодження. Цю вимогу найчастіше важко передбачити на ранній стадії проектування, і це ще одна небажана складність. Подібно до підходу вбудованого логічного аналізатора, стратегія зовнішнього тестування вимагає перекомпіляції та перепрограмування дизайну, коли потрібен кожен новий експеримент.
Загальний недолікtagЦі дві методики — використання вбудованих ресурсів (що також може вплинути на продуктивність дизайну та створювати додаткові вимоги до налагодження), необхідність перекомпілювати та перепрограмувати дизайн (що може додати години або навіть дні до розкладу налагодження), попереднє планування, необхідне для визначення ймовірних сценаріїв тестування, і використання додаткових ресурсів вводу-виводу мікросхеми створили потребу в підході без цих недоліків. Однією з відповідей було додавання спеціальної логіки налагодження в структуру FPGA на деяких пристроях. Результатом стало налагодження в схемі за допомогою апаратних зондів.
Внутрішньосхемне налагодження FPGA – апаратні зонди
Використання апаратних зондів значно спрощує методи внутрішньосхемного налагодження FPGA. Ця техніка, реалізована як функція Live Probe на пристроях SmartFusion2®SoC FPGA та IGLOO®2 FPGA, додає спеціальні лінії зонду до структури FPGA для спостереження за виходом будь-якого біта регістра логічного елемента. Як показано на блок-схемі на малюнку 4, апаратні зонди доступні в двох каналах зонда A і B.
Вибрані вихідні сигнали регістру (точки зонду), подібні до вихідного в нижній частині малюнка, направляються над двома каналами зонда, і якщо їх вибрано, їх можна застосувати до каналу A або B. Потім ці сигнали каналу в реальному часі можуть надсилатися на виділені контакти Probe A та Probe B на пристрої. Сигнали зонда A і датчика B також можна внутрішньо маршрутизувати до вбудованого логічного аналізатора.
Зауважте, що тимчасові характеристики штифтів зонда регулярні та мають незначне відхилення від однієї точки зонда до іншої, що значно полегшує порівняння часових характеристик сигналів реального часу. Дані можуть бути захоплені на частоті до 100 МГц, що робить його придатним для більшості проектів цілей.
Можливо, найважливішим є розташування точок зондування, оскільки вони не вибираються як частина реалізованого проекту (вони вибираються за допомогою спеціального апаратного забезпечення, поки проект працює на FPGA), можна швидко змінити, просто надіславши дані вибору на пристрій. Не потрібно перекомпілювати та перепрограмувати дизайн.
Щоб ще більше спростити використання функції Live Probe, пов’язане програмне забезпечення для налагодження має доступ до всіх розташувань сигналу зонда за допомогою автоматично створеного налагодження file. Як показано на малюнку 5, назву сигналу можна вибрати зі списку сигналів і застосувати до потрібного каналу. Це можна зробити навіть під час виконання проекту, щоб зондування в рамках проекту було безперебійним і дуже ефективним.
У багатьох випадках можливість апаратного тестування, як-от Live Probe, можна використовувати в поєднанні з раніше описаним вбудованим логічним аналізатором і зовнішніми методами тестування.
Як показано на малюнку 6, можливість Live Probe вибирати сигнали «на льоту» дає змогу швидко та легко змінювати сигнали, що спостерігаються, без необхідності перекомпілювати дизайн. Зовнішній логічний аналізатор або осциллограф може легко спостерігати досліджувані сигнали, як показано у верхній правій частині малюнка на виділених вихідних контактах пробника. В якості альтернативи (або, можливо, навіть на додаток до) внутрішній логічний аналізатор (блок ідентифікації ILA, показаний на малюнку) можна використовувати для спостереження за контактами зонда. Сигнали зонда можуть бути захоплені ILA та спостерігатися у вікні форми сигналу. Розташування зондів можна змінювати без необхідності перекомпілювати цільовий дизайн.
Зауважте, що додаткові можливості для запуску та трасування можна використовувати для покращення функціональності зонду, що полегшує виявлення навіть складних проблем дизайну.
Додаткові можливості налагодження апаратного забезпечення також доступні на пристроях SmartFusion2 SoC FPGA та IGLOO2 FPGA. Одна з цих можливостей, яка називається Active Probe, може динамічно та асинхронно читати або записувати будь-який біт регістра логічного елемента. Записане значення зберігається протягом одного тактового циклу, тому нормальна робота може продовжуватися, що робить його дуже цінним інструментом налагодження. Active Probe представляє особливий інтерес, якщо потрібне швидке спостереження за внутрішнім сигналом (можливо, просто для того, щоб перевірити, чи він активний або перебуває в потрібному стані, як сигнал скидання), або якщо є потреба швидко перевірити логічну функцію шляхом запису в точку зонду.
(можливо, щоб ініціювати перехід кінцевого автомата шляхом швидкого встановлення вхідного значення, щоб ізолювати проблему потоку керування).
Іншою можливістю налагодження, наданою Microsemi, є налагодження пам'яті. Ця функція дозволяє розробнику динамічно та асинхронно читати або записувати в обраний блок SRAM FPGA fabric. Як показано на знімку екрана засобу налагодження (рис. 7), коли вибрано вкладку «Блоки пам’яті», користувач може вибрати потрібну пам’ять для читання, виконати знімок пам’яті, змінити значення пам’яті, а потім записати значення назад на пристрій. Це може бути особливо корисним для перевірки або налаштування буферів даних, які використовуються в комунікаційних портах для блокнота, орієнтованого на обчислення, або навіть для коду, що виконується вбудованим ЦП. Налагодження складних помилок, що залежать від даних, стає значно швидшим і легшим, коли спогади можна спостерігати та контролювати так швидко.
Після того, як проект налагоджено, можливо, буде бажано вимкнути можливості апаратного налагодження, щоб захистити конфіденційну інформацію. Зловмисник може використати ті самі засоби для зчитування важливої інформації або зміни налаштувань системи, які можуть забезпечити легкий доступ до конфіденційних частин системи. Microsemi додала функції, які дозволяють розробнику захистити пристрій після завершення налагодження. наприкладampнаприклад, доступ до Live Probe та Active Probe можна заблокувати, щоб повністю вимкнути функцію як можливий засіб атаки (це навіть усуває можливість створення зондом активності будь-яких шаблонів у струмі живлення, які можна використати для спроб опосередкованого спостереження даних зонда). Крім того, доступ до вибраних частин дизайну можна заблокувати, щоб запобігти доступу лише до цих розділів. Це може бути зручно, якщо лише частина дизайну має бути захищеною, щоб решта дизайну залишалася доступною для польового тестування чи аналізу помилок.
Порівняльна діаграма внутрішньосхемного налагодження
Тепер детальний реview з трьох основних методів внутрішньосхемного апаратного налагодження було створено підсумкову діаграму, як показано на малюнку 8, яка деталізує різні перевагиtages та disadvantagкожного методу. Пам’ятаючи, що деякі методи можна використовувати в поєднанні (Live Probe та Internal Logic Analyzer (ILA), наприклад Synopsys Identify, напр.ample), ми можемо побачити ключові сильні та слабкі сторони кожної техніки. Набір можливостей внутрішньосхемного налагодження апаратного забезпечення (Live Probe, Active Probe та Memory Debug — разом званий SmartDebug) є найслабшим у порівнянні з іншими методами, коли йдеться про загальну кількість доступних тестів (червоне коло), і слабше, ніж найкраще (жовте коло), коли розглядається швидкість захоплення (зовнішнє тестове обладнання може бути швидшим).
Методи на основі ILA, такі як Synopsys Identify, є найслабшими порівняно з іншими методами та з урахуванням вимог до ресурсів FPGA. Методи, що базуються на зовнішньому випробувальному обладнанні, є найслабшими з огляду на ряд міркувань, причому найбільш обтяжливими є вартість, вплив на час розробки та накладні витрати на переміщення зонда (через необхідність перекомпіляції проекту). Можливо, оптимальним рішенням є поєднання SmartDebug і одного з інших методів, щоб можна було зменшити кількість каналів слабкості SmartDebug і зменшити переміщення зондової точкиtagінших технік також зменшено.
Класифікація сигналів
Можна зробити корисне розрізнення між деякими з найпоширеніших типів сигналів, і це може допомогти при плануванні підходу до налагодження. наприкладampНаприклад, сигнали, які змінюються лише під час запуску системи, наприклад скидання системи, скидання блоку або регістри ініціалізації, можна класифікувати як статичні сигнали. До цих типів сигналів найефективніше отримати доступ через засіб, який може легко спостерігати, а також контролювати сигнал, не потребуючи тривалого циклу перекомпіляції. Active Probe є чудовим засобом для налагодження статичних сигналів. Подібним чином сигнали, які змінюються частіше, але залишаються статичними протягом переважної більшості часу, можна класифікувати як псевдостатичні, а також найефективніше налагодити за допомогою Active Probe. Сигнали, які часто змінюються, як сигнали годинника, можна класифікувати як динамічні, і до них не так легко отримати доступ через Active Probe. Live Probe є кращим вибором для спостереження за цими сигналами.
Простий варіант використання для налагодження
Тепер, коли ми краще розуміємо різні варіанти внутрішньосхемного налагодження, давайте розглянемо простий дизайнampщоб побачити, як працюють ці техніки. На малюнку 9 показана проста конструкція FPGA в пристрої SmartFusion2 SoC FPGA. Підсистема мікроконтролера (MSS) скидається за допомогою програмного IP-блоку CoreSF2Reset. Вхідними даними цього блоку є скидання увімкнення живлення, скидання користувацьких інтерфейсів і зовнішнє скидання. Виходи: скидання до User Fabric, скидання MSS і скидання M3. Симптоми помилки полягають у відсутності активності на вводі-виводі, навіть якщо пристрій успішно виходить зі стану POR. На малюнку також показано три різні варіанти усунення цієї помилки: Синє поле (з позначкою ETE) призначене для методу зовнішнього тестового обладнання; зелене поле (з позначкою ILA) для методу внутрішнього логічного аналізатора; а помаранчеве поле (з позначкою AP) позначає метод Active Probe. Ми припустимо, що потенційними основними причинами помилки є неправильно заявлені входи скидання до блоку CoreSF2Reset Soft IP.
Давайте тепер розглянемо процес налагодження для трьох описаних раніше внутрішньосхемних методів.
Зовнішнє тестове обладнання
Використовуючи цей метод, передбачається, що тестове обладнання доступне та не використовується проектом з вищим пріоритетом. Крім того, важливо спланувати заздалегідь, щоб деякі входи/виходи FPGA були доступні та могли бути легко підключені до тестового обладнання. Наявність заголовка на друкованій платі, наприкладample, було б дуже корисним і мінімізувало б час, витрачений на ідентифікацію та з’єднання з «ймовірним підозрюваним» або потенційне замикання контактів під час зондування. Дизайн потрібно буде перекомпілювати, щоб вибрати сигнали, які ми хочемо дослідити. Сподіваємось, ми не будемо «лущити цибулю» і не потребуватимемо вибору додаткових сигналів для подальшого дослідження, оскільки часто наше початкове дослідження призводить лише до нових запитань. У будь-якому випадку процес перекомпіляції та перепрограмування може зайняти значну кількість часу, і якщо це призведе до порушень синхронізації, потрібне редизайн (ми всі знайомі з тим, наскільки неприємними можуть бути спроби вирішити проблеми із закриттям часу, зокрема, коли ви вносите зміни в дизайн, щоб знайти помилку дизайну — увесь процес може тривати від хвилин до годин)! Важливо також пам’ятати, що якщо проект не має вільних користувацьких вводів/виводів, цей метод не можна реалізувати. Крім того, цей метод структурно втручається в дизайн, і помилки, пов’язані з синхронізацією, можуть зникати або знову з’являтися між ітераціями.
Внутрішній логічний аналізатор
За допомогою цього методу ILA необхідно вставити в дизайн за допомогою ресурсів структури, а потім потрібно перекомпілювати. Зауважте, що якщо екземпляр ILA вже створено, сигнали, які ми хочемо дослідити, можливо, не були оснащені інструментами, що також потребує перекомпіляції. Цей процес ризикує змінити початковий дизайн і порушити часові обмеження. Якщо час виконано, конструкцію необхідно перепрограмувати та повторно ініціалізувати. Весь цей процес може тривати кілька хвилин або навіть годин, якщо час перекомпіляції тривалий і потрібні кілька проходів. Такий підхід є структурно втручальним і може призвести до проблем, подібних до тих, що описані при використанні вищезгаданого методу.
Активний зонд
Використовуючи цей метод, активний зонд можна вказати на джерело різних сигналів скидання, усі з яких надходять із виходів регістру (як це зазвичай буває в будь-якій хорошій практиці цифрового проектування). Сигнали вибираються по одному в меню Active Probe, показаному на малюнку 10 нижче. Вибрані значення сигналу можна зчитувати та відображати у вікні даних Active Probe. Будь-які помилкові твердження легко виявити. Цей тест можна виконати негайно без необхідності перекомпілювати та перепрограмувати пристрій, він не є структурним або процедурним втручанням. Весь процес займає всього кілька секунд. Цей метод також може створити керованість (асинхронну зміну значень), яку інші два методи не дозволять. У цьому конкретному прикладіampНаприклад, сигнал скидання, отриманий з регістра, може бути легко досліджений і виявлений, що він утримується в активному стані.
Миттєве перемикання сигналу скидання може бути досягнуто шляхом асинхронного маніпулювання регістром, що генерує сигнали решти.
Більш складний варіант використання налагодження
Наведений вище дизайн був дуже простим і корисним як вступ до використання описаних методів проектування, але більш складним прикладомample може бути навіть більш ілюстративним. Багато разів сигнал інтересу не є статичним сигналом, як це було в нашому простому попередньомуampале є динамічним. Звичайним динамічним сигналом є проміжний годинник, який, можливо, використовується для синхронізації рукостискання для послідовного інтерфейсу. На малюнку 11 показана така конструкція з програмним IP-ядром користувача, у цьому випадку користувальницький послідовний інтерфейс, підключений до системної шини APB. Симптоми помилки полягають у відсутності активності на призначеному для користувача послідовному інтерфейсі та в тому, що коли майстер шини APB здійснює транзакцію для доступу до послідовного інтерфейсу, він переходить у стан винятку, що вказує на неправильне рукостискання. Ці умови, здається, виключають статичну причину, як-от неправильний сигнал скидання, оскільки машина стану транзакції, здається, не працює з очікуваною швидкістю, і, таким чином, викликає виняток. Вважається, що основною причиною є генератор тактової частоти в ядрі IP користувача.
Якщо він не працює з правильною частотою, можуть виникнути описані помилки.
У цій ситуації, мабуть, кращою стратегією буде замінити підхід Active Probe на Live Probe. На наведеному вище малюнку це показано на помаранчевому полі LP із використанням JTAG сигнал для вибору джерела зонду.
Зовнішнє тестове обладнання
Для цього випадку методологія дуже подібна до попередньо описаного простого прикладуample. Сигнал годинника користувача виводиться на тестову точку (сподіваємось, на заголовок), і потрібна тривала перекомпіляція. Також може бути корисним вивести опорний сигнал, можливо, системний годинник, який використовується для тактування IP користувача як сигнал порівняння. Нам знову доведеться перекомпілювати та перепрограмувати, тому весь процес може зайняти значну кількість часу.
Внутрішній логічний аналізатор
Цей випадок дуже схожий на простий випадокample. Необхідно вставити ILA або визначити потрібний сигнал і виконати цикл перекомпіляції та перепрограмування. Усі описані раніше проблеми все ще призводять до значного часу циклу налагодження. Однак існує додаткова складність. Годинник, який керує ILA, має бути синхронним і в ідеалі набагато швидшим відносно годинника, який спостерігатиметься з ядра Soft IP. Якщо ці годинники асинхронні або не мають правильних співвідношень часу, збір даних буде непередбачуваним і можливим джерелом плутанини для процесу налагодження.
Зауважте, що якщо тактовий сигнал користувача Soft IP не генерується на мікросхемі (можливо, він відновлюється з послідовного інтерфейсу), розробнику може знадобитися додати модуль годинника для генерації швидшого годинника ILA за допомогою додаткових ресурсів і, можливо, створюючи порушення синхронізації.
Живий зонд
Використовуючи цей метод, Live Probe можна швидко вказати на джерело годинника користувача та будь-якого іншого джерела годинника з реєстру, щоб знайти основну причину помилки. Live Probe покаже вибрані вихідні сигнали в режимі реального часу, і таким чином набагато легше визначити будь-який часовий зв’язок між сигналами. Весь процес займає всього кілька секунд.
Інші функції налагодження для послідовних інтерфейсів
Також важливо зазначити, що в пристроях SmartFusion2 SoC FPGA та IGLOO2 FPGA є багато додаткових можливостей налагодження, які можна використовувати на послідовних інтерфейсах, як у попередньому прикладіampде помилки ще складніші. SERDES Debug, напрample, надає спеціальні можливості налагодження для виділених високошвидкісних послідовних інтерфейсів. Деякі з функцій налагодження SERDES включають підтримку тестування PMA (наприклад, створення шаблону PRBS і тестування петлі), підтримку кількох тестових конфігурацій SERDES із реконфігурацією на рівні реєстру, щоб уникнути використання повного потоку проектування для внесення змін у конфігурацію, а також текстові звіти, що показують налаштовані протоколи, регістри конфігурації SERDES і регістри конфігурації Lane. Ці функції значно полегшують налагодження SERDES і можуть використовуватися в поєднанні з Live Probe та Active Probe для подальшого прискорення налагодження складних схем.
Попередньо описаний інструмент налагодження пам’яті також можна використовувати в поєднанні з SERDES Debug для прискорення тестування. Оскільки буфери пам’яті можна швидко та легко перевіряти та змінювати за допомогою Memory Debug, можна швидко створювати «тестові пакети» та спостерігати за результатами зворотного зв’язку або міжсистемного зв’язку. Розробник може використовувати ці можливості й таким чином мінімізувати потребу в спеціалізованих «тестових джгутах», які споживають додаткову структуру FPGA і можуть вплинути на синхронізацію мікросхеми.
Висновок
У цьому документі детально описано декілька різних підходів до впровадження внутрішньосхемного налагодження для FPGA та SoC FPGA — використання інтегрованого логічного аналізатора, використання зовнішнього тестового обладнання та використання спеціальних пробних схем, інтегрованих у структуру FPGA. Було показано, що додавання спеціалізованих і виділених схем зондів, таких як Active Probe і Live Probe, запропоновані Microsemi на пристроях SmartFusion2 SoC FPGA і IGLOO2 FPGA, значно прискорюють і спрощують процес налагодження. Здатність швидко змінювати вибір внутрішніх сигналів (без необхідності виконувати дуже трудомісткий цикл перекомпіляції та повторного програмування) і здатність досліджувати внутрішні сигнали (без необхідності використовувати структуру FPGA та потенційно вводити порушення синхронізації) виявилася головною перевагою.tages під час налагодження конструкцій FPGA. Крім того, було описано використання кількох методологій, які можуть працювати разом, щоб забезпечити ще більш повну можливість налагодження. Нарешті, два ексampВипадки використання le debug були надані для ілюстрації компромісів між описаними методами.
Щоб дізнатися більше
- FPGA IGLOO2
- SmartFusion2 SoC FPGA
Microsemi Corporation (Nasdaq: MSCC) пропонує широкий асортимент напівпровідникових і системних рішень для комунікацій, оборони та безпеки, аерокосмічної та промислової промисловості. Продукти включають високоефективні та радіаційно захищені аналогові інтегральні схеми зі змішаними сигналами, FPGA, SoC та ASIC; продукти керування живленням; пристрої хронометражу та синхронізації та рішення точного часу, що встановлює світовий стандарт часу; пристрої обробки голосу; радіочастотні рішення; дискретні компоненти; технології безпеки та масштабована антитamper продукти; Інтегральні схеми та проміжні панелі Power-over-Ethernet; а також можливості та послуги індивідуального дизайну. Штаб-квартира Microsemi розташована в Алісо-В’єхо, Каліфорнія, і налічує близько 3,400 співробітників у всьому світі. Дізнайтесь більше на www.microsemi.com.
© 2014 Microsemi Corporation. Всі права захищені. Microsemi та логотип Microsemi є товарними знаками Microsemi Corporation. Усі інші торгові марки та знаки обслуговування є власністю відповідних власників.
Штаб-квартира компанії Microsemi
- Один Enterprise, Aliso Viejo CA 92656 США
- В межах США: +1 800-713-4113
- Ззовні США: +1 949-380-6100
- Продажі: +1 949-380-6136
- Факс: +1 949-215-4996
- Електронна пошта: sales.support@microsemi.com
FAQ
- З: Яка максимальна частота збору даних пристроєм?
A: Пристрій підтримує захоплення даних на частоті до 100 МГц, що підходить для більшості цільових проектів. - Питання: чи потрібно мені перекомпілювати проект, якщо для налагодження використовуються схеми зонда?
Відповідь: Ні, розташування точок зондування можна швидко змінити без необхідності перекомпіляції або перепрограмування дизайну.
Документи / Ресурси
![]() |
Налагодження внутрішньосхемної FPGA Microsemi [pdfІнструкції Внутрішньосхемне налагодження FPGA, налагодження FPGA, налагодження |