Микрополулого

Дебагирање на Microsemi во коло FPGA

Microsemi-In-Circuit-FPGA-Debug-product

Информации за производот

Спецификации

  • Тип на уред: Microsemi SmartFusion2 SoC FPGA
  • Датум на издавање: мај 2014 година
  • Способности за дебагирање: Отстранување грешки во колото FPGA, вграден логички анализатор
  • Максимална фреквенција на фаќање податоци: до 100 MHz

Апстракт
FPGA се моќни дизајнерски елементи во вградени системи со многу дизајнерски адванtages, но овие уреди може да имаат сложени дизајни со сложени проблеми со дизајнот што треба да се дебагираат. Следењето на проблемите во дизајнот како што се грешките во дефиницијата, проблемите со системската интеракција и грешките во тајмингот на системот може да биде предизвик. Вклучувањето на можностите за отстранување грешки во колото во FPGA може драматично да го подобри хардверското отстранување грешки и да избегне бројни часови фрустрација. Овој труд опишува неколку различни пристапи за отстранување грешки во колото за FPGA, ги идентификува клучните компромиси и преку ексampдизајнот, наменет за уред Microsemi SmartFusion®2 SoC FPGA, ќе покаже како може да се користат новите способности за забрзување на отстранување грешки и тестирање.

Вовед

FPGA се продорни и моќни дизајнерски елементи и сега се наоѓаат во речиси секој вграден систем. Со зголемување на капацитетот, вклучување на сложени функционални блокови на чип и напредни сериски интерфејси, овие уреди може да имаат и сложени проблеми со дизајнот што треба да се дебагираат. Следењето на проблемите како што се грешките во функционалната дефиниција (на FPGA или системско ниво), проблемите со функционалната интеракција на системот, проблемите со тајмингот на системот и проблемите со верноста на сигналот помеѓу ИЦ (како што се шум, преслушување или рефлексии) сите стануваат многу посложени кога се користат напредни FPGA. Симулацијата секако е голема помош за идентификување на многу проблеми во дизајнот, но многу интеракции во реалниот свет нема да се појават додека дизајнот не се имплементира во хардвер. Развиени се неколку различни техники за дебагирање на сложени дизајн прашања за да се поедностави процесот. Внимателно разбирање на секоја од овие клучни техники, вклучувајќи ги и различните адванtages и disadvantages, е корисно кога се размислува која техника или комбинација на техники е погодна за одреден дизајн.
ПоранешенampДизајнот FPGA, наменет за уред Microsemi SmartFusion2 SoC FPGA, може да се користи за да се демонстрира некои од предноститеtages и disadvantagна овие стандардни техники, како и на најновите можности за отстранување грешки во колото. Овој илустративен прampќе покаже како овие различни техники може да се користат за да се забрза идентификацијата и елиминацијата на хардверските проблеми при хардверско дебагирање.

Зошто дебагирањето на FPGA е критичен аспект на дизајнот и развојот на системот?
FPGA имаат два главни модели на употреба што ги разликуваат од другите елементи на дизајнот. FPGA може да се користат во производниот производ или може да се користат како развојно средство за докажување или прототипирање на концептот на производствен дизајн. Кога се користат како производно возило, FPGA може да бидат многу пофлексибилна цел од производствените возила базирани на ASIC или CPU. Ова е особено важно за нов дизајн, кој сè уште не е имплементиран во хардверот. Дизајните со различни архитектонски опции може лесно да се креираат и тестираат за да се идентификува оптималниот дизајн. FPGA со процесори на чип (SoC FPGA) овозможуваат и размена на процесори базирани на процесори со функции за забрзување базирани на хардверски FPGA. Овие напредниtages може драматично да го намали времето потребно за дизајн, валидација, тестирање и анализа на дефекти за развој на нови производи.
Кога се користи за прототипирање на дизајн, можеби за производствен ASIC, флексибилноста на FPGA е клучна придобивка. Вистинската хардверска платформа, дури и онаа што не работи со полна брзина, го олеснува добивањето детални метрики за перформансите на системот, податоци за анализа на пропусната моќ и резултати доказ за концептот на архитектурата. Поддршката за FPGA за зацврстени имплементации на индустриски стандардни магистрали (како PCIe®, Gigabit Ethernet, XAUI, USB, CAN и други) го поедноставува тестирањето поврзано со овие интерфејси. Најновите фамилии на FPGA со ARM процесори на чип (SoC FPGA), го олеснуваат прототипот на имплементации со вградени процесори. Претходно развиениот процесорски код може да се пренесе на прототипот и да се создаде нов код паралелно со напорите за дизајнирање на хардверот.

