Mikrosemi-logo

Microsemi In-Circuit FPGA Debug

Microsemi-In-Circuit-FPGA-Debug-product

Informace o produktu

Specifikace

  • Typ zařízení: Microsemi SmartFusion2 SoC FPGA
  • Datum vydání: květen 2014
  • Možnosti ladění: In-Circuit FPGA Debug, Embedded Logic Analyzer
  • Maximální frekvence sběru dat: Až 100 MHz

Abstraktní
FPGA jsou výkonné konstrukční prvky ve vestavěných systémech s mnoha konstrukčními výhodamitages, ale tato zařízení mohou mít složité návrhy se složitými konstrukčními problémy, které je třeba odladit. Sledování problémů s návrhem, jako jsou chyby definic, problémy se systémem interakce a chyby časování systému, může být problém. Zahrnutí funkcí ladění v obvodu do FPGA může dramaticky zlepšit ladění hardwaru a vyhnout se mnoha hodinám frustrace. Tento článek popisuje několik různých přístupů k in-circuit debug pro FPGA, identifikuje klíčové kompromisy a prostřednictvím example design, zaměřený na zařízení Microsemi SmartFusion®2 SoC FPGA, ukáže, jak lze nové schopnosti využít k urychlení ladění a testování.

Zavedení

FPGA jsou všudypřítomné a výkonné konstrukční prvky a nyní se nacházejí prakticky v každém vestavěném systému. S rostoucí kapacitou, zahrnutím komplexních funkčních bloků na čipu a pokročilých sériových rozhraní mohou tato zařízení mít také složité konstrukční problémy, které je třeba odladit. Sledování problémů, jako jsou chyby funkční definice (na úrovni FPGA nebo systému), problémy s interakcí funkčního systému, problémy s časováním systému a problémy s věrností signálu mezi integrovanými obvody (jako je šum, přeslechy nebo odrazy), to vše se při použití pokročilých FPGA stává mnohem složitějším. Simulace je jistě velkou pomocí při identifikaci mnoha konstrukčních problémů, ale mnoho interakcí v reálném světě se neprojeví, dokud nebude návrh implementován v hardwaru. Pro zjednodušení procesu bylo vyvinuto několik různých technik pro ladění složitých návrhových problémů. Pečlivé porozumění každé z těchto klíčových technik, včetně různých výhodtages a disadvantages, je užitečné při zvažování, která technika nebo kombinace technik je vhodná pro konkrétní návrh.
Bývalýample FPGA design, zaměřený na Microsemi SmartFusion2 SoC FPGA zařízení, lze použít k demonstraci některých výhodtages a disadvantages těchto standardních technik a také nejnovější možnosti ladění v rámci okruhu. Tento názorný example ukáže, jak lze tyto různé techniky použít k urychlení identifikace a odstranění problémů s hardwarem během ladění hardwaru.

Proč je ladění FPGA kritickým aspektem návrhu a vývoje systému?
FPGA mají dva hlavní modely použití, které je odlišují od ostatních konstrukčních prvků. FPGA mohou být použity ve výrobním produktu nebo mohou být použity jako vývojové vozidlo k prokázání nebo prototypování konceptu výrobního designu. Při použití jako produkční vozidlo mohou být FPGA mnohem flexibilnějším cílem než produkční vozidla založená na ASIC nebo CPU. To je zvláště důležité pro nový design, který ještě nebyl implementován do hardwaru. Návrhy s různými architektonickými možnostmi lze snadno vytvářet a testovat, takže je identifikován optimální návrh. FPGA s procesory na čipu (SoC FPGA) také umožňují vyrovnat zpracování založené na CPU s hardwarově podporovanými akceleračními funkcemi založenými na FPGA. Tyto advantages může dramaticky zkrátit čas potřebný pro návrh, validaci, testování a analýzu poruch pro vývoj nových produktů.
Při použití pro prototypování návrhu, možná pro produkční ASIC, je flexibilita FPGA klíčovou výhodou. Skutečná hardwarová platforma, dokonce i ta, která neběží plnou rychlostí, mnohem snáze získává podrobné metriky výkonu systému, data analýzy propustnosti a výsledky ověření koncepce. Podpora FPGA pro zesílené implementace průmyslových standardních sběrnic (jako PCIe®, Gigabit Ethernet, XAUI, USB, CAN a další) zjednodušuje testování spojené s těmito rozhraními. Nejnovější rodiny FPGA s procesory ARM na čipu (SoC FPGA) umožňují snadno prototypovat implementace s vestavěnými procesory. Dříve vyvinutý kód procesoru lze přenést do prototypu a vytvořit nový kód souběžně s úsilím o návrh hardwaru.

