Impulse C. - Impulse C
![]() | tento článek ne uvést žádný Zdroje.Červenec 2009) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Navrhl | Impulse Accelerated Technologies |
---|---|
Vývojář | Impulse Accelerated Technologies |
Poprvé se objevil | 2003 |
Stabilní uvolnění | 3.60.a.8 / 2009-09-30 |
OS | FPGA a související vestavěné procesory |
Licence | Překladač FPGA prodávaný a distribuovaný společností Impulse Accelerated Technologies |
webová stránka | www.ImpulseC.com[mrtvý odkaz ] |
Ovlivněno | |
Programovací jazyk C., Proudy-C |
Impulse C. je podmnožinou souboru Programovací jazyk C. v kombinaci s C-kompatibilním knihovna funkcí vedlejší paralelní programování, zejména pro programování cílení aplikací FPGA zařízení. Je vyvinut společností Impulse Accelerated Technologies z Kirklandu ve Washingtonu.
Přehled
The Syntéza na vysoké úrovni nářadí CoDeveloper zahrnuje Impulse C. překladač a související knihovna funkcí určená pro vývoj aplikací založených na FPGA. Impulse C je kompatibilní se standardem ANSI C., což umožňuje použití standardních nástrojů C pro návrh a ladění aplikací zaměřených na FPGA. Kompilátor Impulse C přijímá podmnožinu C a generuje hardware FPGA ve formě Jazyk popisu hardwaru (HDL) soubory. Impulse C umožňuje návrhářům vestavěných systémů a softwarovým programátorům cílit na zařízení FPGA pro akceleraci aplikací v jazyce C.
Impulse C se liší od standardu C v tom, že poskytuje paralelu programovací model pro smíšené procesory a platformy FPGA. Za tímto účelem obsahuje Impulse C rozšíření C ve formě funkcí a datových typů, což umožňuje mapování aplikací napsaných ve standardu C na hrubozrnné paralelní architektury, které mohou zahrnovat standardní procesory spolu s programovatelným hardwarem FPGA.
Mezi nástroje Impulse C patří hardwarové / softwarové nástroje pro simulaci i C-to-RTL technologie plánování / optimalizace používaná k mapování prvků aplikace na hardware přes FPGA logická syntéza nástroje.
Programovací model
Impulse C podporuje variantu komunikující sekvenční procesy (CSP) programovací model, přičemž zůstává kompatibilní se standardními nástroji C, jako jsou debuggery a profilery. Impulse C je určen pro streamované aplikace zaměřené na tok dat, ale je také navržen tak, aby podporoval alternativní programovací modely, včetně použití sdílené paměti jako komunikačního mechanismu.
V streamovací aplikaci Impulse C komunikují hardwarové a softwarové procesy primárně prostřednictvím datových toků ve vyrovnávací paměti, které jsou implementovány přímo v hardwaru. Toto ukládání do vyrovnávací paměti dat, které je implementováno pomocí duálních hodin FIFO generovaný kompilátorem, umožňuje psát paralelní aplikace na relativně vysoké úrovni abstrakce, aniž by byla vyžadována synchronizace cyklus po cyklu.
Pomocí aplikace Impulse C lze aplikaci rozdělit na oddíly a vytvořit tak implementaci s více procesy, která je rozdělena na hardwarové a softwarové komponenty nebo implementována zcela v zařízení FPGA. Například aplikace pro filtrování obrázků by mohla být popsána pomocí Impulse C jako kolekce paralelních pipeline procesů, z nichž každý byl popsán pomocí jednoho nebo více C podprogramů.
Na softwarové straně aplikace, například ve vestavěném procesoru FPGA, se funkce knihovny Impulse C používají k otevírání a zavírání datových toků, čtení nebo zápisu dat do streamů a v případě potřeby k odesílání stavových zpráv nebo dotazování na výsledky. Pro komunikaci mezi procesorem a FPGA lze číst a zapisovat streamy jako operace, které využívají výhod interních nebo externích rozhraní sběrnice specifických pro FPGA.
Na hardwarové straně aplikace jsou funkce knihovny Impulse C a další příkazy C kompilovány tak, aby generovaly ekvivalentní paralelní hardwarové implementace ve formě syntetizovatelných souborů HDL. Tyto soubory jsou zpracovány nástroji FPGA k vytvoření hardwarových bitmap FPGA.
Srdcem streamovacího modelu Impulse C jsou procesy a proudy. Procesy jsou nezávisle synchronizovány a současně provádějí segmenty aplikace. Hardwarové procesy se zapisují pomocí podmnožiny standardu C a provádějí práci aplikace přijímáním dat, prováděním výpočtů a generováním výstupů. V typické aplikaci proudí data z procesu do procesu pomocí toků ve vyrovnávací paměti nebo v některých případech prostřednictvím zpráv a / nebo sdílených pamětí. Charakteristiky každého streamu, včetně šířky a hloubky vygenerovaných FIFO, lze specifikovat v aplikaci C.
Aplikace
Impulse C se používá pro aplikace včetně zpracování obrazu a zpracování digitálních signálů na vestavěné systémy, jakož i pro zrychlení vysoce výkonných výpočetních aplikací včetně finančních analytika, bioinformatika a vědecké výpočty.
Cílové platformy
Impulse C podporuje FPGA od Xilinx a Altera, včetně jejich dostupných soft- a hard-core procesorů Altera Nios II a Xilinx je MicroBlaze a PowerPC.