Оваа комбинација на стандарден процесор со стандардни интерфејс магистрали овозможува да се искористи големиот екосистем од достапни библиотеки со кодови, драјвери, функционални API, оперативни системи во реално време, па дури и целосни оперативни системи за многу побрзо создавање на работен прототип. Дополнително, штом дизајнот ќе се зацврсти, прототипот на FPGA може да се користи за снимање на опсежни тестови за симулација (и за стимул и за одговор) кои ги рефлектираат вистинските системски податоци. Овие збирки на податоци може да бидат од непроценливо значење при креирањето на конечните симулации за ASIC или друга производна имплементација. НапредокотtagКористењето на FPGA како дизајн прототип може драматично да го намали времето за дизајн, валидација, тестирање и анализа на неуспеси за имплементација на финалниот производ.
Во двата од овие вообичаени модели на употреба на FPGA, флексибилноста на FPGA како цел на дизајнот е клучна предност.tagд. Ова значи дека многу промени и повторувања во дизајнот би биле норма, а со тоа и способноста за брзо отстранување грешки во дизајнот би била клучна за да се овозможи што е можно повеќе опции за дизајн. Без ефикасна способност за дебагирање голем дел од адванотtagфлексибилноста на дизајнот на FPGA ќе се намали со дополнителното потребно време за отстранување грешки. За среќа, FPGA може да обезбеди и дополнителни хардверски карактеристики кои драматично го поедноставуваат дебагирањето во реално време. Пред да ги разгледаме овие способности, ајде прво да ги погледнеме најчестите типови на проблеми со кои може да се соочи FPGA дизајнот за да имаме соодветна позадина за да ја оцениме ефикасноста и поврзаните компромиси на различни алатки за отстранување грешки.

Вообичаени проблеми при дебагирање на дизајни на FPGA

Заедно со проширените можности што ги носат модерните FPGA, поврзаната зголемена сложеност го отежнува создавањето дизајни без грешки. Всушност, се проценува дека дебагирањето може да потрае над 50% од циклусот на дизајнирање на вградениот систем. Со притисоците од времето до пазарот кои продолжуваат да го притискаат развојниот циклус, хардверското дебагирање на почетниот систем е префрлено на последователно размислување - премногу често претпоставувајќи дека таа верификација (самата по себе голем процентtage од распоредот за развој), ќе ги открие сите грешки пред иницијалното појавување на системот. Ајде да погледнеме само неколку вообичаени типови на системски проблеми за подобро да ги разбереме предизвиците со кои типичниот дизајн ќе се соочи за време на првичното појавување на системот.

Грешките во функционалната дефиниција може да биде двојно тешко да се најдат бидејќи дизајнерот погрешно разбрал одреден услов, така што грешката може да се занемари дури и кога внимателно се разгледуваат деталите на дизајнот. Еден поранешенampЗаедничката грешка во функционалната дефиниција би била онаа каде што транзицијата на состојбата на машината не завршува во вистинската состојба. Грешките може да се појават и во системските интерфејси како проблем на интеракција. Латентност на интерфејсот, на прample, може да биде погрешно специфицирано што резултира со неочекувано прелевање на тампон или состојба на поттекување.
Проблемите со тајмингот на ниво на системот се уште еден многу чест извор на грешки во дизајнот. Асинхроните настани, особено, се чест извор на грешки кога не се внимателно разгледани ефектите на синхронизацијата или вкрстувањето на временскиот домен. Кога работите со брзина, овие типови на грешки може да бидат многу проблематични и може да се појавуваат многу ретко, можеби само кога се манифестираат специфични обрасци на податоци. Многу вообичаени прекршувања на времето спаѓаат во оваа категорија и обично се многу тешки, ако не и невозможно да се симулираат.

Прекршувањата на тајмингот, исто така, може да бидат резултат на слабата верност на сигналот помеѓу интегрираните кола, особено во системите со повеќе шини за напојување за секое коло. Ниската верност на сигналот може да резултира со шум на сигналот, разговори, рефлексии, прекумерно оптоварување и проблеми со електромагнетни пречки (EMI) кои често се појавуваат како прекршување на времето. Проблемите со напојувањето, како што се транзиентите (особено при стартување или исклучување на системот), варијациите на оптоварувањето и високите напрегања на дисипација на енергија, исто така, може да резултираат со мистериозни грешки, кои честопати не се лесно да се следат до изворот на напојување. Дури и кога дизајнот е целосно исправен, проблемите со изработката на плочата може да резултираат со грешки. Неисправни споеви за лемење и неправилно прицврстени конектори, на прample, може да биде извор на грешки, па дури и може да зависи од температурата или локацијата на таблата. Употребата на напредни техники за пакување FPGA може да го отежне испитувањето на сигналите на плочата на печатеното коло, така што само добивањето пристап до саканиот сигнал често може да биде проблематично. Честопати, многу проблеми во дизајнот не создаваат непосредна грешка и мора да се брануваат низ дизајнот додека грешката всушност не се манифестира. Следењето на почетната грешка до основната причина често може да биде фрустрирачка, тешка и одзема време задача.

За прampЛе, еден бит погрешен во табела за превод може да не резултира со грешка до многу циклуси подоцна. Некои од алатките за кои ќе разговараме подоцна во овој труд, кои користат посветен хардвер за отстранување грешки во колото, се конкретно насочени кон тоа да ги направат овие „ловење грешки“ побрзо и полесно. Пред да навлеземе во деталите за овие алатки, ајде прво да погледнеме популарна симулација на техника за дебагирање базирана на софтвер со цел подобро да го разбереме адванотtages и disadvantagе на користење на симулација за дебагирање.