Tato kombinace standardního procesoru se standardními sběrnicemi rozhraní umožňuje využít rozsáhlý ekosystém dostupných knihoven kódů, ovladačů, funkčních API, operačních systémů v reálném čase a dokonce celých operačních systémů k mnohem rychlejšímu vytvoření funkčního prototypu. Navíc, jakmile je návrh zpevněn, lze prototyp FPGA použít k zachycení rozsáhlých simulačních testovacích sad (pro stimul i odezvu), které odrážejí skutečná systémová data. Tyto datové sady mohou být neocenitelné při vytváření konečných simulací pro ASIC nebo jinou produkční implementaci. AdvantagPoužití FPGA jako prototypu návrhu může dramaticky zkrátit dobu potřebnou pro návrh, ověření, testování a analýzu selhání pro implementaci finálního produktu.
V obou těchto běžných modelech použití FPGA je flexibilita FPGA jako cíle návrhu klíčovou výhodoutagE. To znamená, že mnoho změn a iterací návrhu by bylo normou, a proto by schopnost rychle ladit chyby návrhu byla kritická pro umožnění co největšího počtu možností návrhu. Bez účinného ladění je velká část výhodtagFlexibilita návrhu FPGA bude snížena dodatečným časem potřebným pro ladění. Naštěstí mohou FPGA také poskytovat další hardwarové funkce, které výrazně zjednodušují ladění v reálném čase. Než se podíváme na tyto možnosti, podívejme se nejprve na nejběžnější typy problémů, se kterými se může návrh FPGA potýkat, abychom měli patřičné zázemí pro vyhodnocení účinnosti a souvisejících kompromisů různých ladicích nástrojů.

Běžné problémy při ladění návrhů FPGA

Spolu s rozšířenými možnostmi, které moderní FPGA přinášejí, s tím související zvýšená složitost ztěžuje vytváření bezchybných návrhů. Ve skutečnosti se odhaduje, že ladění může zabrat více než 50 % cyklu návrhu vestavěného systému. Vzhledem k tomu, že vývojový cyklus stále stlačují tlaky na uvedení na trh, je hardwarové ladění původního systému odsunuto na konec – až příliš často za předpokladu, že toto ověření (samotné velké procentotage plánu vývoje), zachytí všechny chyby před prvním spuštěním systému. Podívejme se na několik běžných typů systémových problémů, abychom lépe porozuměli výzvám, kterým bude typický návrh čelit během počátečního uvedení systému do provozu.

Chyby v definici funkce může být dvakrát obtížné najít, protože návrhář nepochopil konkrétní požadavek, takže chyba může být přehlédnuta, i když se pečlivě dívá na detaily návrhu. BývalýampBěžnou chybou definice funkce by bylo, když přechod stavového stroje neskončí ve správném stavu. Chyby se také mohou projevit v systémových rozhraních jako problém interakce. Latence rozhraní, napřample, může být nesprávně zadán, což má za následek neočekávané přetečení nebo podtečení vyrovnávací paměti.
Problémy s časováním na úrovni systému jsou dalším velmi častým zdrojem chyb návrhu. Zejména asynchronní události jsou běžným zdrojem chyb, když nejsou pečlivě zvažovány efekty synchronizace nebo křížení časování domény. Při rychlém provozu mohou být tyto typy chyb velmi problematické a mohou se objevit velmi zřídka, možná pouze tehdy, když se projeví specifické datové vzorce. Mnoho běžných porušení načasování spadá do této kategorie a je obvykle velmi obtížné, ne-li nemožné simulovat.

Porušení časování může být také výsledkem nízké věrnosti signálu mezi integrovanými obvody, zejména v systémech s více napájecími kolejnicemi pro každý obvod. Nízká věrnost signálu může mít za následek šum signálu, přeslechy, odrazy, nadměrné zatížení a problémy s elektromagnetickým rušením (EMI), které se často projevují jako narušení časování. Problémy s napájením, jako jsou přechodné jevy (zejména během spouštění nebo vypínání systému), kolísání zátěže a vysoké namáhání ztrátovým výkonem mohou také vést k záhadným chybám, které často nelze snadno vysledovat zpět ke zdroji napájení. I když je návrh zcela správný, problémy s výrobou desky mohou vést k chybám. Vadné pájené spoje a nesprávně připojené konektory, napřample, může být zdrojem chyb a může být dokonce závislý na teplotě nebo umístění desky. Použití pokročilých balicích technik FPGA může ztížit sondování signálů na desce s plošnými spoji, takže pouhé získání přístupu k požadovanému signálu může být často problematické. Mnoho problémů s návrhem často nezpůsobí okamžitou chybu a musí se návrhem zvlnit, dokud se chyba skutečně neprojeví. Vysledování počáteční chyby zpět ke kořenové příčině může být často frustrující, obtížný a časově náročný úkol.

Napřample, jediný chybný bit v překladové tabulce nemusí vést k chybě, dokud o mnoho cyklů později. Některé z nástrojů, o kterých budeme hovořit později v tomto dokumentu a které používají vyhrazený ladicí hardware v obvodu, jsou specificky zaměřeny na zrychlení a usnadnění těchto „lovů chyb“. Než se pustíme do podrobností o těchto nástrojích, podívejme se nejprve na populární softwarovou simulaci techniky ladění, abychom lépe porozuměli výhodámtages a disadvantagpoužití simulace pro ladění.

