Koprocesorová architektura: architektura vestavěného systému pro rychlé prototypování

By Noah Madinger, Colorado Electronic Product Design (CEPD)

Poznámka editora: Ačkoli je koprocesorová architektura dobře známá svým výkonem a propustností digitálního zpracování, poskytuje konstruktérům vestavěných systémů příležitosti implementovat strategie řízení projektů, které snižují náklady na vývoj a zkracují dobu do uvedení na trh. V tomto článku, zaměřeném konkrétně na kombinaci diskrétního mikrokontroléru (MCU) a diskrétního programovatelného hradlového pole (FPGA), předvedeme, jak se tato architektura hodí k efektivnímu a iterativnímu procesu návrhu. Na základě probádaných zdrojů, empirických zjištění a případových studií prozkoumáme výhody této architektury a uvedeme vzorové aplikace. Díky závěru tohoto článku bude konstruktér vestavěných systémů lépe rozumět tomu, kdy a jak implementovat tuto univerzální hardwarovou architekturu.

Úvod

Konstruktér vestavěných systémů se ocitá na křižovatce konstrukčních omezení, očekávání ohledně výkonu a starostí o harmonogram a rozpočet. Dokonce i rozpory v moderních módních heslech a frázích řízení projektů ještě více podtrhují nejistou povahu této role: „selžete rychle“, „buďte agilní“, „připravte se na budoucnost“ a „buďte disruptivní“. I jen pouhý pokus o splnění těchto očekávání je akrobatickým číslem a může být poměrně trýznivý. Přesto se o těchto pokusech neustále mluví a jsou na celém trhu vyžadovány. Co je však třeba, to je konstruktivní přístup, který umožňuje implementovat evoluční proces s mnoha iteracemi a který stejně jako u většiny vestavěných systémů začíná u hardwarové architektury.

Koprocesorová architektura, hardwarová architektura známá kombinací sil technologií mikrokontroléru (MCU) a programovatelných hradlových polí (FPGA) může nabídnout konstruktérovi vestavěných systémů proces schopný splnit i ty nejnáročnější požadavky, a přesto umožňující potřebnou flexibilitu k řešení známých i neznámých výzev. Poskytnutím hardwaru schopného iterativní adaptace může konstruktér demonstrovat pokrok, dosáhnout kritických milníků a plně využít procesu rychlého prototypování.

V rámci tohoto procesu jsou klíčové milníky projektu, z nichž každý má svou vlastní jedinečnou hodnotu, která přispívá k vývojovému úsilí. V celém tomto článku na ně budeme odkazovat následujícími termíny: milník Digitální zpracování signálu pomocí mikrokontroléru, milník Správa systému pomocí mikrokontroléru a milník Nasazení produktu.

Na závěr tohoto článku prokážeme, že flexibilní hardwarová architektura může být vhodnější pro návrh moderních vestavěných systémů než rigidnější přístup. Kromě toho může tento přístup vyústit ve snížení nákladů projektu i zkrácení doby do uvedení na trh. K obhajobě tohoto tvrzení předložíme argumenty, příklady a případové studie. Pozorováním hodnoty jednotlivých milníků v rámci flexibility návrhu, kterou tato architektura poskytuje, je zřejmé, že adaptivní hardwarová architektura je silným hnacím motorem při posouvání návrhu vestavěných systémů vpřed.

Prozkoumejte silné stránky koprocesorové architektury: flexibilita designu a vysoce výkonné zpracování

Běžnou aplikací pro návrhy FPGA je přímé rozhraní s vysokorychlostním analogově-digitálním převodníkem (ADC). Signál se digitalizuje, načte do FPGA a poté se na tento signál aplikují některé algoritmy procesoru digitálního signálu (DSP). Na základě zjištění nakonec pole FPGA učiní rozhodnutí.

Taková aplikace bude sloužit jako příklad v celém tomto článku. Obrázek 1 dále znázorňuje obecnou koprocesorovou architekturu, kde jsou MCU a FPGA připojeny prostřednictvím rozhraní externí paměti MCU. S FPGA se zachází, jako by se jednalo o část externí statické paměti s náhodným přístupem (SRAM). Signály se vracejí do MCU z FPGA a slouží jako hardwarové přerušovací linky a indikátory stavu. To umožňuje FPGA indikovat kritické stavy MCU, jako je komunikace, že je převod ADC připraven, že došlo k chybě nebo k jiné významné události.