Употреба на симулација за дебагирање
Вообичаено во симулацијата на дизајнот, сите компоненти од реалниот живот внатре и надвор од дизајнот се моделираат математички како софтверски процеси кои се извршуваат последователно на стандарден процесор. Примената на широк опсег на стимулации за дизајнот и проверката на очекуваниот излез во однос на излезот од симулираните дизајни, е лесен начин да се фатат најочигледните грешки во дизајнот. Прозорец кој прикажува типично симулација е даден на Слика 1 подолу. Јасниот адванtagЕ од симулациските стихови за дебагирање базирано на хардвер, е дека симулацијата може да се направи во софтверот - не се потребни вистински дизајн базирани на хардвер и тест-клупа. Симулацијата може брзо да фати многу грешки во дизајнот, особено оние поврзани со неточни спецификации, погрешно разбирање на барањата за интерфејс, грешки во функцијата и многу други „грубо“ типови на грешки кои лесно се откриваат преку едноставни вектори на стимул.

Microsemi-in-circuit-FPGA-Debug- (1)

Симулацијата е особено ефикасна кога на дизајнерот му се достапни обемни комбинации на стимулации и кога резултатите се добро познати. Во овие случаи, симулацијата може да направи речиси исцрпен тест на дизајнот. За жал, повеќето дизајни немаат лесен пристап до обемни тест пакети и процесот на нивно создавање може да одземе многу време. Создавањето тест пакет кој покрива 100% од дизајнот е практично невозможно за големи дизајни базирани на FPGA и мора да се користат кратки резови за да се обидат да се покријат клучните елементи на дизајнот. Друга тешкотија со симулацијата е тоа што таа не е имплементација на „реалниот свет“ и не може да фати асинхрони настани, интеракции на системот со брзина или прекршување на времето. Конечно, процесот на симулација може да биде многу бавен и ако се потребни многу повторувања, симулацијата брзо станува најодзема време, а често и најскапиот дел од процесот на развој.

Како алтернатива (или можеби подобро кажано, како додаток на симулацијата) дизајнерите на FPGA открија дека можат да додадат хардвер за отстранување грешки во дизајнот на FPGA со цел да ги набљудуваат и контролираат клучните сигнали во уредот. Овие техники првично беа развиени како ад-хок пристапи, но постепено се развија во стандардна стратегија за отстранување грешки на хардверот. Оваа употреба на можности за отстранување грешки во колото нуди значителна предностtages за дизајни базирани на FPGA и следниот дел ќе ги истражи трите најчести стратегии и нивните различни предностиtages и disadvantagес.

Вообичаени пристапи за отстранување грешки во колото за FPGA
Најчестите техники за имплементирање на можностите за отстранување грешки во колото во FPGA користат или вграден логички анализатор, надворешна опрема за тестирање или посветен хардвер за сонда за сигнал, вграден во ткаенината FPGA. Вградениот логички анализатор обично се имплементира со користење на FPGA ткаенина и се вметнува во дизајнот. ЈTAG портот се користи за пристап до анализаторот и снимените податоци може да се прикажат на компјутер. Кога се користи надворешна опрема за тестирање, дизајнот на FPGA што се тестира се менува така што избраните внатрешни FPGA сигнали се пренасочуваат до излезните пинови. Овие пинови потоа може да се набљудуваат преку надворешната опрема за тестирање. Кога се користи посветен хардвер за сонда за сигнал, може да се прочитаат широк избор на внатрешни сигнали во реално време. Некои имплементации на сонда може да се користат дури и за пишување во регистрирање или мемориски локации што дополнително ги подобруваат можностите за отстранување грешки. Ајде да погледнеме подетално на адванотtages и disadvantagе на секоја од овие техники, а потоа погледнете го ексampле дизајн за да види како овие различни пристапи можат да влијаат на целокупното време за дебагирање.

Вграден логички анализатор за отстранување грешки во колото на FPGA
Концептот на вградениот логички анализатор беше директен резултат на ад-хок можностите за дебагирање во колото што дизајнерите ги имплементираа кога првпат беа користени FPGA. Вградените логички анализатори додадоа нови способности и го елиминираа барањето дизајнерот да развие свој анализатор. Повеќето FPGA ги нудат овие способности, а трети страни нудат стандардни анализатори (Identify®, од Synopsys, е еден популарен поранешенampле) што лесно може да се поврзе со алатки од повисоко ниво за понатамошно подобрување на продуктивноста.

Функционалноста на логичкиот анализатор е вметната во дизајнот, користејќи FPGA ткаенина и вградени мемориски блокови како бафери за трага, како што е илустрирано на Слика 2. Исто така, се создаваат ресурси за активирање така што сложените интеракции на сигналот може лесно да се изберат и да се доловат. Пристапот до анализаторот за контрола и пренос на податоци обично се врши преку стандардниот ЈTAG порта за поедноставување на барањата за интерфејс. Сниманите податоци може да се прикажат на компјутер со користење на заеднички viewing софтвер и обично го отсликува излезот на брановиот облик на логички симулатор viewинг стил.