Použití simulace pro ladění
Typicky v simulaci návrhu jsou všechny reálné komponenty uvnitř i vně návrhu matematicky modelovány jako softwarové procesy, které jsou prováděny sekvenčně na standardním CPU. Použití široké škály podnětů na návrh a kontrola očekávaného výstupu oproti výstupu simulovaného návrhu je snadný způsob, jak zachytit většinu zjevných chyb návrhu. Okno zobrazující typický běh simulace je uvedeno na obrázku 1 níže. Jasná výhodatagSimulace versus hardwarové ladění spočívá v tom, že simulaci lze provádět v softwaru – není potřeba žádný skutečný hardwarový návrh a testovací prostředí. Simulace může rychle zachytit mnoho konstrukčních chyb, zejména těch, které jsou spojeny s nesprávnými specifikacemi, nepochopením požadavků na rozhraní, funkčními chybami a mnoha dalšími „hrubými“ typy chyb, které jsou snadno detekovány pomocí jednoduchých stimulačních vektorů.

Microsemi-In-Circuit-FPGA-Debug- (1)

Simulace je zvláště účinná, když má konstruktér k dispozici rozsáhlé kombinace podnětů a výsledné výstupy jsou dobře známé. V těchto případech může simulace udělat téměř vyčerpávající test návrhu. Bohužel většina návrhů nemá snadný přístup k rozsáhlým testovacím sadám a proces jejich vytváření může být velmi časově náročný. Vytvoření testovací sady, která pokrývá 100 % návrhu, je u velkých návrhů založených na FPGA prakticky nemožné a k pokrytí klíčových prvků návrhu je nutné použít zkratky. Dalším problémem simulace je to, že se nejedná o implementaci „reálného světa“ a nemůže zachytit asynchronní události, interakce se systémem při vysoké rychlosti nebo narušení časování. Konečně, proces simulace může být velmi pomalý a pokud je vyžadováno mnoho iterací, simulace se rychle stává časově nejnáročnější a často nejnákladnější částí vývojového procesu.

Jako alternativu (nebo možná lépe řečeno jako doplněk k simulaci) konstruktéři FPGA zjistili, že mohou do návrhu FPGA přidat ladicí hardware, aby mohli sledovat a řídit klíčové signály v zařízení. Tyto techniky se původně vyvíjely jako ad-hoc přístupy, ale postupně se vyvinuly ve standardní strategii ladění hardwaru. Toto použití možností ladění v obvodu nabízí významné výhodytages pro návrhy založené na FPGA a další část prozkoumá tři nejběžnější strategie a jejich různé výhodytages a disadvantages.

Common In-Circuit Debug Approaches pro FPGA
Nejběžnější techniky implementace funkcí ladění v obvodu v FPGA využívají buď vestavěný logický analyzátor, externí testovací zařízení nebo vyhrazený hardware sondy signálu zabudovaný do struktury FPGA. Vestavěný logický analyzátor je typicky implementován pomocí FPGA tkaniny a je vložen do návrhu. JTAG port se používá pro přístup k analyzátoru a zachycená data lze zobrazit na PC. Při použití externího testovacího zařízení je testovaný návrh FPGA upraven tak, aby vybrané interní signály FPGA byly směrovány na výstupní piny. Tyto kolíky lze poté pozorovat prostřednictvím externího testovacího zařízení. Při použití vyhrazeného hardwaru signálové sondy lze v reálném čase číst široký výběr interních signálů. Některé implementace sondy lze dokonce použít k zápisu do registrů nebo paměťových míst, což dále zvyšuje možnosti ladění. Podívejme se podrobněji na advantages a disadvantages každé z těchto technik a pak se podívejte na example design, abyste viděli, jak tyto různé přístupy mohou ovlivnit celkovou dobu ladění.

In-Circuit FPGA Debug-Embedded Logic Analyzer
Koncept vestavěného logického analyzátoru byl přímým výsledkem ad-hoc in-circuit ladicích schopností, které konstruktéři implementovali při prvním použití FPGA. Vestavěné logické analyzátory přidaly nové možnosti a odstranily požadavek, aby konstruktér vyvíjel vlastní analyzátor. Většina FPGA nabízí tyto možnosti a třetí strany nabízejí standardní analyzátory (Identify® od Synopsys je jedním z populárníchample), které lze snadno propojit s nástroji vyšší úrovně pro další zvýšení produktivity.

Funkčnost logického analyzátoru je vložena do návrhu pomocí struktury FPGA a vestavěných paměťových bloků jako trasovacích vyrovnávacích pamětí, jak je znázorněno na obrázku 2. Spouštěcí zdroje jsou také vytvořeny tak, aby bylo možné snadno vybrat a zachytit komplexní interakce signálu. Přístup k analyzátoru pro řízení a přenos dat se obvykle provádí prostřednictvím standardu JTAG port pro zjednodušení požadavků na rozhraní. Zachycená data lze zobrazit na PC pomocí common viewa typicky zrcadlí výstup tvaru vlny logického simulátoru viewing stylu.

Microsemi-In-Circuit-FPGA-Debug- (2)