Schéma obecného diagramu koprocesoruObrázek 1: Obecný diagram koprocesoru (MCU + FPGA) (zdroj obrázku: CEPD)

Silné stránky koprocesorového přístupu jsou pravděpodobně nejlépe vidět na výstupech jednotlivých výše uvedených milníků. Hodnota se posuzuje nejen uvedením seznamu splnění úkolu nebo fáze, ale také posouzením možnosti, kterou tato splnění umožňují. Odpovědi na následující otázky pomáhají při hodnocení celkové hodnoty výsledků milníku:

  • Může nyní pokračovat pokrok ostatních členů týmu rychleji, protože jsou odstraněny závislosti a úzká místa projektu?
  • Jak dosažení milníku umožňují další paralelní cesty provádění?

Milník Digitální zpracování signálu pomocí mikrokontroléru

Schéma architektury – digitální zpracování signálu pomocí mikrokontroléruObrázek 2: Architektura – digitální zpracování signálu pomocí mikrokontroléru (zdroj obrázku: CEPD)

První fáze vývoje, kterou tato hardwarová architektura umožňuje, staví MCU dopředu a do středu. Za stejných podmínek je vývoj MCU a spustitelného softwaru méně náročný na zdroje i na čas než vývoj FPGA a jazyka pro popis hardwaru (HDL). Zahájením vývoje produktu s MCU jako primárním procesorem lze tedy algoritmy implementovat, testovat a ověřovat rychleji. Umožňuje to, aby byly algoritmické a logické chyby objeveny na začátku procesu návrhu, a to také umožňuje testovat a ověřovat podstatné části signálového řetězce.

Úlohou FPGA v tomto počátečním milníku je sloužit jako vysokorychlostní rozhraní pro sběr dat. Jeho úkolem je spolehlivě předávat data z vysokorychlostního převodníku ADC, upozornit MCU, že data jsou k dispozici, a prezentovat tato data na rozhraní externí paměti MCU. Ačkoli tato role nezahrnuje implementaci procesů DSP založených na jazyce HDL nebo jiných algoritmech, je přesto velmi zásadní.

Vývoj FPGA provedený v této fázi položí základ pro konečný úspěch produktu jak v rámci úsilí o vývoj produktu, tak při uvedení na trh. Zaměřením se pouze na rozhraní nízké úrovně lze věnovat dostatečný čas testování těchto základních operací. Tento milník lze s jistotou uzavřít pouze tehdy, pokud FPGA spolehlivě a s jistotou plní tuto roli rozhraní.

Klíčové výsledky tohoto počátečního milníku zahrnují následující výhody:

  1. Celá signálová cesta – všechna zesílení, útlumy a převody – bude testována a ověřena.
  2. Čas a úsilí při vývoji projektu byly sníženy počáteční implementací algoritmů v softwaru (C/C++). To má pro management a další zúčastněné strany značnou hodnotu, protože tyto strany musí být před schválením budoucích fází návrhu přesvědčeny o proveditelnosti tohoto projektu.
  3. Poučení z implementace algoritmů v jazyce C/C++ bude přímo přenositelné na implementace v jazyce HDL – pomocí nástrojů „software do HDL“, např. Xilinx HLS.

Milník Správa systému pomocí mikrokontroléru

Schéma architektury – správa systému pomocí mikrokontroléruObrázek 3: Architektura – správa systému pomocí mikrokontroléru (zdroj obrázku: CEPD)

Druhá vývojová fáze, kterou tento koprocesorový přístup nabízí, je definována přesunem procesů DSP a implementací algoritmů z MCU do FPGA. FPGA je stále zodpovědné za vysokorychlostní rozhraní ADC, avšak za předpokladu, že jsou tyto další role, rychlost a paralelismus nabízené FPGA plně využity. Navíc lze na rozdíl od MCU implementovat více instancí procesů DSP a kanálů algoritmů a spouštět je současně.