Microsemi-in-circuit-FPGA-Debug- (2)

НапредокотtagПредностите на овој пристап се дека не се користат дополнителни FPGA I/O пинови, само стандардните JTAG сигнали. IP-јадрата на вградениот логички анализатор обично се релативно евтини и во некои случаи може да бидат опција за постоечка синтеза на FPGA или алатки за симулација. Во некои случаи, вградениот логички анализатор може да обезбеди дополнителни излези на неискористените влезови/излез, доколку е поудобно. Еден од недостатоцитеtagПристап кон овој пристап е дека се потребни голема количина на FPGA ресурси. Особено, ако се користат бафери за трага, ова ќе го намали бројот на достапни блок-мемории. Ако е потребен широк бафер, ова исто така ќе биде компромис со длабочината на меморијата (бидејќи употребата на поширока меморија резултира со помала длабочина на меморијата) - голем недостатокtagд кога користите помали уреди. Можеби најголемиот недостаток на оваа техника е тоа што секогаш кога се прави прилагодување на поставувањето на сондата, неопходно е да се прекомпајлира и репрограмира дизајнот. Кога користите голем уред, овој процес може да потрае значително време. Поради начинот на кој сондите за сигнал се поставени во дизајнот, може да биде тешко да се поврзат врските со времето на сигналот. Дополнително, доцнењата помеѓу сигналните сонди не се конзистентни и затоа е тешко да се споредат временските односи. Ова е посебна тешкотија кога се споредуваат асинхрони сигнали или сигнали од различни временски домени.

Дебагирање на FPGA во коло - Опрема за надворешен тест
Употребата на код за отстранување грешки во колото во врска со опремата за надворешна тестирање беше природен развој кога веќе беше достапен надворешен логички анализатор за тестирање на системот. Со создавање на едноставен код за отстранување грешки за да се идентификуваат и селектираат внатрешни тест сигнали и да се применат на FPGA I/Os, како што е прикажано на Слика 3, беше можно да се искористат напредните способности на анализаторите (како што се големи бафери за трага, сложени секвенци на активирање и повеќекратни viewing опции) за создавање едноставни, но моќни средини за отстранување грешки. Покомплексните можности во колото за напредни опции за активирање може да го минимизираат бројот на потребни излези. За прampле, изборот на специфични адреси на широк магистрален би можел да биде забранлив доколку се бараат надворешни пинови.
Користењето на внатрешната FPGA логика драматично ги намалува барањата за влез/излез и дури може да бара специфични шеми на адреси (можеби секвенца за повик и враќање) за дебагирање на посложени проблеми. Ако е достапен заеднички кориснички интерфејс, ова може да ја поедностави кривата на учење и да ја подобри продуктивноста.

Microsemi-in-circuit-FPGA-Debug- (3)

НапредокотtagПридобивката од овој пристап е тоа што ги користи трошоците за надворешната опрема за тестирање и на тој начин нема дополнителни трошоци за алат. Некои IP-јадра на кола за отстранување грешки се достапни од производители на опрема или производители на FPGA и може да бидат многу ниски или дури бесплатни. Количината на FPGA ресурси потребни за имплементација на логиката за избор на сигнал е многу мала, и бидејќи функцијата за следење се врши со помош на надворешниот логички анализатор, не се потребни блок-мемории. Бидејќи логиката на селекција е евтина, може да се поддржат и голем број канали со широко активирање. Логичкиот анализатор може да работи и во режим на тајминг и во режим на состојба што помага да се изолираат некои проблеми со времето.
ДизадванотtagОвој пристап може да ја вклучи потребата да се купи логички анализатор, доколку тој веќе не е доделен на проектот. Овој недостатокtagМоже да биде доволно за да се обесхрабри овој пристап во многу случаи. Забележете, сепак, дека стануваат достапни некои евтини опции за логички анализатор што користат компјутер или таблет за прикажување, што ја прави оваа опција многу поисплатлива за едноставни барања за отстранување грешки.
Бројот на потрошени FPGA пинови може да биде уште еден недостатокtagи ако треба да се набљудуваат широки автобуси, потребно е значително планирање за распоредот на таблата и додавање на конектори за отстранување грешки. Ова барање најчесто е тешко да се предвиди рано во фазата на дизајнирање и друга несакана сложеност. Слично на пристапот на вградениот логички анализатор, стратегијата за надворешен тест бара прекомпајлирање и репрограмирање на дизајнот, кога е потребен секој нов експеримент.