AdvantagTento přístup spočívá v tom, že nejsou použity žádné další I/O piny FPGA, pouze standardní JTAG signály. IP jádra vestavěného logického analyzátoru jsou obvykle relativně levná a v některých případech mohou být alternativou k existujícím syntézám FPGA nebo simulačním nástrojům. V některých případech může vestavěný logický analyzátor také poskytovat další výstupy na nepoužívaných I/O, pokud je to výhodnější. Jeden z disadvanůtagTento přístup spočívá v tom, že je zapotřebí velké množství zdrojů FPGA. Zejména pokud jsou použity trasovací vyrovnávací paměti, sníží se tím počet dostupných blokových pamětí. Pokud je potřeba široká vyrovnávací paměť, bude to také kompromisem proti hloubce paměti (protože použití širší paměti má za následek menší hloubku paměti) – velká nevýhodatage při použití menších zařízení. Snad největší nevýhodou této techniky je to, že pokaždé, když je provedena úprava umístění sondy, je nutné překompilovat a přeprogramovat návrh. Při použití velkého zařízení může tento proces trvat značné množství času. Kvůli způsobu umístění signálových sond v konstrukci může být obtížné korelovat vztahy časování signálu. Navíc zpoždění mezi signálovými sondami nejsou konzistentní, a proto je obtížné porovnávat časové vztahy. To je zvláštní problém při porovnávání asynchronních signálů nebo signálů z různých časových oblastí.

In-Circuit FPGA Debug – externí testovací zařízení
Použití in-circuit debug kódu ve spojení s externím testovacím zařízením bylo přirozeným vývojem, když již byl k dispozici externí logický analyzátor pro testování systému. Vytvořením jednoduchého ladícího kódu pro identifikaci a výběr interních testovacích signálů a jejich aplikování na FPGA I/O, jak je znázorněno na obrázku 3, bylo možné využít pokročilé schopnosti analyzátorů (jako jsou velké trasovací vyrovnávací paměti, složité spouštěcí sekvence a vícenásobné viewing options) k vytvoření jednoduchých, ale výkonných ladicích prostředí. Složitější možnosti in-circuit pro pokročilé možnosti spouštění mohou minimalizovat počet potřebných výstupů. NapřampPokud by byly vyžadovány externí piny, výběr konkrétních adres na široké sběrnici by mohl být neúnosný.
Použití interní logiky FPGA dramaticky snižuje požadavky na I/O a může dokonce hledat specifické adresové vzory (možná sekvence volání a návratů) pro ladění složitějších problémů. Pokud je k dispozici společné uživatelské rozhraní, může to zjednodušit křivku učení a zvýšit produktivitu.

Microsemi-In-Circuit-FPGA-Debug- (3)

AdvantagTento přístup spočívá v tom, že využívá náklady na externí testovací zařízení, takže nevznikají žádné další náklady na nástroje. Některá jádra IP ladicích obvodů jsou k dispozici od výrobců zařízení nebo výrobců FPGA a mohou být velmi levné nebo dokonce zdarma. Množství zdrojů FPGA potřebné k implementaci logiky výběru signálu je velmi malé, a protože funkce sledování se provádí pomocí externího logického analyzátoru, nejsou potřeba žádné blokové paměti. Protože logika výběru je levná, může být podporováno velké množství kanálů se širokým spouštěním. Logický analyzátor může pracovat jak v režimu časování, tak v režimu stavu, což pomáhá izolovat některé problémy s časováním.
Nevýhodatages tohoto přístupu může zahrnovat potřebu nákupu logického analyzátoru, pokud již není přidělen k projektu. Toto znevýhodněnítage může v mnoha případech stačit k odrazení od tohoto přístupu. Všimněte si však, že jsou k dispozici některé levné možnosti logického analyzátoru, které pro zobrazení využívají počítač nebo tablet, díky čemuž je tato možnost mnohem efektivnější z hlediska požadavků na jednoduché ladění.
Další nevýhodou může být počet spotřebovaných pinů FPGAtage a pokud je třeba dodržet široké sběrnice, je zapotřebí významné plánování rozvržení desky a přidání ladicích konektorů. Tento požadavek je většinou obtížné předvídat v rané fázi návrhu a další nežádoucí složitost. Podobně jako u přístupu vestavěného logického analyzátoru vyžaduje externí testovací strategie překompilování a přeprogramování návrhu, když je potřeba každý nový experiment.

Obyčejný disadvantagTyto dvě techniky – použití zdrojů na čipu (které mohou také ovlivnit výkon načasování návrhu a vytvořit další požadavky na ladění), potřeba překompilovat a přeprogramovat návrh (což může přidat hodiny nebo dokonce dny k plánu ladění), předběžné plánování potřebné pro identifikaci pravděpodobných testovacích scénářů a použití dalších čipových I/O zdrojů vytvořilo potřebu přístupu bez těchto nevýhod. Jednou reakcí bylo přidání vyhrazené ladicí logiky do struktury FPGA na některých zařízeních. Výsledkem bylo ladění v obvodu pomocí hardwarových sond.

In-Circuit FPGA Debug – Hardwarové sondy
Použití hardwarových sond dramaticky zjednodušuje techniky ladění v obvodu pro FPGA. Tato technika implementovaná jako funkce Live Probe na zařízeních SmartFusion2®SoC FPGA a IGLOO®2 FPGA přidává vyhrazené vedení sondy do struktury FPGA pro sledování výstupu libovolného bitu registru logického prvku. Jak ukazuje blokové schéma na obrázku 4, hardwarové sondy jsou k dispozici ve dvou kanálech sond A a B.

Microsemi-In-Circuit-FPGA-Debug- (3)

