Syntéza na vysoké úrovni - High-level synthesis
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Syntéza na vysoké úrovni (HLS), někdy označovaný jako C syntéza, elektronická syntéza na úrovni systému (ESL), algoritmická syntézanebo behaviorální syntéza, je automatizovaný proces návrhu, který interpretuje algoritmický popis požadovaného chování a vytváří digitální hardware, který toto chování implementuje.[1]
Syntéza začíná specifikací problému na vysoké úrovni, kde je chování obecně oddělené od nízkoúrovňových obvodových mechanik, jako je hodiny - načasování úrovně. Brzy HLS prozkoumala řadu jazyků specifikací vstupu,[2] ačkoli nedávný výzkum a komerční aplikace obecně přijímají syntetizovatelné podmnožiny ANSI C. /C ++ /SystemC /MATLAB. Kód je analyzován, architektonicky omezen a naplánován na překompilovat do úroveň přenosu registru (RTL) design v a jazyk popisu hardwaru (HDL), který je zase běžně syntetizován do úroveň brány použitím a logická syntéza nářadí.
Cílem HLS je umožnit návrhářům hardwaru efektivně vytvářet a ověřovat hardware tím, že jim poskytne lepší kontrolu nad optimalizací jejich návrhové architektury a prostřednictvím povahy umožňující návrhářům 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.[3]
Hardware může být navržen na různých úrovních abstrakce. Běžně používané úrovně abstrakce jsou úroveň brány, úroveň přenosu registru (RTL) a algoritmické úroveň.
Zatímco logická syntéza používá popis návrhu RTL, syntéza na vysoké úrovni pracuje na vyšší úrovni abstrakce, počínaje algoritmickým popisem v jazyce na vysoké úrovni, jako jsou SystemC a ANSI C / C ++. Návrhář obvykle vyvíjí funkčnost modulu a protokol propojení. Nástroje pro syntézu na vysoké úrovni zpracovávají mikroarchitekturu a transformují neomezený nebo částečně načasovaný funkční kód na plně načasované implementace RTL a automaticky vytvářejí podrobnosti cyklu pro implementaci hardwaru.[4] Implementace (RTL) se poté používají přímo v konvenčním toku 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 konečný stavový stroj. Každý řídicí krok obsahuje jednu malou část algoritmu, kterou lze provést v jediném hodinovém cyklu v hardwaru. Přiřazení a vazba mapuje pokyny a proměnné na hardwarové komponenty, multiplexery, registry a vodiče datové cesty.
První generace behaviorální syntézy byla zavedena Synopsys v roce 1994 jako Behavioral Compiler[5] a použité Verilog nebo VHDL jako vstupní jazyky. Použitou úrovní abstrakce byly částečně časované (taktované) procesy. Nástroje založené na behaviorálním Verilogu nebo VHDL nebyly částečně přijaty, protože ani jazyky ani částečně načasovaná abstrakce nebyly vhodné pro modelování chování na vysoké úrovni. O 10 let později, počátkem roku 2004, Synopsys konec života Behavioral Compiler.[6]
V roce 1998 Systémy Forte Design 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í vysoké úrovně syntézy bylo dosaženo v roce 2001 Sony pomocí Cynthesizer. Adopce ve Spojených státech začaly v roce 2008.[7]
Vstup zdroje
Nejběžnější zdrojové vstupy pro syntézu na vysoké úrovni jsou založeny na standardních jazycích, jako je ANSI C. /C ++, SystemC a MATLAB.
Syntéza na vysoké úrovni obvykle zahrnuje také bitově přesnou spustitelnou specifikaci jako vstup, protože k odvození efektivní implementace hardwaru jsou zapotřebí další informace o přijatelné střední hodnotě čtverce nebo rychlosti bitové chyby atd. Například pokud návrhář začíná FIR filtrem psaným pomocí „dvojitého“ plovoucího typu, než bude moci odvodit efektivní hardwarovou implementaci, musí provést numerické zpřesnění, aby dosáhl implementace s pevným bodem. Upřesnění vyžaduje další informace o tolerovatelné úrovni kvantovacího šumu, platných vstupních rozsazích atd. Tato bitově přesná specifikace činí funkčnost zdroje vysoké úrovně syntézy funkčně kompletní.[8]Za normálních okolností nástroje odvozují z kódu na vysoké úrovni stroj konečných stavů a datovou cestu, které implementují aritmetické operace.
Fáze procesu
Proces syntézy na vysoké úrovni se skládá z řady aktivit. Různé nástroje pro syntézu na vysoké úrovni provádějí tyto činnosti v různých objednávkách 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 dosáhly požadovaného řešení.[9]
- Lexikální zpracování
- Optimalizace algoritmu
- Kontrola / analýza 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
Obecně lze algoritmus provádět během mnoha hodinových cyklů s několika hardwarovými prostředky nebo přes méně hodinových cyklů pomocí většího počtu ALU, registrů a pamětí. Odpovídajícím způsobem z jednoho algoritmického popisu může kompilátor HLS vygenerovat řadu hardwarových mikroarchitektur podle směrnic daných nástroji. Jedná se o stejný kompromis s rychlostí provádění pro složitost hardwaru, jak je vidět, když je daný program spuštěn na konvenčních procesorech s různým výkonem, přesto všechny běží na zhruba stejné frekvenci hodin.
Architektonická omezení
Omezení syntézy pro architekturu lze automaticky použít na základě analýzy návrhu.[3] Tato omezení lze rozdělit
- Hierarchie
- Rozhraní
- Paměť
- Smyčka
- Omezení časování na nízké úrovni
- Opakování
Syntéza rozhraní
Rozhraní Synthesis označuje schopnost přijmout jako vstup čistý popis C / C ++ a poté použít technologii automatické syntézy rozhraní k řízení časování a komunikačního protokolu na 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í, jedna linka, dvouřádkové podání ruky, FIFO.[10]
Prodejci
Údaje o nedávném průzkumu[11]
Postavení | Překladač | Majitel | Licence | Vstup | Výstup | Rok | Doména | Test Lavice | FP | FixP |
---|---|---|---|---|---|---|---|---|---|---|
Při použití | Stratus HLS | Cadence Design Systems | Komerční | Systém C / C ++ | RTL | 2015 | Všechno | Ano | Ano | Ano |
AUGH | TIMA Lab. | 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 | |
CHC | Altium | Komerční | Podmnožina C. | VHDL / Verilog | 2008 | Všechno | Ne | Ano | Ano | |
CoDeveloper | Impulz zrychlen | Komerční | Impulse-C | VHDL | 2003 | obraz Streamování | 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 | Učitel (Siemens business) | 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 | Technologie Lombiq | Komerční | C # / C ++ / F # ... (.SÍŤ ) | VHDL | 2015 | .SÍŤ | Ano | Ano | Ano | |
Okamžité SoC | FPGA jádra | Komerční | C / C ++ | VHDL / Verilog | 2019 | Všechno | Ano | Ne | Ne | |
Intel High Level Synthesis Compiler | 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 | |
Symphony C. | Synopsys | Komerční | C / C ++ | VHDL / Verilog / SystemC | 2010 | Všechno | Ano | Ne | Ano | |
VivadoHLS (dříve AutoPilot z AutoESL[12]) | 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 | Překladače Ajaxu | 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 | |
Zákaz- daroval | 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. | bitový proud | 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 |
- Kodér MATLAB HDL [6] z Mathworks[13]
- HLS-QSP od společnosti CircuitSutra Technologies[14]
- C-to-Silicon od Cadence Design Systems
- Souběžné zrychlení z Souběžná EDA
- Překladač Symphony C z Synopsys
- QuickPlay od PLDA[15]
- PowerOpt z ChipVision[16]
- Syntetizátor z Systémy Forte Design (nyní Stratus HLS z Cadence Design Systems )
- Katapult C. z Calypto Design Systems, část Mentor Graphics od roku 2015, 16. září
- CyberWorkBench od NEC[17]
- Mega hardware [18]
- C2R od společnosti CebaTech[19]
- CoDeveloper z Impulse Accelerated Technologies
- HercuLeS od Nikolaose Kavvadiase[20]
- PICO od společnosti Synfora, získaná společností Synopsys v červnu 2010[21] (PICO = Program In / Code Out)
- xPilot z Kalifornské univerzity v Los Angeles[22]
- Vsyn z vsyn.ru[23]
- ngDesign ze SynFlow[24]
Viz také
- C až HDL
- Automatizace elektronického designu (EDA)
- Úroveň elektronického systému (ESL)
- Logická syntéza
- Ověření na vysoké úrovni (HLV)
- SystemVerilog
- Hardwarová akcelerace
Reference
- ^ Coussy, Philippe; Morawiec, Adam, eds. (2008). Syntéza na vysoké úrovni - Springer. doi:10.1007/978-1-4020-8588-8. ISBN 978-1-4020-8587-1.
- ^ IEEE Xplore Syntéza na vysoké úrovni: minulost, přítomnost a budoucnost DOI 10.1109 / MDT.2009.83
- ^ A b "Proč" a "co" algoritmické syntézy ". EE Times. Citováno 2016-10-03.
- ^ „Rychlé prototypování na bázi C pro zpracování digitálního signálu“ (PDF). UBS University, Francie. Citováno 2016-10-03.
- ^ „Publikace a prezentace“. Bdti.com. Archivovány od originál dne 26. 04. 2008. Citováno 2016-10-03.
- ^ „Crossroadioza syntézy chování“. EE Times. Citováno 2016-10-03.
- ^ [1]
- ^ Vícenásobná syntéza na vysoké úrovni s délkou slova Deník EURASIP o vestavěných systémech
- ^ "Pohled do syntézy chování". EE Times. Citováno 2016-10-03.
- ^ [2]
- ^ Nane, R .; Sima, V. M .; Pilato, C .; Choi, J .; Fort, B .; Canis, A .; Chen, Y. T .; Hsiao, H .; Brown, S. (2016). „Průzkum a hodnocení nástrojů pro syntézu na vysoké úrovni FPGA“ (PDF). Transakce IEEE na počítačově podporovaném návrhu integrovaných obvodů a systémů. 35 (10): 1591–1604. doi:10.1109 / TCAD.2015.2513673. hdl:11311/998432. ISSN 0278-0070.
- ^ „Xilinx kupuje dodavatele EDA na vysoké úrovni syntézy“. EE Times. 2011-02-05. Archivovány od originál dne 2011-10-17. Citováno 2016-10-03.
- ^ „MathWorks - tvůrci programů MATLAB a Simulink“. Mathworks.com. Citováno 2016-10-03.
- ^ „SystemL based ESL metodologies - SystemC based ESL metodologies“. Circuitsutra.com. Citováno 2016-10-03.
- ^ John M. ve významné společnosti ERP & DBMS Corporation (2016-08-29). „QuickPlay: Přinášíme výpočetní techniku FPGA do masy“. Quickplay.io. Citováno 2016-10-03.CS1 maint: více jmen: seznam autorů (odkaz)
- ^ [3]
- ^ „CyberWorkBench: Produkty“. NEC. Citováno 2016-10-03.
- ^ [4]
- ^ [5]
- ^ „Nikolaos Kavvadias - nástroj vysoké úrovně syntézy HercuLeS“. Nkavvadias.com. Citováno 2016-10-03.
- ^ „Synopsys kupuje aktiva Synfora“. EE Times. Archivovány od originál dne 04.04.2011. Citováno 2016-10-03.
- ^ „Systém xPilot“. Cadlab.cs.ucla.edu. Citováno 2016-10-03.
- ^ „vSyn.ru“. vSyn.ru. 2016-06-16. Archivovány od originál dne 30.06.2016. Citováno 2016-10-03.
- ^ „Hardwarový design pro všechny“. Synflow. Citováno 2016-10-03.
Další čtení
- Michael Fingeroff (2010). Modrá kniha syntézy na vysoké úrovni. Xlibris[samostatně publikovaný zdroj ] Korporace. ISBN 978-1-4500-9724-6.
- Coussy, P .; Gajski, D. D .; 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.
- Ewout S. J. Martens; Georges Gielen (2008). Modelování a syntéza analogových integrovaných systémů na vysoké úrovni. Springer. ISBN 978-1-4020-6801-0.
- Saraju Mohanty; N. Ranganathan; E. Kougianos & P. Patra (2008). Nízkoenergetická syntéza na vysoké úrovni pro obvody CMOS v nanoměřítku. Springer. ISBN 978-0387764733.
- Alice C. Parkerová; Yosef Tirat-Gefen; Suhrid A. Wadekar (2007). "Návrh na úrovni systému". Ve Wai-Kai Chen (ed.). Příručka VLSI (2. vyd.). CRC Press. ISBN 978-0-8493-4199-1. kapitola 76.
- Shahrzad Mirkhani; Zainalabedin Navabi (2007). "Návrhové jazyky na úrovni systému". Ve Wai-Kai Chen (ed.). Příručka VLSI (2. vyd.). CRC Press. 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 obvodů VLSI: koncepční taxonomie. Wiley-IEEE. ISBN 978-0-470-12742-1.
- John P. Elliott (1999). Pochopení syntézy chování: praktický průvodce designem 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 vyhodnocení nástrojů pro syntézu na vysoké úrovni FPGA“. Transakce IEEE na počítačově podporovaném návrhu integrovaných obvodů a systémů. 35 (10): 1591–1604. doi:10.1109 / TCAD.2015.2513673. hdl:11311/998432.