Заеднички недостатокtagод овие две техники - употреба на ресурси на чип (кои исто така можат да влијаат на перформансите на дизајнот во времето и да создадат дополнителни барања за дебагирање) потребата за повторно компајлирање и репрограмирање на дизајнот (кој може да додаде часови или дури денови во распоредот за отстранување грешки) однапред планирање потребно за идентификување на веројатните сценарија за тестирање и употребата на дополнителни потреби за враќање на чипот за ресурси за пристап. Еден одговор беше додавањето на посветена логика за отстранување грешки во ткаенината FPGA на некои уреди. Резултатот беше отстранување грешки во колото со користење на хардверски сонди.

Отстранување грешки во FPGA во коло – Хардверски сонди
Употребата на хардверски сонди драматично ги поедноставува техниките за отстранување грешки во колото за FPGA. Оваа техника имплементирана како функција Live Probe на уредите SmartFusion2®SoC FPGA и IGLOO®2 FPGA, додава наменски линии на сонда на FPGA ткаенината за да го набљудува излезот од кој било бит за регистар на логички елемент. Како што е прикажано на блок дијаграмот на слика 4, хардверските сонди се достапни во два канали на сонда А и Б.

Microsemi-in-circuit-FPGA-Debug- (3)

Избраните регистерски излези (точки на сонда), како онаа што е наведена на дното на сликата, се насочуваат над двата канали на сондата и ако се избрани, може да се применат на каналот А или Б. Овие сигнали за канали во реално време потоа може да се испратат до наменските пинови на Probe A и Probe B на уредот. Сигналите на Probe A и Probe B исто така може внатрешно да се пренасочат до вграден логички анализатор.

Забележете дека временските карактеристики на пиновите на сондата се редовни и имаат незначително отстапување од една до друга точка на сонда, што го прави многу полесно да се споредат временските карактеристики на сигналите во реално време. Податоците може да се фатат на фреквенција до 100 MHz што ги прави соодветни за повеќето целни дизајни.
Можеби најважно е локациите на точките на сондата, бидејќи тие не се избрани како дел од имплементираниот дизајн (тие се избираат преку посветен хардвер додека дизајнот работи на FPGA), може брзо да се сменат со едноставно испраќање на податоците за селекцијата на уредот. Не е потребно прекомпајлирање и репрограмирање на дизајнот.
За уште повеќе да се поедностави користењето на способноста за сонда во живо, поврзаната софтверска алатка за отстранување грешки има пристап до сите локации на сигналот на сондата преку автоматски генериран дебаг file. Како што е прикажано на слика 5, името на сигналот може да се избере од списокот на сигнали и да се примени на саканиот канал. Ова може да се направи дури и додека дизајнот работи, така што активноста на сондирање во рамките на дизајнот е беспрекорна и многу ефикасна.

Microsemi-in-circuit-FPGA-Debug- (5)

Во многу случаи, способноста за хардверска сонда, како Live Probe, може да се користи заедно со претходно опишаниот вграден логички анализатор и техниките за надворешни тестови.

Како што е прикажано на Слика 6, способноста на Live Probe да избира сигнали „во лет“ овозможува брзо и лесно менување на сигналите што се набљудуваат без потреба од прекомпајлирање на дизајнот. Надворешен логички анализатор или опсег може лесно да ги набљудува сондираните сигнали, како што е илустрирано во горниот десен дел од сликата на посебните излезни пинови на сондата. Алтернативно (или можеби дури и дополнително) внатрешниот логички анализатор (блок ILA Identify, прикажан на сликата) може да се користи за набљудување на пиновите на сондата. Сигналите на сондата може да се фатат од ILA и да се набљудуваат на прозорецот на брановидна форма. Локациите на сондата може да се променат без потреба од повторно компајлирање на целниот дизајн.
Забележете дека дополнителните можности за активирање и трага може да се користат за подобрување на функционалноста на сондата, што го олеснува откривањето дури и сложени проблеми во дизајнот.

Microsemi-in-circuit-FPGA-Debug- (6)

Дополнителни хардверски можности за отстранување грешки се исто така достапни на уредите SmartFusion2 SoC FPGA и IGLOO2 FPGA. Една од овие способности, наречена Active Probe, може динамично и асинхроно да чита или запишува на кој било бит за регистар на логички елемент. Пишаната вредност опстојува за еден такт за да може да продолжи нормалното работење, што ја прави многу вредна алатка за отстранување грешки. Активната сонда е од особен интерес ако се сака брзо набљудување на внатрешен сигнал (можеби едноставно за да се провери дали е активен или во посакуваната состојба, како сигнал за ресетирање), или ако има потреба брзо да се тестира логичката функција со запишување на точка на сонда
(можеби да се иницира транзиција на состојбата на машината со брзо поставување на влезна вредност за да се изолира проблем со контролниот тек).

Друга можност за отстранување грешки обезбедена од Microsemi е Debug во меморијата. Оваа функција му овозможува на дизајнерот динамично и асинхроно да чита или пишува на избраниот SRAM блок од ткаенина FPGA. Како што е илустрирано на снимката од екранот на алатката за отстранување грешки (слика 7), кога ќе се избере картичката Мемориски блокови, корисникот може да ја избере саканата меморија за читање, да изврши слика на меморијата, да ги измени вредностите на меморијата и потоа да ги запише вредностите назад на уредот. Ова може да биде особено корисно за проверка или поставување бафери за податоци што се користат во комуникациските пристаништа за гребење ориентирана кон пресметка или дури и за код извршен од вграден процесор. Отстранувањето грешки на сложените грешки зависни од податоците е значително побрзо и полесно кога мемориите може да се набљудуваат и контролираат толку брзо.