Vybrané výstupy registrů (bodové sondy), jako jsou ty, které jsou uvedeny ve spodní části obrázku, jsou směrovány nad dva kanály sond a pokud jsou vybrány, mohou být aplikovány na kanál A nebo B. Tyto signály kanálů v reálném čase lze poté odeslat na vyhrazené kolíky sondy A a sondy B na zařízení. Signály sondy A a sondy B mohou být také interně směrovány do integrovaného logického analyzátoru.

Všimněte si, že časovací charakteristiky pinů sondy jsou pravidelné a mají zanedbatelnou odchylku od jednoho bodu sondy k druhému, takže je mnohem snazší porovnat časové charakteristiky signálů v reálném čase. Data mohou být zachycena rychlostí až 100 MHz, což je vhodné pro většinu cílových návrhů.
Snad nejdůležitější je umístění bodů sondy, protože nejsou vybrána jako součást implementovaného návrhu (jsou vybrána prostřednictvím vyhrazeného hardwaru, zatímco návrh běží na FPGA), lze rychle změnit pouhým odesláním dat výběru do zařízení. Není potřeba žádná rekompilace a přeprogramování návrhu.
Pro ještě větší zjednodušení použití funkce Live Probe má přidružený softwarový nástroj pro ladění přístup ke všem umístěním signálu sondy prostřednictvím automaticky generovaného ladění. file. Jak je znázorněno na obrázku 5, název signálu lze vybrat ze seznamu signálů a použít jej na požadovaný kanál. To lze provést, i když návrh běží, takže činnost sondování v rámci návrhu je bezproblémová a velmi efektivní.

Microsemi-In-Circuit-FPGA-Debug- (5)

V mnoha případech může být funkce hardwarové sondy, jako je Live Probe, použita ve spojení s dříve popsaným vestavěným logickým analyzátorem a externími testovacími technikami.

Jak je znázorněno na obrázku 6, schopnost živé sondy vybírat signály „za běhu“ umožňuje rychle a snadno měnit pozorované signály bez nutnosti překompilování návrhu. Externí logický analyzátor nebo osciloskop může snadno pozorovat snímané signály, jak je znázorněno v pravé horní části obrázku na vyhrazených výstupních pinech sondy. Alternativně (nebo možná ještě navíc) lze k pozorování kolíků sondy použít interní logický analyzátor (blok ILA Identify, znázorněný na obrázku). Signály sondy mohou být zachyceny ILA a pozorovány v okně tvaru vlny. Umístění sondy lze změnit bez nutnosti překompilování cílového návrhu.
Všimněte si, že další funkce pro spouštění a trasování lze použít k vylepšení funkčnosti sondy, což usnadňuje odhalení i složitých konstrukčních problémů.

Microsemi-In-Circuit-FPGA-Debug- (6)

Na zařízeních SmartFusion2 SoC FPGA a IGLOO2 FPGA jsou k dispozici také další možnosti ladění hardwaru. Jedna z těchto schopností, nazývaná Active Probe, může dynamicky a asynchronně číst nebo zapisovat do libovolného bitu registru logického prvku. Zapsaná hodnota přetrvává po dobu jednoho hodinového cyklu, takže normální provoz může pokračovat, což z ní činí velmi cenný nástroj pro ladění. Aktivní sonda je zvláště zajímavá, pokud je požadováno rychlé pozorování vnitřního signálu (možná jednoduše pro kontrolu, zda je aktivní nebo v požadovaném stavu, jako je signál resetování), nebo pokud je potřeba rychle otestovat logickou funkci zápisem do bodu sondy.
(možná k zahájení přechodu stavového stroje rychlým nastavením vstupní hodnoty, aby se izoloval problém řídicího toku).

Další možností ladění, kterou Microsemi poskytuje, je Memory Debug. Tato funkce umožňuje konstruktérovi dynamicky a asynchronně číst nebo zapisovat do vybraného bloku FPGA fabric SRAM. Jak je znázorněno na snímku obrazovky nástroje Debug Tool (obrázek 7), když je vybrána karta Memory Blocks (Paměťové bloky), uživatel může vybrat požadovanou paměť ke čtení, provést zachycení paměti, upravit hodnoty paměti a poté je zapsat zpět do zařízení. To může být zvláště užitečné pro kontrolu nebo nastavení datových vyrovnávacích pamětí používaných v komunikačních portech pro výpočetně orientovaný zápisník nebo dokonce pro kód prováděný vestavěným CPU. Ladění komplexních chyb závislých na datech je výrazně rychlejší a snazší, když lze paměti pozorovat a ovládat tak rychle.

Microsemi-In-Circuit-FPGA-Debug- (7)

Jakmile je návrh odladěn, může být žádoucí vypnout funkce ladění hardwaru pro ochranu citlivých informací. Útočník by mohl použít stejné prostředky k načtení kritických informací nebo ke změně nastavení systému, která by mohla umožnit snadný přístup k citlivým částem systému. Microsemi přidal funkce, které umožňují návrháři zabezpečit zařízení po dokončení ladění. NapřampPřístup k Live Probe a Active Probe lze zamknout a zcela deaktivovat funkci jako možný prostředek útoku (dokonce eliminuje možnost aktivity sondy vytvářející jakékoli vzory v napájecím proudu, které by bylo možné použít k pokusu a nepřímému sledování dat sondy). Alternativně lze přístup k vybraným částem návrhu uzamknout, aby se zabránilo přístupu pouze k těmto částem. To může být výhodné, pokud musí být zabezpečena pouze část návrhu, aby byl zbytek návrhu stále dostupný pro testování v terénu nebo analýzu chyb.

