. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
Způsoby ladění konfigurace obvodů FPGA
28. března 2011 - 8:00 | Petr Tošovský | Způsoby ladění konfigurace obvodů FPGA | Komentářů: 2  

Způsoby ladění konfigurace obvodů FPGA

Současný trend obvodů konfigurovatelných hradlových polí (FPGA) vede k jejich stále větší oblibě. Následující článek se zaměřuje na řešení otázky efektivní analýzy konfigurace a zajištění bezproblémové funkce.

Obvody FPGA se již delší dobu těší velké pozornosti díky své variabilitě a rychlosti zpracování dat. Trend je takový, že za stále příznivější cenu se návrháři mohou dostat k větším a komplexnějším hradlovým polím, které obsahují rovněž rostoucí počet specializovaných periferií. Tyto periferie mají za úkol řešit specializované úlohy jako je komunikace po síti Ethernet nebo multi-gigabitové sériové datové přenosy.

Rostoucí možnosti obvodů FPGA s sebou ale rovněž přinášejí zásadní otázky jak co nejefektivněji analyzovat konfiguraci obvodu a zajistit jeho funkci za všech okolností.

Simulace
Základním prvkem ověření funkčnosti konfigurace FPGA je funkční simulace, kterou můžeme provádět již v době jejího návrhu ve zdrojovém kódu v jazyce VHDL nebo Verilog. Příkazy pro programování obvodů FPGA ve zmíněných programovacích jazycích jsou pouze podmnožinou jejich celkových možností. Tyto jazyky původně vznikaly právě za účelem vytváření předpisů funkčních simulací a nabízejí tak skutečně široké možnosti popisů stavů a jejich sekvencí. Mezi pokročile příkazy pak patří i například výstupy proměnných do souborů, nastavení časových posunů signálů apod. Simulačních programů přitom existuje velké množství. Jak už základních, od vlastních výrobců obvodů FPGA, tak profesionálních jako je ModelSim® od Mentor Graphics® nebo simulátory od společnosti Aldec®.

Předpisy pro provádění simulací se označují obecně jako tzv. testbenche. Testbench vytváří signály na vstupech – stimuly – a reaguje předepsaným způsobem na signály na výstupech testovaného obvodu označovaného obecně jako DUT (Device Under Test), viz obr. 1. Simulace se přitom obvykle provádějí buď nad vlastním zdrojovým kódem, ta se označuje jako behaviorální simulace (nulové zpoždění logických funkcí), nebo za pomocí přeloženého zdrojového kódu za použití logických bloků konkrétního modelu FPGA, která se označuje jako post-fit nebo implementation simulace. Logické bloky jsou popsány především jejich logickou funkcí a časovým zpožděním jejího provádění. Tyto informace se dodávají ve specializovaných simulačních knihovnách od výrobce konkrétního obvodu (ve většině případů i s teplotní a napěťovou závislostí). Simulace post-fit je tedy logicky podstatně výpočetně náročnější a proto i méně využívaná, ale na druhou stranu dokáže odhalit vznik hazardních stavů a prověřit časování obvodu.


Obr. 1: Napojení simulačního předpisu testbench na simulovanou entitu DUT (Device Under Test)

Přímé ladění
Přímé ladění, tedy ladění funkce v reálném hardwaru, dovoluje provést testy se skutečnými signály, se skutečnými periferiemi a pokud to je možné, tak i přímo ve skutečném systému, kde bude zařízení použito. Tyto možnosti jsou samozřejmě neocenitelné. Vyvíjená konfigurace se běžným způsobem nahraje do hradlového pole a běžnými měřícími postupy sledujeme vnější interakci pole s jeho okolím.

Při ladění funkce však obvykle nelze spoléhat pouze na vnější projevy obvodu. Potřebujeme detailní informace i o vnitřních stavech signálů, které nejsou vyvedeny a které nám dovolují lépe vyhodnotit chování a případně selhání funkce. Za tímto účelem vznikly nástroje, které vnitřní signály zpřístupní.

Prvním a pravděpodobně nejméně náročným způsobem na vybavení je použití tzv. virtuálních přístrojů. Dostupné jsou v několika podobách jako je Xilinx® ChipScope™, Altera® SignalTap® II nebo virtuální přístroje pro obvody FPGA z návrhového prostředí Altium Designer a několik dalších. Společným znakem je využívání neobsazených logických struktur a pamětí v hradlových polích k zaznamenávání vnitřních signálů a to obvykle při nominální rychlosti systému, nebo mírně nižší. Zaznamenané hodnoty se pak přenáší obvykle pomocí rozhraní JTAG do PC, kde jsou zpracovány pomocí specializovaného programu do grafické podoby časových posloupností signálů. Chováním tedy kopíruje základní funkce logického analyzátoru. Záznam signálů však není jedinou možností. Existují i bloky pro terminálové služby, pro generování signálů nebo jejich interaktivní změnu za chodu systému. Jejich použití přitom není omezeno na interní signály. Zaznamenávat a ovlivňovat lze i všechny vnější signály připojené k hradlovému poli. Virtuálním přístrojem tak lze sledovat i vzájemnou komunikaci periferních obvodů tak, jak ji má přístupnou obvod FPGA. Virtuální přístroje jsou obvykle i schopné změny svého nastavení za chodu FPGA bez rekompilace, což podstatným způsobem zkracuje dobu ladění. To se týká například spouštěcí podmínky virtuálního logického analyzátoru.

Další výhodou je, že není potřebné používat další skutečné přístroje, řešit jejich mechanické připojení k obvodu FPGA a případné rušení. Díky rychlostem dnešních FPGA lze navíc testovat signály, které by za pomocí standardních měřících přístrojů vyžadovaly nemalé finanční náklady.

Na druhou stranu je však obvyklou vlastností virtuálních přístrojů jejich negativní vliv na maximální dosažitelnou hodinovou frekvenci. Pro testování systémů využívajících maximální hodinovou frekvenci tak musí být snížena. Pro finální konfiguraci virtuální přístroje odstraníme a můžeme systém provozovat na požadované hodinové frekvenci.


Obr. 2: Diagram použití virtuálního Xilinx® ChipScope™ (ICON – kontrolér komunikace s PC, ILA – virtuální logický analyzátor) viz [2]

Pokud není použití virtuálních přístrojů dostačující (obvykle nelze provést kompletní odladění pouze pomocí nich), tak přicházejí na řadu tradiční měření pomocí osciloskopu a logického analyzátoru. Na jejich použití je nejlépe myslet již ve fázi návrhu plošného spoje, protože dnešní BGA a TQFP pouzdra prakticky neumožňují připojení měřících sond. I když je mechanicky připojení možné, tak nastávají problémy s kvalitním a hlavně krátkým připojením zemního potenciálu. Měření pak je neprůkazné a vlastní připojení sond může mít fatální vliv na stabilitu a funkci systému.

Lze však velice jednoduše zužitkovat nezapojené vývody FPGA pro vytvoření ladícího „rozhraní“, které vznikne pouze připojením nevyužitých vývodů (obvykle 16 signálů + vyvedení napájecího napětí a zemního potenciálu) na vhodný konektor (vhodný pro dodržení požadované impedance). Na tyto vývody pak v konfiguraci FPGA zapojíme požadované vnitřní signály. Do ladícího konektoru pak zapojíme sondy nebo kabel k danému měřícímu přístroji a měření pak již probíhá standardním způsobem, stejně jako pro ostatní vnější signály. Velkou pomocí u logických analyzátorů jsou funkce interpretace hodnoty datové sběrnice přímo číslem nebo dokonce simulovaným analogovým zobrazením a pro sériové sběrnice pak kompletní dekodéry komunikace.

Obvykle pro ladění velice dobře poslouží i několik LED zapojených na volné vývody. Je až neuvěřitelné co vše lze s jejich pomocí odladit. Pokud je k dispozici i AD nebo DA převodník, tak nic nebrání v práci s analogovými signály. Součástí ladícího konektoru tak může být i analogové „rozhraní“.

Nutností v případě dedikovaného ladícího konektoru je však rekompilace konfigurace pokaždé, když chceme měřit jiný vnitřní signál pole. Překlad a nahrání nové konfigurace trvá u komplexních projektů a obvodů několik desítek minut. Tato velice zdlouhavá procedura se dá obejít opět použitím nevyužitých struktur v FPGA a to vytvořením signálových multiplexerů, které při měření, ať již ručně (přepínač, jumper) nebo pomocí PC (přes UART, JTAG nebo i Ethernet), přepneme do požadované polohy.


Obr. 3: Kombinovaný osciloskop s logickým analyzátorem LeCroy MSO 44MXs-B (400 MHz, 5 GS/s, 4+18ch, 12.5 Mpts/Ch) viz [3]

Aby bylo měření různých interních signálů snazší vznikly specializované přístroje pro měření na obvodech FPGA (např. Agilent FPGA Dynamic Probe) nebo softwarová rozšíření pro logické analyzátory. Ty se skládají z kombinace virtuálního přístroje v FPGA ovládaného typicky prostřednictvím JTAG rozhraní, který zajišťuje variabilitu připojení vnitřních signálů na ladící konektor a vlastního přístroje (nebo kombinace přístroje a PC) s patřičným programem na ovládání virtuálního přístroje a nastavení parametrů měření. Měřící přístroj pak obvykle dokáže přímo zobrazit názvy měřených signálů, interpretuje odpovídajícím způsobem jejich stavy apod. Pro integraci virtuálního přístroje zpravidla existuje speciální nástroj pro jeho pohodlné nastavení.


Obr. 4: Diagram funkce FPGA Dynamic Probe Agilent N5434A viz [4]

Přímé způsoby ladění využívající měřící přístroje s sebou nesou nutnost použití nákladného přístrojového vybavení, u kterého musíme řešit fyzické napojení signálů, což může být, především při hodinových frekvencích nad 200 MHz, problematické. Lze však současně testovat i další části zařízení (i analogové) a dávat jednotlivé události do souvislostí. Vývody FPGA se obvykle připojují přímo na ladící konektor bez dalších budičů nebo oddělovačů, aby signály co nejvěrněji odpovídaly vnitřním signálům. To vyžaduje náležitou opatrnost při manipulaci připojovanými sondami, protože bezprostředně hrozí poškození budičů vývodů FPGA.

Závěr
Z předchozího rozboru dostupných nástrojů pro ověření funkce obvodů FPGA vidíte, že možností je několik a každý postup má svá omezení. Dostupné nástroje pouze pomáhají napodobit požadované stavy systému a získávat z hradlového pole patřičné informace o změnách, které zpracování dat vyvolává.

Klíčové, stejně jako vždy v minulosti, tak stále zůstává jak dobře je vytvořen simulační předpis nebo jak věrně jsou celkově napodobeny podmínky cílového prostředí obvodu. Většina nástrojů přitom nezohledňuje možné vnější efekty jako je elektromagnetické rušení, teplotní šoky nebo mezní tolerance parametrů vlastních obvodů a mnoho dalších, které se musejí testovat odděleně.


Obr. 5: Příklad uspořádání měřicího pracoviště

Ladící proces nelze, jak asi tušíte, omezit pouze na funkční simulaci nebo hardwarové ověření funkce za pomocí specializovaných nástrojů. V prvním případě nemusí nutně výsledek funkční simulace postihovat chování reálného okolí hradlového pole. V případě druhém je díky časově náročným modifikacím konfigurace obvodu a složitosti napodobení neobvyklých stavů cílového prostředí prakticky nereálné dosáhnout kompletního prověření. Tento přístup by rovněž ve většině případů vedl k extrémním nárokům na laboratorní vybavení.

Ladění obvodů FPGA je tedy komplexní záležitost, která se skládá z celého souboru postupů a nástrojů, pro které je nejdůležitější vyváženě stanovit strategii jejich využití a projekt již od počátku vývoje této strategii přizpůsobit. Odměnou za toto snažení je urychlení vývoje zařízení s obvody FPGA a garance funkčnosti pro testované provozní stavy.

Použitá literatura:
[1] BERGERON, J.: Writing Testbenches: Functional Verification of HDL Models, 2003, ISBN: 1402074018.
[2] UG029 ChipScope Pro 12.3 Software and Cores, Xilinx, Inc., 2010.
[3] LeCroy MSO 44MXs-B, LeCroy, 2011, dostupné online na: www.lecroy.com/Oscilloscope
[4] N5434A FPGA dynamic probe option for Altera with InfiniiVision Series MSOs, Agilent, 2011, dostupné online na: www.agilent.com

Autor: Petr Tošovský







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře (2):

Zobrazit starší 30 dnů (2)...



Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
Vývojový kit MEGA48
Univerzálním a bohatě vybavený vývojový kit s obvodem ATmega48 společnosti ATMEL je vhodný jak pro začátečníky, tak i profesionály.
Skladem od 755 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007