Microsemi-in-circuit-FPGA-Debug- (7)

Откако дизајнот е дебагиран, можеби е пожелно да се исклучат можностите за отстранување грешки на хардверот за да се заштитат чувствителните информации. Напаѓачот може да ги користи истите овие капацитети за читање критични информации или промена на системските поставки што би можеле да овозможат лесен пристап до чувствителните делови од системот. Microsemi додаде функции за да му овозможи на дизајнерот да го обезбеди уредот откако ќе заврши дебагирањето. За прampLe, пристапот до 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и од другите техники намалени.

Microsemi-in-circuit-FPGA-Debug- (8)

Класификација на сигнали
Може да се направи корисна разлика помеѓу некои од најчестите типови на сигнали и тоа може да помогне при планирање на пристап за отстранување грешки. За прampле, сигналите што не се менуваат поинаку освен при стартување на системот, како што се ресетирање на системот, ресетирање блок или регистри за иницијализација може да се класифицираат како статични сигнали. До овие типови на сигнали најефикасно се пристапува преку објект кој лесно може да го набљудува и контролира сигналот, без потреба од долг циклус на прекомпајлирање. Active Probe е одлична можност за дебагирање на статички сигнали. Слично на тоа, сигналите кои се менуваат почесто, но сè уште се статични во огромното мнозинство на времето, може да се класифицираат како псевдостатични и исто така најефективно се дебагираат со помош на Active Probe. Сигналите кои често се менуваат, како сигналите на часовникот, може да се класифицираат како динамични и не се толку лесно достапни преку Active Probe. Live Probe е подобар избор за набљудување на овие сигнали.

Едноставен случај на употреба за отстранување грешки

Сега кога имаме подобро разбирање за различните опции за отстранување грешки во колото, ајде да погледнеме во едноставен дизајн ексampда видиме како функционираат овие техники. Слика 9, покажува едноставен FPGA дизајн во SmartFusion2 SoC FPGA уред. Потсистемот на микроконтролерот (MSS) се ресетира од блокот CoreSF2Reset Soft IP. Влезовите во овој блок се ресетирање на вклучување, ресетирање на корисничка ткаенина и надворешно ресетирање. Излезите се ресетирање на User Fabric, ресетирање на MSS и ресетирање на M3. Симптомите на грешката се дека нема активност на В/И иако уредот успешно излегува од состојбата POR. Трите различни опции за дебагирање на оваа грешка се илустрирани на сликата исто така: Синото поле (означено со ETE) е за методот External Test Equipment; зеленото поле (означено со ILA) е за методот на внатрешен логички анализатор; а портокаловата кутија (означена со AP) е за методот Active Probe. Ќе претпоставиме дека потенцијалните основни причини за грешката се неправилно наведени влезови за ресетирање во блокот CoreSF2Reset Soft IP.

Microsemi-in-circuit-FPGA-Debug- (9)

Ајде сега да го погледнеме процесот на отстранување грешки за три од претходно опишаните методи во колото.

Опрема за надворешен тест
Користејќи го овој метод, се претпоставува дека опремата за тестирање е достапна и не се користи од проект со поголем приоритет. Дополнително, важно е да се планира однапред за да се достапни некои FPGA I/Os и да можат лесно да се поврзат со опремата за тестирање. Имајќи заглавие на ПХБ на прampби било многу корисно и би го минимизирале времето поминато во обидот да се идентификува и да се поврзе со „веројатен осомничен“ или потенцијалното скратување на пиновите за време на испитувањето. Дизајнот ќе треба да се прекомпајлира за да се изберат сигналите што сакаме да ги истражиме. Се надеваме дека нема да го „олупиме кромидот“ и ќе треба да избереме дополнителни сигнали за понатамошна истрага, бидејќи честопати нашата првична истрага само резултира со повеќе прашања. Во секој случај, процесот на прекомпајлирање и репрограмирање може да потрае значително време, а ако резултира со прекршување на времето, потребен е редизајн (на сите ни е познато колку може да биде фрустрирачки обидот за решавање на проблемите со затворањето на времето, особено кога ги правите промените во дизајнот за да пронајдете грешка во дизајнот - целиот процес може да трае од минути до часови)! Исто така, важно е да се запамети дека ако дизајнот нема бесплатни кориснички В/И, овој метод не може да се имплементира. Покрај тоа, овој метод е структурно наметлив за дизајнот - а грешките поврзани со времето може да исчезнат или повторно да се појават помеѓу повторувањата.