Srovnávací tabulka ladění v obvodu
Nyní podrobný review ze tří hlavních technik hardwarového ladění v obvodu byly popsány souhrnná tabulka, jak je znázorněno na obrázku 8, která podrobně popisuje různé výhodytages a disadvantages každé metody. Pamatujte, že některé techniky lze použít ve spojení (Live Probe a Internal Logic Analyzer (ILA), jako Synopsys Identify, např.ample), můžeme vidět klíčové silné a slabé stránky každé techniky. Kolekce funkcí hardwarového ladění v obvodu (Live Probe, Active Probe a Memory Debug – souhrnně nazývané SmartDebug), jsou nejslabší ve srovnání s ostatními technikami, pokud jde o celkový počet dostupných sond (červený kruh) a jsou slabší než nejlepší (žlutý kruh), pokud se vezme v úvahu rychlost snímání (externí testovací zařízení může být rychlejší).
Techniky založené na ILA, jako je Synopsys Identify, jsou nejslabší ve srovnání s ostatními technikami a při zohlednění požadavků na zdroje FPGA. Techniky založené na externím testovacím zařízení jsou nejslabší z mnoha důvodů, přičemž nejnáročnější jsou náklady, dopad na načasování návrhu a režie pohybu sondy (kvůli nutnosti překompilovat návrh). Možná je optimálním řešením kombinace SmartDebug a jedné z dalších technik, aby bylo možné zmírnit slabost počtu kanálů SmartDebug a znevýhodnit pohyb sondy.tagSnížily se i ostatní techniky.

Microsemi-In-Circuit-FPGA-Debug- (8)

Klasifikace signálů
Mezi některými z nejběžnějších typů signálů lze užitečně rozlišovat, což může pomoci při plánování přístupu k ladění. NapřampSignály, které se nemění jinak než během spouštění systému, jako je reset systému, reset bloku nebo inicializační registry, lze klasifikovat jako statické signály. K těmto typům signálů je nejúčinněji přistupováno prostřednictvím zařízení, které může signál snadno pozorovat a také ovládat, aniž by bylo zapotřebí dlouhého cyklu překompilování. Active Probe je vynikající zařízení pro ladění statických signálů. Podobně signály, které se mění častěji, ale stále jsou po drtivou většinu času statické, lze klasifikovat jako pseudostatické a lze je také nejúčinněji ladit pomocí Active Probe. Signály, které se často mění, jako jsou hodinové signály, lze klasifikovat jako dynamické a nejsou tak snadno dostupné prostřednictvím aktivní sondy. Live Probe je lepší volbou pro pozorování těchto signálů.

Jednoduchý případ použití ladění

Nyní, když lépe rozumíme různým možnostem ladění v okruhu, podívejme se na jednoduchý návrh exampPodívejte se, jak tyto techniky fungují. Obrázek 9 ukazuje jednoduchý návrh FPGA v zařízení SmartFusion2 SoC FPGA. Mikrokontrolérový subsystém (MSS) je resetován blokem CoreSF2Reset Soft IP. Vstupy do tohoto bloku jsou Power On Reset, User Fabric Reset a External Reset. Výstupy jsou reset na User Fabric, reset MSS a reset M3. Příznaky chyby jsou, že na I/O nedochází k žádné aktivitě, přestože zařízení úspěšně ukončí stav POR. Tři různé možnosti ladění této chyby jsou také znázorněny na obrázku: Modrý rámeček (označený ETE) je pro metodu externího testovacího zařízení; zelený rámeček (označený ILA) je pro metodu Internal Logic Analyzer; a oranžový rámeček (označený AP) je pro metodu Active Probe. Budeme předpokládat, že potenciální hlavní příčiny chyby jsou nesprávně uplatněné resetovací vstupy do bloku CoreSF2Reset Soft IP.

Microsemi-In-Circuit-FPGA-Debug- (9)

Podívejme se nyní na proces ladění pro tři z dříve popsaných in-circuit metod.

Externí testovací zařízení
Při použití této metody se předpokládá, že testovací zařízení je k dispozici a není používáno projektem s vyšší prioritou. Navíc je důležité plánovat dopředu, aby byly k dispozici některé I/O FPGA a mohly být snadno připojeny k testovacímu zařízení. Mít hlavičku na PCB napřample, by bylo velmi užitečné a minimalizovalo by čas strávený pokusy o identifikaci a připojení k „pravděpodobně podezřelému“ nebo potenciálnímu zkratování kolíků během sondování. Pro výběr signálů, které chceme zkoumat, bude nutné návrh překompilovat. Doufejme, že nebudeme „loupat cibuli“ a budeme muset vybrat další signály pro další vyšetřování, protože naše počáteční vyšetřování často vede k dalším otázkám. V každém případě může proces překompilování a přeprogramování zabrat značné množství času, a pokud má za následek porušení načasování, je nutné provést přepracování (všichni víme, jak frustrující může být pokus o vyřešení problémů s načasováním uzavření, zejména když provádíte změny návrhu, abyste našli chybu v návrhu – celý proces může trvat minuty až hodiny)! Je také důležité si uvědomit, že pokud návrh nemá žádné volné uživatelské I/O, nelze tuto metodu implementovat. Navíc je tato metoda strukturálně rušivá pro návrh – a chyby související s načasováním mohou mezi iteracemi zmizet nebo se znovu objevit.

Interní logický analyzátor
Pomocí této metody musí být ILA vložena do návrhu pomocí prostředků tkaniny a poté musí být znovu zkompilována. Všimněte si, že pokud ILA již byla vytvořena, signály, které chceme prozkoumat, nemusely být instrumentovány, což by také vyžadovalo rekompilaci. Tento proces riskuje změnu původního návrhu a porušení časových omezení. Pokud je načasování splněno, je třeba návrh přeprogramovat a znovu inicializovat. Celý tento proces může trvat několik minut nebo dokonce hodin, pokud jsou doby rekompilace dlouhé a je potřeba více průchodů. Tento přístup je strukturálně rušivý a může vést k podobným problémům, jaké byly popsány při použití výše uvedené metody.

Aktivní sonda
Pomocí této metody může být aktivní sonda nasměrována na zdroj různých resetovacích signálů, z nichž všechny jsou získávány výstupy registrů (jak je běžné v jakékoli dobré praxi digitálního návrhu). Signály se vybírají jeden po druhém z nabídky aktivní sondy, která je znázorněna na obrázku 10 níže. Vybrané hodnoty signálu lze číst a jsou zobrazeny v datovém okně aktivní sondy. Jakákoli chybná tvrzení jsou snadno identifikovatelná. Tento test lze provést okamžitě bez nutnosti rekompilace a přeprogramování zařízení a není strukturálně ani procedurálně rušivý. Celý proces trvá jen několik sekund. Tato metoda může také vytvořit ovladatelnost (asynchronní změnu hodnot), kterou ostatní dvě metody neumožňují. V tomto konkrétním example, resetovací signál získaný z registru může být snadno sondován a zjištěn, že je udržován v aktivním stavu.

Okamžitého přepnutí resetovacího signálu lze dosáhnout asynchronní manipulací s registrem generujícím klidové signály.

Microsemi-In-Circuit-FPGA-Debug- (10)

Složitější případ použití ladění
Výše uvedený návrh byl velmi jednoduchý a je užitečný jako úvod do použití popsaných technik návrhu, ale složitější example může být ještě názornější. Mnohokrát signál zájmu není statický signál, jako tomu bylo v našem jednoduchém example ale je dynamický. Běžným dynamickým signálem jsou mezilehlé hodiny, které se možná používají pro načasování handshake pro sériové rozhraní. Obrázek 11 ukazuje takový návrh s uživatelským jádrem Soft IP, v tomto případě vlastní sériové rozhraní připojené k systémové sběrnici APB. Příznaky chyb jsou, že na uživatelském uživatelském sériovém rozhraní neprobíhá žádná aktivita a že když hlavní sběrnice APB vydá transakci pro přístup k sériovému rozhraní, přejde do stavu výjimky indikujícího nesprávné handshake. Zdá se, že tyto podmínky vylučují statickou příčinu, jako je nesprávný resetovací signál, protože se zdá, že stroj na stav transakce nepracuje očekávanou rychlostí, a proto způsobuje výjimku. Předpokládá se, že hlavní příčinou je generátor hodinové frekvence v jádru uživatelské IP adresy.

Pokud neběží na správné frekvenci, dojde k popsaným chybám.

Microsemi-In-Circuit-FPGA-Debug- (11)

V této situaci je pravděpodobně lepší strategií nahradit přístup Active Probe Live Probe. To je znázorněno na obrázku výše oranžově zbarveným LP boxem s použitím JTAG signál pro výběr zdroje sondy.

Externí testovací zařízení
Pro tento případ je metodika velmi podobná dříve popsanému jednoduchému example. Uživatelský hodinový signál je vyveden do testovacího bodu (doufejme, že na záhlaví) a je potřeba časově náročná rekompilace. Může být také užitečné vyvolat referenční signál, třeba systémové hodiny, které se používají k hodinování IP uživatelů jako porovnávací signál. Znovu budeme vystaveni nutnosti překompilovat a přeprogramovat, takže celý proces může trvat značné množství času.

Interní logický analyzátor
Tento případ je velmi podobný jednoduchému example. Musí být vložen ILA nebo definován požadovaný signál a proveden cyklus překompilování a přeprogramování. Všechny dříve popsané problémy stále vedou k významné době cyklu ladění. Existuje však další složitost. Hodiny, které řídí ILA, musí být synchronní a ideálně mnohem rychlejší s ohledem na hodiny, které mají být pozorovány z uživatelského jádra Soft IP. Pokud jsou tyto hodiny asynchronní nebo nemají správné časové vztahy, bude sběr dat nepředvídatelný a může být zdrojem zmatků pro proces ladění.
Všimněte si, že pokud uživatelské hodiny Soft IP nejsou generovány na čipu (možná jsou obnoveny ze sériového rozhraní), návrhář možná bude muset přidat modul hodin, aby generoval rychlejší hodiny ILA pomocí dalších zdrojů a případně vytvořil narušení časování.

Živá sonda
Pomocí této metody lze Live Probe rychle nasměrovat na zdroj uživatelských hodin a jakýkoli jiný zdroj hodin z registru, aby se vypátrala hlavní příčina chyby. Živá sonda zobrazí vybrané výstupy signálu v reálném čase a jakýkoli časový vztah mezi signály je tak mnohem snazší určit. Celý proces trvá jen několik sekund.

Další funkce ladění pro sériová rozhraní
Je také důležité zdůraznit, že v zařízeních SmartFusion2 SoC FPGA a IGLOO2 FPGA existuje mnoho dalších možností ladění, které lze použít na sériových rozhraních, jako je to v předchozím příkladu.ample design, kde jsou chyby ještě složitější. SERDES Debug, napřample, poskytuje specifické možnosti ladění pro vyhrazená vysokorychlostní sériová rozhraní. Některé z funkcí ladění SERDES zahrnují podporu testování PMA (jako je generování vzoru PRBS a testování zpětné smyčky) podporu pro více konfigurací testu SERDES s překonfigurováním na úrovni registrů, aby se zabránilo použití úplného toku návrhu k provádění změn konfigurace, a textové zprávy zobrazující nakonfigurované protokoly, konfigurační registry SERDES a registry konfigurace Lane. Tyto funkce značně usnadňují ladění SERDES a lze je použít ve spojení s Live Probe a Active Probe k dalšímu urychlení ladění složitých obvodů.
Dříve popsaný nástroj Memory Debug lze také použít ve spojení se SERDES Debug pro urychlení testování. Protože vyrovnávací paměti lze rychle a snadno kontrolovat a měnit pomocí Memory Debug, je možné rychle vytvářet „testovací pakety“ a sledovat výsledky zpětné smyčky nebo mezisystémové komunikace. Návrhář může tyto schopnosti využít a minimalizovat tak potřebu specializovaných „testovacích svazků“, které spotřebovávají další FPGA tkaninu a které by mohly ovlivnit časování čipu.

Závěr
Tento článek podrobně popsal několik různých přístupů k implementaci ladění v obvodu pro FPGA a SoC FPGA – použití integrovaného logického analyzátoru, použití externího testovacího zařízení a použití vyhrazených obvodů sond integrovaných do struktury FPGA. Ukázalo se, že přidání specializovaných a vyhrazených obvodů sondy, jako je Active Probe a Live Probe nabízené společností Microsemi na zařízeních SmartFusion2 SoC FPGA a IGLOO2 FPGA, výrazně urychlilo a zjednodušilo proces ladění. Schopnost rychle upravit výběr interních signálů (bez nutnosti provádět velmi časově náročný cyklus rekompilace a přeprogramování) a schopnost sondovat interní signály (bez nutnosti použití FPGA tkaniny a potenciálního narušení časování) se ukázala jako hlavní výhoda.tages při ladění návrhů FPGA. Kromě toho bylo popsáno použití více metod, které mohou spolupracovat a poskytnout ještě komplexnější schopnost ladění. Nakonec dva exampPro ilustraci kompromisů mezi popsanými metodami byly uvedeny příklady použití ladění.

Chcete-li se dozvědět více

  1. FPGA IGLOO2
  2. FPGA SmartFusion2 SoC

Microsemi Corporation (Nasdaq: MSCC) nabízí komplexní portfolio polovodičových a systémových řešení pro komunikační, obranné a bezpečnostní, letecké a průmyslové trhy. Produkty zahrnují vysoce výkonné a radiací zesílené analogové integrované obvody se smíšeným signálem, FPGA, SoC a ASIC; produkty pro řízení spotřeby; časovací a synchronizační zařízení a přesná časová řešení, stanovující světový standard pro čas; Zařízení pro zpracování hlasu; RF řešení; diskrétní součásti; bezpečnostní technologie a škálovatelné anti-tamper produkty; Integrované obvody Power-over-Ethernet a střední rozpětí; stejně jako možnosti a služby vlastního návrhu. Microsemi má centrálu v Aliso Viejo v Kalifornii a má přibližně 3,400 XNUMX zaměstnanců po celém světě. Více se dozvíte na www.microsemi.com.

© 2014 Microsemi Corporation. Všechna práva vyhrazena. Microsemi a logo Microsemi jsou ochranné známky společnosti Microsemi Corporation. Všechny ostatní ochranné známky a servisní známky jsou majetkem příslušných vlastníků.

Sídlo společnosti Microsemi

FAQ

  • Otázka: Jaká je maximální frekvence sběru dat zařízení?
    Odpověď: Zařízení podporuje sběr dat až do 100 MHz, což je vhodné pro většinu cílových návrhů.
  • Otázka: Musím překompilovat návrh, když používám obvody sondy pro ladění?
    Odpověď: Ne, umístění bodů sondy lze rychle změnit bez nutnosti rekompilace návrhu nebo přeprogramování.

Dokumenty / zdroje

Microsemi In-Circuit FPGA Debug [pdfPokyny
In-Circuit FPGA Debug, FPGA Debug, Debug

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *