Syntéza na vysoké úrovni - High-level synthesis

Syntéza na vysoké úrovni ( HLS ), někdy označovaný jako syntéza C , elektronický systém na úrovni (ESL) syntéza , algoritmické syntézy nebo syntézy chování , je automatizovaný proces návrhu, který bere abstraktní chování specifikaci digitálního systému a najít registr -struktura úrovně přenosu, která realizuje dané chování.

Syntéza začíná specifikací problému na vysoké úrovni, kde je chování obecně odděleno od nízkoúrovňových obvodových mechanik, jako je časování na úrovni hodin . Early HLS prozkoumal řadu jazyků vstupní specifikace, ačkoli nedávný výzkum a komerční aplikace obecně akceptují syntetizovatelné podmnožiny ANSI C / C ++ / SystemC / MATLAB . Kód je analyzován, architektonicky omezen a naplánován k překompilování do návrhu úrovně přenosu registru (RTL) v jazyce popisu hardwaru (HDL), který je zase běžně syntetizován na úroveň brány pomocínástroj pro syntézu logiky .

Cílem HLS je nechat hardwarové designéry efektivně vytvářet a ověřovat hardware tím, že jim poskytnou lepší kontrolu nad optimalizací jejich návrhové architektury a díky povaze návrháře popsat návrh na vyšší úrovni abstrakce, zatímco nástroj provádí Implementace RTL. Ověření RTL je důležitou součástí procesu.

Hardware lze navrhnout na různých úrovních abstrakce. Běžně používané úrovně abstrakce jsou na úrovni brány , úroveň zaregistrovat přenosu (RTL), a algoritmické úrovni.

Zatímco logická syntéza používá RTL popis návrhu, syntéza na vysoké úrovni funguje na vyšší úrovni abstrakce, počínaje algoritmickým popisem v jazyce na vysoké úrovni, jako je SystemC a ANSI C/C ++. Návrhář obvykle vyvíjí funkce modulu a propojovací protokol. Nástroje syntézy na vysoké úrovni zpracovávají mikroarchitekturu a transformují nestimulovaný nebo částečně časovaný funkční kód do plně načasovaných implementací RTL a automaticky vytvářejí detaily cyklu za cyklem pro implementaci hardwaru. Implementace (RTL) se pak používají přímo v toku konvenční logické syntézy k vytvoření implementace na úrovni brány.

Dějiny

Raná akademická práce extrahovala plánování, alokaci a vazbu jako základní kroky pro syntézu na vysoké úrovni. Plánování oddílů algoritmu v řídicích krocích, které se používají k definování stavů v počítači s konečným stavem . Každý řídicí krok obsahuje jednu malou část algoritmu, kterou lze v hardwaru provést v jediném hodinovém cyklu. Přidělení a vazba mapuje pokyny a proměnné na hardwarové komponenty, multiplexory, registry a vodiče datové cesty.

Syntéza chování první generace byla představena společností Synopsys v roce 1994 jako Behavioral Compiler a jako vstupní jazyky používala Verilog nebo VHDL . Použitou úrovní abstrakce byly částečně časované (taktované) procesy. Nástroje založené na behaviorálním Verilogu nebo VHDL nebyly částečně široce přijaty, protože ani jazyky, ani částečně časovaná abstrakce nebyly vhodné pro modelování chování na vysoké úrovni. O 10 let později, na začátku roku 2004, Synopsys kompilátor chování na konci života .

V roce 1998 společnost Forte Design Systems představila svůj nástroj Cynthesizer, který používal SystemC jako vstupní jazyk namísto Verilog nebo VHDL. Cynthesizer byl přijat mnoha japonskými společnostmi v roce 2000, protože Japonsko mělo velmi vyspělou komunitu uživatelů SystemC. Prvního syntetizačního pásku na vysoké úrovni dosáhla v roce 2001 společnost Sony pomocí nástroje Cynthesizer. Adopce ve Spojených státech začala vážně v roce 2008.

Vstup zdroje

Nejběžnější zdrojové vstupy pro syntézu na vysoké úrovni jsou založeny na standardních jazycích, jako jsou ANSI C / C ++ , SystemC a MATLAB .

Syntéza na vysoké úrovni obvykle také obsahuje jako vstup bitově přesnou specifikaci spustitelného souboru, protože k odvození efektivní hardwarové implementace jsou zapotřebí dodatečné informace o přijatelné průměrné čtvercové chybě nebo rychlosti chybových bitů atd. Například pokud návrhář začíná filtrem FIR napsaným pomocí „dvojitého“ plovoucího typu, než může odvodit efektivní hardwarovou implementaci, musí provést numerické upřesnění, aby dospěl k implementaci s pevným bodem. Upřesnění vyžaduje další informace o tolerovatelné úrovni kvantizačního šumu, platných vstupních rozsazích atd. Tato bitově přesná specifikace činí specifikaci zdroje syntézy na vysoké úrovni funkčně úplnou. Normálně nástroje odvozují z kódu vysoké úrovně konečný stavový stroj a datovou cestu, které implementují aritmetické operace.

Fáze procesu

Proces syntézy na vysoké úrovni se skládá z řady činností. Různé nástroje syntézy na vysoké úrovni provádějí tyto činnosti v různých řádech pomocí různých algoritmů. Některé nástroje pro syntézu na vysoké úrovni kombinují některé z těchto činností nebo je provádějí iterativně, aby konvergovaly k požadovanému řešení.

  • Lexikální zpracování
  • Optimalizace algoritmu
  • Analýza řízení toku dat
  • Zpracování knihovny
  • Přidělení zdrojů
  • Plánování
  • Vazba funkční jednotky
  • Zaregistrujte vazbu
  • Zpracování výstupu
  • Rebundling vstupu

Funkčnost

Algoritmus lze obecně provádět v mnoha hodinových cyklech s malým počtem hardwarových prostředků nebo s více hodinovými cykly pomocí většího počtu ALU, registrů a pamětí. Odpovídajícím způsobem z jednoho algoritmického popisu lze pomocí kompilátoru HLS generovat různé hardwarové mikroarchitektury podle směrnic daných nástroji. Jedná se o stejný kompromis rychlosti spouštění pro složitost hardwaru, jaký je patrný, když je daný program spuštěn na konvenčních procesorech různého výkonu, přesto všechny běží zhruba na stejné hodinové frekvenci.

Architektonická omezení

Syntézní omezení pro architekturu lze automaticky použít na základě analýzy návrhu. Tato omezení lze prolomit

  • Hierarchie
  • Rozhraní
  • Paměť
  • Smyčka
  • Omezení časování na nízké úrovni
  • Opakování

Syntéza rozhraní

Interface Synthesis odkazuje na schopnost přijmout jako vstup čistý popis C/C ++ a poté použít technologii automatické syntézy rozhraní k ovládání časovacího a komunikačního protokolu v návrhovém rozhraní. To umožňuje analýzu rozhraní a zkoumání celé řady možností hardwarového rozhraní, jako je streamování, RAM s jedním nebo dvěma porty a různé mechanismy handshaking. Při syntéze rozhraní návrhář nevkládá protokoly rozhraní do popisu zdroje. Příkladem může být: přímé připojení, jednořádkové, dvouřádkové handshake, FIFO.

Prodejci

Údaje o nedávném průzkumu

Postavení Překladač Majitel Licence Vstup Výstup Rok Doména Testovací
lavice
FP Oprava P.
Při použití Stratus HLS Cadence Design Systems Komerční Systém C/C ++ RTL 2015 Všechno Ano Ano Ano
AUGH Laboratoř TIMA. Akademický Podmnožina C. VHDL 2012 Všechno Ano Ne Ne
rozrušit Y Průzkumy Komerční C VHDL/Verilog 2001 Všechno Ano Ne Ano
Bambu PoliMi Akademický C VHDL/Verilog 2012 Všechno Ano Ano Ne
Bluespec BlueSpec Inc. Komerční BSV SystemVerilog 2007 Všechno Ne Ne Ne
QCC CacheQ Systems, Inc. Komerční C/C ++/Fortan Hostitelný spustitelný soubor + bitový soubor FPGA (SystemVerilog je přechodný) 2018 Vše - vícejádrový a heterogenní výpočet Ano (C ++) Ano Ano
CHC Altium Komerční Podmnožina C. VHDL/Verilog 2008 Všechno Ne Ano Ano
CoDeveloper Impuls zrychlen Komerční Impuls-C VHDL 2003
Streamování obrazu
Ano Ano Ne
HDL kodér MathWorks Komerční MATLAB, Simulink, Stateflow, Simscape VHDL / Verilog 2003 Řídicí systémy, zpracování signálu, bezdrátové, radarové, komunikační, obrazové a počítačové vidění Ano Ano Ano
CyberWorkbench NEC Komerční BDL, SystemC VHDL/Verilog 2011 Všechno Cyklus/
formální
Ano Ano
Katapult Mentor
(divize Siemens)
Komerční C, C ++, SystemC VHDL/Verilog 2004 Všechno Ano Ano Ano
DWARV TU. Delft Akademický Podmnožina C. VHDL 2012 Všechno Ano Ano Ano
GAUT U. Bretagne Akademický C/C ++ VHDL 2010 DSP Ano Ne Ano
Hastlayer Lombiq Technologies Komerční C#/C ++/F#...
( .NET )
VHDL 2015 .SÍŤ Ano Ano Ano
Okamžité SoC Jádra FPGA Komerční C/C ++ VHDL/Verilog 2019 Všechno Ano Ne Ne
Kompilátor syntézy Intel na vysoké úrovni Intel FPGA (dříve Altera) Komerční C/C ++ Verilog 2017 Všechno Ano Ano Ano
LegUp HLS LegUp Computing Komerční C/C ++ Verilog 2015 Všechno Ano Ano Ano
Nohu nahoru U. Toronto Akademický C Verilog 2010 Všechno Ano Ano Ne
MaxCompiler Maxeler Komerční MaxJ RTL 2010 Datový tok Ne Ano Ne
ROCCC Jacquard Comp. Komerční Podmnožina C. VHDL 2010 Streamování Ne Ano Ne
Symfonie C. Synopsys Komerční C/C ++ VHDL/ Verilog/
SystemC
2010 Všechno Ano Ne Ano
VivadoHLS
(dříve
AutoPilot od AutoESL)
Xilinx Komerční C/C ++/SystemC VHDL/ Verilog/
SystemC
2013 Všechno Ano Ano Ano
Kiwi U. Cambridge Akademický C# Verilog 2008 .SÍŤ Ne Ano Ano
CHIMPS U. Washington Akademický C VHDL 2008 Všechno Ne Ne Ne
gcc2verilog U. Korea Akademický C Verilog 2011 Všechno Ne Ne Ne
Herkules Kompilátory Ajax Komerční C/NAC VHDL 2012 Všechno Ano Ano Ano
Shang U. Illinois Akademický C Verilog 2013 Všechno Ano ? ?
Trojzubec Los Alamos NL Akademický Podmnožina C. VHDL 2007 Vědecký Ne Ano Ne
Aban-
doned
AccelDSP Xilinx Komerční MATLAB VHDL/Verilog 2006 DSP Ano Ano Ano
C2H Altera Komerční C VHDL/Verilog 2006 Všechno Ne Ne Ne
CtoVerilog U. Haifa Akademický C Verilog 2008 Všechno Ne Ne Ne
DEFACTO U. South Cailf. Akademický C RTL 1999 DSE Ne Ne Ne
Garp U. Berkeley Akademický Podmnožina C. bitstream 2000 Smyčka Ne Ne Ne
ZÁPAS U. Severozápad Akademický MATLAB VHDL 2000 obraz Ne Ne Ne
Napa-C Sarnoff Corp. Akademický Podmnožina C. VHDL/Verilog 1998 Smyčka Ne Ne Ne
PipeRench U. Carnegie M. Akademický DIL bistream 2000 Proud Ne Ne Ne
VAK U. Colorado Akademický VAK VHDL 2003 obraz Ne Ne Ne
Mořská okurka U. Brigham Y. Akademický Jáva EDIF 2002 Všechno Ne Ano Ano
JISKRA U. Cal. Irvine Akademický C VHDL 2003 Řízení Ne Ne Ne

Viz také

Reference

Další čtení

  • Michael Fingeroff (2010). Modrá kniha syntézy na vysoké úrovni . Xlibris Corporation. ISBN 978-1-4500-9724-6.
  • Coussy, P .; Gajski, DD; Meredith, M .; Takach, A. (2009). „Úvod do syntézy na vysoké úrovni“. IEEE Design & Test of Computers . 26 (4): 8–17. doi : 10.1109/MDT.2009.69 . S2CID  52870966 .
  • Ewout SJ Martens; Georges Gielen (2008). Modelování na vysoké úrovni a syntéza analogových integrovaných systémů . Springer. ISBN 978-1-4020-6801-0.
  • Saraju Mohanty ; N. Ranganathan; E. Kougianos a P. Patra (2008). Nízkoenergetická syntéza na vysoké úrovni pro obvody CMOS v nanoměřítku . Springer. ISBN 978-0387764733.
  • Alice C. Parker ; Yosef Tirat-Gefen; Suhrid A. Wadekar (2007). „Návrh na úrovni systému“. Ve Wai-Kai Chen (ed.). Příručka VLSI (2. vyd.). Stiskněte CRC. ISBN 978-0-8493-4199-1. kapitola 76.
  • Shahrzad Mirkhani; Zainalabedin Navabi (2007). „Jazyky návrhu na úrovni systému“. Ve Wai-Kai Chen (ed.). Příručka VLSI (2. vyd.). Stiskněte CRC. ISBN 978-0-8493-4199-1. Kapitola 86. pokrývá použití C/C ++, SystemC, TML a dokonce i UML
  • Liming Xiu (2007). Demystifikovaná metodika návrhu obvodu VLSI: koncepční taxonomie . Wiley-IEEE. ISBN 978-0-470-12742-1.
  • John P. Elliott (1999). Pochopení syntézy chování: praktický průvodce návrhem na vysoké úrovni . Springer. ISBN 978-0-7923-8542-4.
  • Nane, Razvan; Sima, Vlad-Mihai; Pilato, Christian; Choi, Jongsok; Fort, Blair; Canis, Andrew; Chen, Yu Ting; Hsiao, Hsuan; Brown, Stephen; Ferrandi, Fabrizio; Anderson, Jason; Bertels, Koen (2016). „Průzkum a hodnocení nástrojů syntézy na vysoké úrovni FPGA“. IEEE Transaction on Computer-Aided Design of Integrated Circuits and Systems . 35 (10): 1591–1604. doi : 10.1109/TCAD.2015.2513673 . hdl : 11311/998432 . S2CID  8749577 .
  • Gupta, Rajesh; Brewer, Forrest (2008). „Syntéza na vysoké úrovni: retrospektiva“. „Syntéza na vysoké úrovni: retrospektiva“ . Springer. s. 13–28. doi : 10,1007/978-1-4020-8588-8_2 . ISBN 978-1-4020-8587-1.

externí odkazy