Внатрешен логички анализатор
Користејќи го овој метод, ILA мора да се вметне во дизајнот користејќи ресурси за ткаенина, а потоа треба да се прекомпајлира. Забележете дека ако ILA е веќе инстанциран, сигналите што сакаме да ги испитаме можеби не биле инструментирани, што исто така би барало повторно компајлирање. Овој процес ризикува да го промени оригиналниот дизајн и да ги прекрши временските ограничувања. Ако времето е исполнето, дизајнот треба да се репрограмира и повторно да се иницијализира. Целиот овој процес може да потрае неколку минути, па дури и часови, ако времето на прекомпајлирање е долго и се потребни повеќекратни поминувања.

Активна сонда
Користејќи го овој метод, Active Probe може да се насочи кон изворот на различните сигнали за ресетирање, од кои сите се извори од излезите на регистерот (како што е вообичаено во секоја добра практика на дигитален дизајн). Сигналите се избираат еден по еден, од менито Active Probe прикажано на Слика 10 подолу. Избраните вредности на сигналот може да се читаат и се прикажуваат на прозорецот за податоци Active Probe. Сите погрешни тврдења лесно се идентификуваат. Овој тест може да се направи веднаш без потреба од прекомпајлирање и репрограмирање на уредот и не е структурно или процедурално нападен. Целиот процес трае само неколку секунди. Овој метод, исто така, може да создаде контролираност (асинхроно менување на вредностите) што другите два методи нема да го дозволат. Во овој конкретен ексampЛесно, сигналот за ресетирање што го добива регистерот може лесно да се испита и да се открие дека се одржува во активна состојба.

Моментарното префрлање на сигналот за ресетирање може да се постигне со асинхроно манипулирање со регистарот што ги генерира сигналите за одмор.

Microsemi-in-circuit-FPGA-Debug- (10)

Покомплексен случај на употреба за отстранување грешки
Горенаведениот дизајн беше многу едноставен и е корисен како вовед во користењето на опишаните техники на дизајнирање, но покомплексен ексampможе да биде уште поилустративно. Многупати сигналот за интерес не е статичен сигнал како што беше во нашиот едноставен поранешенampно е динамичен. Вообичаен динамички сигнал е среден часовник, кој можеби се користи за темпирање на ракување за сериски интерфејс. Слика 11 покажува таков дизајн со корисничкото меко IP јадро, во овој случај, прилагоден сериски интерфејс поврзан со системската магистрала APB. Симптомите на грешката се дека нема активност на корисничкиот сериски интерфејс на корисникот, и дека кога господарот на магистралата APB издава трансакција за пристап до серискиот интерфејс, тој преминува во состојба на исклучок што укажува на неправилно ракување. Се чини дека овие услови исклучуваат статична причина, како неточен сигнал за ресетирање, бидејќи машината за состојбата на трансакцијата се чини дека не работи со очекуваната стапка и на тој начин предизвикува исклучок. Се смета дека основната причина е генератор на фреквенција на часовникот во рамките на корисничкото IP јадро.

Ако не работи со правилна фреквенција, ќе се појават опишаните грешки.

Microsemi-in-circuit-FPGA-Debug- (11)

Во оваа ситуација, веројатно е подобра стратегија да се замени пристапот Active Probe со Live Probe. Ова е илустрирано на горната слика со ЛП кутијата со портокалова боја, со помош на ЈTAG сигнал за избор на извор на сондата.

Опрема за надворешен тест
За овој случај, методологијата е многу слична на претходно опишаната едноставна прampле. Сигналот на корисничкиот часовник е изнесен до точката за тестирање (се надеваме на заглавие) и потребно е прекомпајлирање кое одзема многу време. Исто така, може да биде корисно да се изнесе референтен сигнал, можеби системски часовник што се користи за тактирање на IP на корисниците како сигнал за споредба. Повторно ќе бидеме подложени на потребата од прекомпајлирање и репрограмирање, така што целиот процес може да потрае значително време.

Внатрешен логички анализатор
Овој случај е многу сличен на едноставниот прampле. Мора да се вметне ILA или да се дефинира саканиот сигнал и да се изврши циклус на прекомпајлирање и репрограмирање. Сите претходно опишани проблеми сè уште резултираат со значително време на циклус на отстранување грешки. Сепак, постои дополнителна сложеност. Часовникот што го придвижува ILA треба да биде синхрон и идеално многу побрз во однос на часовникот што треба да се набљудува од корисничкото меко IP јадро. Ако овие часовници се асинхрони или немаат правилни временски врски, снимањето на податоците ќе биде непредвидливо и можен извор на забуна за процесот на отстранување грешки.
Имајте предвид дека ако корисничкиот мек IP часовник не се генерира на чип (можеби е обновен од серискиот интерфејс), дизајнерот можеби ќе треба да додаде модул за часовник за да генерира побрз ILA часовник користејќи дополнителни ресурси и евентуално создавање на прекршување на времето.

Сонда во живо
Користејќи го овој метод, Live Probe може брзо да се насочи кон изворот на корисничкиот часовник и кој било друг извор на часовник од регистерот за да се лоцираат основните причини за грешката. Сондата во живо ќе ги прикаже избраните излези на сигналот во реално време и затоа е многу полесно да се одреди каква било врска со времето помеѓу сигналите. Целиот процес трае само неколку секунди.