Na základě poučení z implementace MCU přenáší konstruktér tuto důvěru do dalšího milníku. Nástroje, jako je výše uvedený Vivado HLS od společnosti Xilinx, poskytují funkční překlad ze spustitelného kódu C/C++ do syntetizovatelného jazyka HDL. Nyní musí být definována a implementována omezení časování, parametry procesů a další uživatelské preference. Nicméně základní funkce přetrvává a je přeložena do struktury FPGA.

V tomto milníku má MCU roli systémového manažera. Stavové a kontrolní registry v FPGA jsou monitorovány, aktualizovány a hlášeny MCU. Kromě toho MCU spravuje uživatelské rozhraní (UI). Toto uživatelské rozhraní může mít podobu webového serveru, ke kterému se přistupuje přes ethernetové nebo Wi-Fi připojení, nebo se může jednat o průmyslové rozhraní dotykové obrazovky umožňující přístup uživatelům v místě používání. Klíčovým předpokladem nové, rafinovanější role MCU je toto: díky úlevě od výpočetně náročných úloh zpracování se nyní MCU i FPGA využívají v úkolech, pro které se dobře hodí.

Tento milník tvoří klíčové výstupy, které zahrnují tyto výhody:

  1. FPGA poskytuje rychlé a paralelní provádění procesů DSP a implementace algoritmů.MCU poskytuje pohotové a zjednodušené uživatelské rozhraní a spravuje procesy produktu.
  2. Po prvotním vývoji a ověření v rámci MCU byla algoritmická rizika zmírněna a tato zmírnění jsou přeložena do syntetizovatelného jazyka HDL. Nástroje, např. Vivado HLS, proces tohoto překladu dále usnadňují. Kromě toho lze rizika specifická pro FPGA zmírnit pomocí integrovaných simulačních nástrojů, jako je návrhová sada Vivado.
  3. Zainteresované strany se tak přesunem procesů na FPGA nevystavují významnému riziku. Naopak, mohou vidět a využívat výhody, které poskytuje rychlost a paralelnost FPGA. Byla pozorována měřitelná vylepšení výkonu. Nyní se lze zaměřit na přípravu tohoto návrhu pro výrobu.

Milník nasazení produktu

Díky výpočetně náročnému zpracování, které je řešeno v rámci FPGA, a MCU, který zpracovává role správy systému a uživatelského rozhraní, je produkt připraven k nasazení. Tento článek nyní nenabádá k obcházení verzí Alpha a Beta. Důrazem je však v tomto milníku kladen na schopnosti, které koprocesorová architektura poskytuje pro nasazení produktu.

MCU i FPGA jsou zařízení aktualizovatelná v místě provozu. Provedlo se několik vylepšení, aby byly aktualizace FPGA stejně přístupné jako aktualizace softwaru. Navíc, protože FPGA je v adresovatelném paměťovém prostoru MCU, může MCU sloužit jako přístupový bod pro celý systém: může přijímat jak aktualizace pro sebe, tak pro FPGA. Aktualizace lze podmíněně naplánovat, distribuovat a přizpůsobit podle jednotlivých koncových uživatelů. V neposlední řadě lze udržovat protokoly uživatelů a případů použití a přidružit je ke konkrétním implementacím sestavení. Z těchto datových sad lze vyladit výkon a vylepšit jej i poté, co je již produkt v provozu.

Silné stránky této aktualizovatelnosti celého systému nelze snad využít více než ve vesmírných aplikacích. Jakmile je produkt uveden do světa, musí se údržba a aktualizace provádět vzdáleně. To může být stejně jednoduché jako změna logických podmínek, nebo stejně komplikované jako aktualizace schématu modulace komunikace. Programovatelnost nabízená technologiemi FPGA a koprocesorovou architekturou může pojmout celou tuto škálu funkcí, a to vše při výběru komponent odolných proti radiaci.

Posledním klíčovým prvkem tohoto milníku je postupné snižování nákladů. K tomuto milníku může dojít také ke snížení nákladů, změnám kusovníku (BOM) a dalším optimalizacím. Během nasazení v terénu lze zjistit, že produkt může fungovat stejně dobře s levnějším MCU, nebo méně výkonným FPGA. Konstruktéři architektury nejsou díky koprocesoru omezeni na použití komponent, jejichž funkce přesahují potřeby jejich aplikace. Pokud by navíc komponenta nebyla k dispozici, umožňuje architektura integrovat do návrhu nové komponenty. To není případ architektury s jedním čipem, systému na čipu (SoC) nebo vysoce výkonného DSP nebo MCU, který se pokouší vykonávat veškeré zpracování produktu. Koprocesorová architektura je dobrou kombinací funkcí a flexibility, což dává konstruktérovi více možností a svobody jak ve fázích vývoje, tak při uvádění na trh.

Podpora výzkumu a souvisejících případových studií

Příklad satelitní komunikace

Stručně řečeno je hodnotou koprocesoru odebrat zatížení z primárního procesoru tak, aby byly úlohy prováděny na hardwaru, ve kterém lze využít zrychlení a zefektivnění. Výhodou takové volby návrhu je čisté zvýšení výpočetní rychlosti a schopností a, jak se tvrdí v tomto článku, snížení nákladů a zkrácení doby vývoje. Snad jedna z nejpřesvědčivějších oblastí důkazu těchto výhod leží v oblasti vesmírných komunikačních systémů.

G. Prasad a N. Vasantha ve své publikaci Hardware založený na FPGA jako koprocesor podrobně popisují, jak zpracování dat v rámci FPGA spojuje výpočetní potřeby systémů satelitní komunikace bez vysokých nákladů na jednorázové inženýrství (NRE) integrovaných obvodů specifických pro určitou aplikaci (ASIC) nebo omezení procesoru s pevnou architekturou specifických pro aplikaci. Jak je již popsáno v milníku Digitální zpracování signálu pomocí mikrokontroléru, začíná jejich návrh tím, že aplikační procesor provádí většinu výpočetně náročných algoritmů. Od tohoto počátečního bodu identifikují klíčové sekce softwaru, které spotřebovávají většinu taktovacích cyklů centrální procesorové jednotky (CPU) a migrují tyto sekce na implementaci jazyka HDL. Grafické znázornění je velmi podobné tomu, které již bylo prezentováno. Autoři se však rozhodli vyjádřit aplikační program jako svůj vlastní nezávislý blok, jak může být realizován buď v hostiteli (procesoru), nebo v hardwaru založeném na FPGA.

Obrázek koprocesorové architektury FPGA infotainmentu, příklad 1Obrázek 4: Aplikační program, hostitelský procesor a hardware založený na FPGA použité v příkladu satelitní komunikace

Využitím rozhraní na propojení periferních komponent (PCI) a přímého přístupu do paměti (DMA) hostitelského procesoru se dramaticky zvýší výkon periferií. To je většinou pozorováno v rámci vylepšení procesu derandomizace. Když se tento proces prováděl v softwaru hostitelského procesoru, byla odezva systému v reálném čase jasným úzkým místem. Při přechodu na FPGA však byly pozorovány následující výhody:

  • Proces derandomizace byl prováděn v reálném čase bez vzniku úzkých míst.
  • Výpočetní režie hostitelského procesoru byla významně snížena a ten může nyní lépe provádět požadovanou roli protokolování.
  • Zvýšil se celkový výkon celého systému.

Toho všeho se dosáhlo bez nákladů spojených s ASIC a zároveň s využitím flexibility programovatelné logiky [5]. Satelitní komunikace představuje značné výzvy a tento přístup může tyto požadavky ověřitelně splnit a nadále poskytovat flexibilitu návrhu.

Příklad infotainmentu pro automobily

Zábavní systémy v automobilech jsou pro náročné zákazníky tím rozlišujícím prvkem. Na rozdíl od většiny automobilové elektroniky jsou tato zařízení vysoce viditelná a očekává se od nich, že poskytnou výjimečnou dobu odezvy a výkon. Návrháři jsou však často pod tlakem z obou stran mezi aktuálními potřebami designu a flexibility, kterou budou budoucí funkce vyžadovat. V tomto příkladu budou potřeby implementace zpracování signálu a bezdrátové komunikace použity ke zvýraznění silných stránek koprocesorové hardwarové architektury.

Jedna z převládajících používaných architektur automobilového zábavního systému byla publikována společností Delphi Delco Electronics Systems. Tato architektura používala SH-4 MCU s doprovodným ASIC, periferií HD64404 Amanda společnosti Hitachi. Tato architektura uspokojila více než 75 % základních zábavních funkcí automobilového trhu. Postrádala však schopnost řešit aplikace zpracování videa a bezdrátovou komunikaci. Zahrnutím FPGA do této existující architektury lze k tomuto již existujícímu návrhovému přístupu přidat další flexibilitu a možnosti.

Obrázek koprocesorové architektury FPGA infotainmentu, příklad 2Obrázek 5: Koprocesorová architektura FPGA infotainmentu, příklad 1

Architektura na obrázku 5 je vhodná jak pro zpracování videa, tak pro správu bezdrátové komunikace. Přesunutím funkcí DSP na FPGA může procesor Amanda vykonávat roli správy systému a je uvolněn k implementaci zásobníku bezdrátové komunikace. Protože jak Amanda, tak FPGA mají přístup k externí paměti, lze data rychle vyměňovat mezi procesory a komponentami systému.

Obrázek koprocesorové architektury FPGA infotainmentu, příklad 2Obrázek 6: Koprocesorová architektura FPGA infotainmentu, příklad 2

Druhý infotainment na obrázku 6 zdůrazňuje schopnost FPGA řešit jak příchozí vysokorychlostní analogová data, tak zpracování komprese a kódování potřebného pro videoaplikace. Ve skutečnosti lze všechny tyto funkce vložit do FPGA a pomocí paralelního zpracování je všechny řešit v reálném čase.

Zahrnutím FPGA do stávající architektury hardwaru lze ověřený výkon stávajícího hardwaru spojit s flexibilitou a možnostmi do budoucna. I v rámci stávajících systémů poskytuje koprocesorová architektura konstruktérům možnosti, které by jinak nebyly k dispozici [6].

Výhody rychlého prototypování

Proces rychlého prototypování se ve svém jádru snaží pokrýt značné množství oblastí vývoje produktů paralelním prováděním úkolů, rychlou identifikací „bugů“ a problémů s návrhem a ověřováním datových a signálových cest, zejména těch v rámci kritické cesty projektu. Avšak k tomu, aby tento proces přinesl skutečně zjednodušené a efektivní výsledky, musí být v požadovaných oblastech projektu dostatečné odborné znalosti.

Tradičně to znamená, že musí existovat technik hardwaru, technik vestavěného softwaru nebo DSP a technik HDL. Nyní je tu spousta interdisciplinárních odborníků, kteří mohou být schopni plnit více rolí. Koordinace těchto snah však stále klade značné nároky na režijní náklady projektu.

Autoři prosazují ve svém příspěvku Platforma pro rychlé prototypování založená na FPGA pro waveletové koprocesory myšlenku, že použití koprocesorové architektury umožňuje jednomu technikovi DSP účinně a efektivně plnit všechny tyto role. Pro tuto studii začal tým navrhovat a simulovat požadovanou funkčnost DSP v rámci nástroje Simulink od společnosti MATLAB. Sloužilo to ke dvěma primárním funkcím v tom, že nástroj 1) ověřil požadovaný výkon pomocí simulace a 2) sloužil jako základní linie, se kterou lze porovnávat a na kterou lze odkazovat budoucí možnosti návrhu.

Po simulaci byly identifikovány kritické funkce a rozděleny do různých jader – jedná se o soft-core komponenty a procesory, které lze syntetizovat v rámci FPGA. Nejdůležitějším krokem během této práce bylo definovat rozhraní mezi těmito jádry a komponentami a porovnat výkon výměny dat s požadovaným simulovaným výkonem. Tento návrhový proces úzce souvisí s návrhovým tokem společnosti Xilinx pro vestavěné systémy a je shrnut na obrázku 7 níže.

Obrázek toku návrhu nástroje Vivado HLS společnosti XilinxObrázek 7: Návrhový tok implementace

Dělením systému na syntetizovatelná jádra se technik DSP může zaměřit na nejdůležitější aspekty řetězce zpracování signálu. K upravování, směrování nebo implementaci různých soft-core procesorů nebo komponent v rámci FPGA nemusí být odborníkem na hardware ani HDL. Pokud si je konstruktér vědom rozhraní a formátů dat, má plnou kontrolu nad signálovými cestami a může vylepšit výkon systému.

Empirická zjištění – případová studie diskrétní kosinové transformace

Empirická zjištění nejen potvrdila flexibilitu koprocesorové architektury pro konstruktéry vestavěných systémů, ale také předvedla možnosti zvyšující výkon, které jsou dostupné u moderních nástrojů FPGA. Vylepšení, jako jsou níže uvedená, nemusí být k dispozici nebo mohou mít menší dopad na jiné hardwarové architektury. Diskrétní kosinová transformace (DCT) byla vybrána jako výpočetně intenzivní algoritmus a její postup od implementace založené na jazyce C k implementaci založené na jazyce HDL byl samotným základem těchto zjištění. Byla zvolena transformace DCT, protože tento algoritmus se používá v digitálním zpracování signálu pro rozpoznávání a filtrování vzorů [8]. Empirická zjištění vycházela z laboratorního cvičení, které autor a spolupracovníci dokončili za účelem získání certifikace Alliance Partner společnosti Xilinx na období 2020–2021.

Při tomto úsilí byly použity následující nástroje a zařízení:

  • Vivado HLS v2019
  • Zařízením pro hodnocení a simulaci byl model xczu7ev-ffvc1156-2-e.

Počínaje implementací založenou na jazyce C přijímá algoritmus DCT dvě pole 16bitových čísel. Pole „a“ je vstupní pole do DCT a pole „b“ je výstupní pole z DCT. Šířka dat (DW) je proto definována jako 16 a počet prvků v polích (N) je 1 024/DW nebo 64. Nakonec je velikost matice DCT (DCT_SIZE) nastavena na 8, což znamená, že je použita matice 8 × 8.

V návaznosti na premisu tohoto článku umožňuje implementace algoritmu založeného na jazyce C konstruktérovi rychle vyvinout a ověřit funkčnost algoritmu. Ačkoli se jedná o důležité kritérium, toto ověření přikládá vyšší váhu funkčnosti než času spuštění. Toto vážení je povoleno, protože konečná implementace tohoto algoritmu bude v FPGA, kde je snadno dostupná hardwarová akcelerace, odvíjení smyčky a další techniky.

Obrázek toku návrhu nástroje Vivado HLS společnosti XilinxObrázek 8: Návrhový tok nástroje Vivado HLS společnosti

Jakmile se v rámci nástroje Vivado HLS vytvoří kód DCT jako projekt, dalším krokem je zahájení syntézy návrhu pro implementaci FPGA. V tomto dalším kroku se stanou zřetelnějšími některé z nejvýznamnějších výhod plynoucích z přesunu provádění algoritmu z MCU na FPGA – jako reference je tento krok ekvivalentem výše uvedeného milníku Správa systému pomocí mikrokontroléru.

Moderní nástroje FPGA umožňují sadu optimalizací a vylepšení, která výrazně zvyšují výkon komplexních algoritmů. Před analýzou výsledků je třeba mít na paměti několik důležitých pojmů:

  • Latence – počet taktovacích cyklů potřebných k provedení všech iterací smyčky [10]
  • Interval – počet taktovacích cyklů před další iterací smyčky, která začne zpracovávat data [11]
  • BRAM – bloková paměť s náhodným přístupem
  • DSP48E – řez digitálního zpracování signálu pro architekturu UltraScale
  • FF – klopný obvod
  • LUT – vyhledávací tabulka
  • URAM – jednotná paměť s náhodným přístupem (může být složena z jednoho tranzistoru)
Latence Interval
min. max. min. max.
Výchozí (řešení 1) 2 935 2 935 2 935 2 935
Vnitřní smyčka kanálu (řešení 2) 1 723 1 723 1 723 1 723
Vnější smyčka kanálu (řešení 3) 843 843 843 843
Oddíl pole (řešení 4) 477 477 477 477
Tok dat (řešení 5) 476 476 343 343
Inline (řešení 6) 463 463 98 98

Tabulka 1: Zjištění optimalizace provádění algoritmu FPGA (latence a interval)

BRAM_18K DSP48E FF LUT URAM
Výchozí (řešení 1) 5 1 246 964 0
Vnitřní smyčka kanálu (řešení 2) 5 1 223 1 211 0
Vnější smyčka kanálu (řešení 3) 5 8 516 1 356 0
Oddíl pole (řešení 4) 3 8 862 1 879 0
Tok dat (řešení 5) 3 8 868 1 654 0
Inline (řešení 6) 3 16 1 086 1 462 0

Tabulka 2: Zjištění optimalizace spouštění algoritmu FPGA (využití zdrojů).

Výchozí

Výchozí nastavení optimalizace pochází z nepozměněného výsledku převodu algoritmu založeného na jazyce C na syntetizovatelný jazyk HDL. Nejsou povoleny žádné optimalizace a toto lze použít jako referenci výkonu pro lepší pochopení ostatních optimalizací.

Vnitřní smyčka kanálu

Příkaz PIPELINE dá nástroji Vivado HLS pokyn k odvinutí vnitřních smyček, aby se mohla začít zpracovávat nová data, zatímco stávající data jsou stále přítomna v kanálu. Nová data tedy nemusí čekat na dokončení stávajících dat, aby mohlo začít zpracovávání.

Vnější smyčka kanálu

Použitím příkazu PIPELINE na vnější smyčku se zřetězí operace vnější smyčky. Operace vnitřních smyček však nyní probíhají souběžně. Latence i doba intervalu se zkrátí na polovinu tím, že se to aplikuje přímo na vnější smyčku.

Oddíl pole

Tento příkaz mapuje obsah smyček na pole, a tím zplošťuje veškerý přístup k paměti na jednotlivé prvky v těchto polích. Tímto způsobem se spotřebuje více paměti RAM, ale doba provádění tohoto algoritmu se opět sníží na polovinu.

Tok dat

Tento příkaz umožňuje konstruktérovi určit cílový počet taktovacích cyklů mezi jednotlivými čteními vstupu. Tento příkaz je podporován pouze pro funkce nejvyšší úrovně. Z tohoto příkazu budou mít prospěch pouze smyčky a funkce vystavené této úrovni.

Inline

Příkaz INLINE vyrovná všechny smyčky, vnitřní i vnější. Procesy řádků i sloupců lze nyní spouštět souběžně. Počet požadovaných taktovacích cyklů je udržován na minimu, i když to spotřebovává více zdrojů FPGA.

Závěr

Koprocesorová hardwarová architektura poskytuje konstruktérovi vestavěných systémů vysoce výkonnou platformu, která si zachovává flexibilitu designu po celou dobu vývoje i po uvedení produktu na trh. Prvním ověřením algoritmů v jazyce C nebo C++ lze procesy, data a signálové cesty a kritické funkce ověřit v relativně krátkém čase. Konstruktér může poté, co převede algoritmy náročné na procesor do FPGA koprocesoru, využívat výhod hardwarové akcelerace a modulárnějšího designu.

Pokud by části zastaraly nebo byly vyžadovány optimalizace, může stejná architektura tyto změny umožnit. Do designu lze nasadit nové MCU a nové FPGA, zatímco rozhraní mohou zůstat relativně nedotčená. Navíc, protože MCU i FPGA lze aktualizovat v terénu, lze v terénu a na dálku aplikovat specifické změny a optimalizace pro uživatele.

Na závěr lze říct, že tato architektura spojuje rychlost vývoje a dostupnost MCU s výkonem a rozšiřitelností FPGA. Díky optimalizacím a vylepšením výkonu, které jsou k dispozici v každém vývojovém kroku, může koprocesorová architektura vyhovět potřebám i těch nejnáročnějších požadavků – jak pro dnešní návrhy, tak i nad jejich rámec.

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of Digi-Key Electronics or official policies of Digi-Key Electronics.

About this author

Noah Madinger, Colorado Electronic Product Design (CEPD)

Noah Madinger is a Senior Engineer at Colorado Electronic Product Design (CEPD) and has been involved in bringing novel products to market since the early 2000’s. In his role, he is responsible for developing technical solutions, which cover a vast array of disciplines in both hardware and software design. This role also includes the managing projects and technical teams, as well as engaging in business development activities. Noah is actively involved in writing articles and publications, as these provide opportunities to dive deeper into interesting topics and to engage a broader audience.

Noah’s professional interests include feedback control systems, FPGA and MCU-based embedded designs, and aerospace applications. He is an advocate of process-driven and test-driven development paradigms and has worked to implement engineering processes into team dynamics. He cherishes the reward of seeing a new product come to maturity and to have it live up to everyone’s expectations.