Други карактеристики за отстранување грешки за сериски интерфејси
Исто така, важно е да се истакне дека има многу дополнителни можности за отстранување грешки во SmartFusion2 SoC FPGA и IGLOO2 FPGA уредите што може да се користат на сериски интерфејси, како оној во претходниот поранешенampле дизајн каде грешките се уште покомплицирани. SERDES Debug, на прample, обезбедува специфични можности за отстранување грешки за посветените сериски интерфејси со голема брзина. Некои од карактеристиките на SERDES Debug вклучуваат поддршка за тестирање PMA (како генерирање на шаблони PRBS и тестирање на јамка) поддршка за повеќекратни конфигурации на SERDES тест со реконфигурација на ниво на регистер за да се избегне употребата на целосниот тек на дизајнот за да се направат промени во конфигурацијата и текстуални извештаи што прикажуваат конфигурирани протоколи, регистри за конфигурација на SERDES и регистри за конфигурација. Овие карактеристики го олеснуваат отстранувањето грешки на SERDES и може да се користат заедно со Live Probe и Active Probe за понатамошно брзо отстранување грешки на сложените кола.
Претходно опишаната алатка за отстранување грешки во меморијата, исто така, може да се користи заедно со SERDES Debug за тестирање на брзина. Бидејќи мемориските бафери може брзо и лесно да се проверат и менуваат со Debug во меморијата, можно е брзо да се креираат „тест пакети“ и да се набљудуваат резултатите од loopback или меѓусистемските комуникации. Дизајнерот може да ги искористи овие способности и на тој начин да ја минимизира потребата за специјализирани „тест ремени“ кои трошат дополнителна FPGA ткаенина и што може да влијае на времето на чипот.

Заклучок
Овој труд детално опиша неколку различни пристапи за имплементирање на дебагирање во колото за FPGA и SoC FPGA-употреба на интегриран логички анализатор, употреба на надворешна опрема за тестирање и употреба на наменски кола со сонда интегрирани во ткаенината FPGA. Додавањето на специјализирани и посветени кола со сонда, како Active Probe и Live Probe понудени од Microsemi на уредите SmartFusion2 SoC FPGA и IGLOO2 FPGA, се покажа дека значително го забрзува и го поедноставува процесот на отстранување грешки. Способноста за брзо менување на изборот на внатрешни сигнали (без потреба од извршување на многу време одземачки циклус на прекомпајлирање и репрограмирање) и способноста за испитување на внатрешните сигнали (без потреба од користење FPGA ткаенина и потенцијално воведување прекршувања на времето) се покажаа како главна предност.tages при дебагирање на FPGA дизајни. Дополнително, беше опишана употребата на повеќе методологии, кои можат да работат заедно за да обезбедат уште посеопфатна можност за отстранување грешки. Конечно, двајца бившиampБеа дадени случаи на употреба за отстранување грешки за да се илустрира компромисите помеѓу опишаните методи.

За да дознаете повеќе

  1. IGLOO2 FPGAs
  2. SmartFusion2 SoC FPGAs

Microsemi Corporation (Nasdaq: MSCC) нуди сеопфатно портфолио на полупроводнички и системски решенија за комуникации, одбрана и безбедност, воздушната и индустриските пазари. Производите вклучуваат аналогни интегрирани кола со мешан сигнал со високи перформанси и стврднати со зрачење, FPGA, SoC и ASIC; производи за управување со енергија; уреди за тајминг и синхронизација и прецизни временски решенија, поставувајќи ги светските стандарди за времето; уреди за обработка на глас; RF решенија; дискретни компоненти; безбедносни технологии и скалабилни анти-тamper производи; ИЦ и средни распони со напојување преку етернет; како и можности и услуги прилагодено за дизајн. Микросеми е со седиште во Алисо Виехо, Калифорнија, и има приближно 3,400 вработени на глобално ниво. Дознајте повеќе на www.microsemi.com.

© 2014 Microsemi Corporation. Сите права се задржани. Microsemi и логото на Microsemi се заштитни знаци на Microsemi Corporation. Сите други заштитни знаци и услужни марки се сопственост на нивните соодветни сопственици.

Седиштето на корпоративното „Микросеми“.

Најчесто поставувани прашања

  • П: Која е максималната фреквенција на снимање податоци на уредот?
    О: Уредот поддржува снимање податоци до 100 MHz, погоден за повеќето целни дизајни.
  • П: Дали треба повторно да го компајлирам дизајнот кога користам кола со сонда за дебагирање?
    О: Не, локациите на точките на сонда може брзо да се променат без да се бара прекомпилација или репрограмирање на дизајнот.

Документи / ресурси

Дебагирање на Microsemi во коло FPGA [pdf] Инструкции
Отстранување грешки во FPGA во коло, Отстранување грешки во FPGA, Отстранување грешки

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *