Hochrangige Synthese
Hochrangige Synthese (HLS), manchmal bezeichnet als C Synthese, Synthese auf elektronischer Systemebene (ESL), Algorithmische Synthese, oder Verhaltenssynthese, ist ein automatisierter Entwurfsprozess, der eine abstrakte Verhaltensspezifikation eines digitalen Systems annimmt und eine Struktur der Register-Transfer-Ebene findet, die das gegebene Verhalten realisiert.[1][2]
Die Synthese beginnt mit einer hochrangigen Spezifikation des Problems, bei dem das Verhalten im Allgemeinen von Schaltungsmechanik auf niedriger Ebene entkoppelt ist Uhr-Level -Timing. Frühe HLS untersuchten eine Vielzahl von Eingabebuchsprachen,[3] Obwohl jüngste Forschungs- und kommerzielle Anwendungen allgemein synthesizbare Teilmengen von akzeptieren Ansi c/C ++/Systemc/Matlab. Der Code wird analysiert, architektonisch eingeschränkt und geplant transkompilien in ein Registerübertragungsstufe (RTL) Design in a Hardware -Beschreibung Sprache (HDL), was wiederum häufig zur synthetisiert wird Gate Level durch Verwendung von a Logiksynthese Werkzeug.
Das Ziel von HLS ist es, Hardwaredesigner Hardware effizient zu erstellen und zu verifizieren, indem sie eine bessere Kontrolle über die Optimierung seiner Designarchitektur verleihen und durch die Art des Designer RTL -Implementierung. Die Überprüfung des RTL ist ein wichtiger Bestandteil des Prozesses.[4]
Hardware kann zu unterschiedlichen Abstraktionsniveaus ausgelegt werden. Die häufig verwendeten Abstraktionsniveaus sind Gate Level, Registerübertragungsstufe (RTL) und Algorithmisch eben.
Während Logiksynthese Verwendet eine RTL-Beschreibung des Designs, hochrangige Synthese funktioniert auf einer höheren Abstraktionsebene, beginnend mit einer algorithmischen Beschreibung in einer hochrangigen Sprache wie Systemc und ANSI C/C ++. Der Designer entwickelt typischerweise die Modulfunktionalität und das Interconnect -Protokoll. Die hochrangigen Synthese-Tools verarbeiten die Mikroarchitektur und transformieren unbegrenzte oder teilweise zeitgesteuerte Funktionscode in vollständig zeitgesteuerte RTL-Implementierungen und erstellen automatisch Zyklus-durch-Zyklus-Details für die Hardware-Implementierung.[5] Die (RTL) Implementierungen werden dann direkt in einem herkömmlichen logischen Synthesefluss verwendet, um eine Implementierung auf Gate-Ebene zu erstellen.
Geschichte
Frühe akademische Arbeiten extrahierten die Planung, Zuordnung und Bindung als grundlegende Schritte für die Synthese auf hoher Ebene. Planung von Partitionen Der Algorithmus in Kontrollschritten, mit denen die Zustände in der definiert werden Finite-State-Maschine. Jeder Steuerschritt enthält einen kleinen Abschnitt des Algorithmus, der in einem einzelnen Taktzyklus in der Hardware ausgeführt werden kann. Die Allokation und Bindung ordnen die Anweisungen und Variablen an die Hardwarekomponenten, Multiplexer, Register und Drähte des Datenpfads ab.
Die Verhaltenssynthese der ersten Generation wurde durch eingeführt von Synops 1994 als Verhaltens Compiler[6] und verwendet Verilog oder VHDL als Eingabesprachen. Die verwendete Abstraktionsebene war teilweise zeitgesteuert (getaktet) Prozesse. Tools, die auf Verhaltensverilog oder VHDL basieren, wurden nicht häufig angewendet, da weder Sprachen noch die teilweise zeitgesteuerte Abstraktion gut geeignet waren, das Verhalten auf hoher Ebene zu modellieren. 10 Jahre später, Anfang 2004, Synopsys Ende der Leichtigkeit Verhaltens Compiler.[7]
In 1998, Forte -Design -Systeme stellte sein Cynthesizer -Tool ein, das SystemC als Einstiegssprache anstelle von Verilog oder VHDL verwendete. Cynthesizer wurde 2000 von vielen japanischen Unternehmen übernommen, da Japan eine sehr reife System -Benutzer -Community hatte. Das erste hochrangige Synthese-Band wurde 2001 von 2001 erreicht Sony mit Cynthesizer. Die Adoption in den Vereinigten Staaten begann 2008 ernsthaft.[8]
Quelleingabe
Die häufigsten Quelleingaben für die Synthese auf hoher Ebene basieren auf Standardsprachen wie z. Ansi c/C ++, Systemc und Matlab.
Die hochrangige Synthese enthält typischerweise auch eine bitgenaue ausführbare Spezifikation als Eingabe, da eine effiziente Hardware-Implementierung abgeleitet wird, sind zusätzliche Informationen zu einem akzeptablen Mittelwertefehler oder Bit-Error-Rate usw. erforderlich, wenn der Designer beispielsweise, wenn der Designer ist beginnt mit einem FIR-Filter, der mit dem "doppelten" schwimmenden Typ geschrieben wurde, bevor er eine effiziente Hardware-Implementierung ableiten kann, müssen sie eine numerische Verfeinerung durchführen, um zu einer festen Point-Implementierung zu gelangen. Die Verfeinerung erfordert zusätzliche Informationen über das Niveau des Quantisierungsrauschens, die toleriert werden können, die gültigen Eingangsbereiche usw. Diese bitgenaue Spezifikation lässt die Spezifikation der Hochebene-Synthese-Quellenspezifikation funktional abgeschlossen.[9] Normalerweise schließen die Tools aus dem Code auf hohem Niveau eine endliche Zustandsmaschine und eine Datenpath, die arithmetische Operationen implementiert.
Prozessphasen
Der hochrangige Syntheseprozess besteht aus einer Reihe von Aktivitäten. Verschiedene Synthese-Tools auf hoher Ebene führen diese Aktivitäten in verschiedenen Ordnungen mit verschiedenen Algorithmen aus. Einige hochrangige Synthese-Tools kombinieren einige dieser Aktivitäten oder führen sie iterativ aus, um die gewünschte Lösung zu konvergieren.[10]
- Lexikalische Verarbeitung
- Algorithmusoptimierung
- Kontroll-/Datenflow -Analyse
- Bibliotheksverarbeitung
- Ressourcenzuweisung
- Planung
- Funktionseinheitbindung
- Registerbindung
- Ausgangsverarbeitung
- Eingabesteuerung
Funktionalität
Im Allgemeinen kann ein Algorithmus über viele Taktzyklen mit wenigen Hardware -Ressourcen oder über weniger Taktzyklen unter Verwendung einer größeren Anzahl von Alus, Registern und Erinnerungen durchgeführt werden. Entsprechend können eine Vielzahl von Hardware -Mikroarchitekturen aus einer algorithmischen Beschreibung von einem HLS -Compiler gemäß den dem Tool angegebenen Richtlinien erzeugt werden. Dies ist der gleiche Kompromiss mit der Ausführungsgeschwindigkeit für die Komplexität der Hardware, wie bei einem bestimmten Programm auf herkömmlichen Prozessoren unterschiedlicher Leistung ausgeführt wird, aber alle mit ungefähr der gleichen Taktfrequenz ausgeführt werden.
Architektonische Einschränkungen
Synthesebeschränkungen für die Architektur können automatisch anhand der Entwurfsanalyse angewendet werden.[4] Diese Einschränkungen können in untergebracht werden
- Hierarchie
- Schnittstelle
- Erinnerung
- Schleife
- Timing-Einschränkungen auf niedriger Ebene
- Wiederholung
Schnittstellensynthese
Die Schnittstellensynthese bezieht sich auf die Fähigkeit, eine reine C/C ++ - Beschreibung als Eingabe zu akzeptieren und dann die automatisierte Schnittstellensynthese -Technologie zu verwenden, um das Timing- und Kommunikationsprotokoll an der Designschnittstelle zu steuern. Dies ermöglicht die Schnittstellenanalyse und Erforschung eines umfassenden Bereichs von Hardware-Schnittstellenoptionen wie Streaming, Einzel- oder Dual-Port-RAM sowie verschiedene Handshakemechanismen. Mit der Grenzflächensynthese setzt der Designer die Grenzflächenprotokolle in die Quellbeschreibung nicht ein. Beispiele könnten: direkte Verbindung, eine Zeile, 2 -Zeilen -Handshake, FIFO.[11]
Anbieter
Daten über die jüngste Umfrage gemeldet[12]
Status | Compiler | Eigentümer | Lizenz | Eingang | Ausgabe | Jahr | Domain | Prüfen Bank | FP | Fixp |
---|---|---|---|---|---|---|---|---|---|---|
In Benutzung | Stratus HLS | Cadence -Designsysteme | Kommerziell | C/C ++ Systemc | RTL | 2015 | Alle | Ja | Ja | Ja |
Augh | Tima Lab. | Akademisch | C Subset | VHDL | 2012 | Alle | Ja | Nein | Nein | |
begeistern | Y Erkundungen | Kommerziell | C | VHDL/Verilog | 2001 | Alle | Ja | Nein | Ja | |
Bambu | Polimi | Akademisch | C | VHDL/Verilog | 2012 | Alle | Ja | Ja | Nein | |
Bluespec | Bluespec Inc. | BSD-3 | BSV | Systemverilog | 2007 | Alle | Nein | Nein | Nein | |
QCC | Cacheq Systems, Inc. | Kommerziell | C/C ++/Fortan | Host Executable + FPGA -Bitdatei (Systemverilog ist intermediat) | 2018 | Alle - Multi -Kern- und heterogener Berechnung | Ja (C ++) | Ja | Ja | |
CHC | Altium | Kommerziell | C Subset | VHDL/Verilog | 2008 | Alle | Nein | Ja | Ja | |
Codeentwickler | Impuls beschleunigt | Kommerziell | Impuls-C | VHDL | 2003 | Bild Streaming | Ja | Ja | Nein | |
HDL -Coder | MathWorks | Kommerziell | Matlab, Simulink, StateFlow, Simscape | VHDL / Verilog | 2003 | Steuerungssysteme, Signalverarbeitung, drahtlos, Radar, Kommunikation, Bild und Computer Vision | Ja | Ja | Ja | |
Cyberworkbench | NEC | Kommerziell | BDL, Systemc | VHDL/Verilog | 2011 | Alle | Zyklus/ Formell | Ja | Ja | |
Katapult | Mentor (Siemens Business) | Kommerziell | C, C ++, Systemc | VHDL/Verilog | 2004 | Alle | Ja | Ja | Ja | |
Zwerge | Tu. Delft | Akademisch | C Subset | VHDL | 2012 | Alle | Ja | Ja | Ja | |
GAUT | U. Bretagne | Akademisch | C/C ++ | VHDL | 2010 | DSP | Ja | Nein | Ja | |
Hastlayer | Lombiq Technologies | Kommerziell | C#/c ++/f#... (.NETZ)) | VHDL | 2015 | .NETZ | Ja | Ja | Ja | |
Sofortiger Soc | FPGA -Kerne | Kommerziell | C/C ++ | VHDL/Verilog | 2019 | Alle | Ja | Nein | Nein | |
Intel High Level Synthese Compiler | Intel FPGA (früher Altera) | Kommerziell | C/C ++ | Verilog | 2017 | Alle | Ja | Ja | Ja | |
LEGUP HLS | Legup Computing | Kommerziell | C/C ++ | Verilog | 2015 | Alle | Ja | Ja | Ja | |
Bein hoch | U. Toronto | Akademisch | C | Verilog | 2010 | Alle | Ja | Ja | Nein | |
Maxcompiler | Maxeler | Kommerziell | Maxj | RTL | 2010 | Datenfluss | Nein | Ja | Nein | |
ROCCC | Jacquard Comp. | Kommerziell | C Subset | VHDL | 2010 | Streaming | Nein | Ja | Nein | |
Symphonie c | Synops | Kommerziell | C/C ++ | VHDL/Verilog/ Systemc | 2010 | Alle | Ja | Nein | Ja | |
Vivadohls (ehemals Autopilot von autoesl[13])) | Xilinx | Kommerziell | C/C ++/Systemc | VHDL/Verilog/ Systemc | 2013 | Alle | Ja | Ja | Ja | |
Kiwi | U. Cambridge | Akademisch | C# | Verilog | 2008 | .NETZ | Nein | Ja | Ja | |
Schimpansen | U. Washington | Akademisch | C | VHDL | 2008 | Alle | Nein | Nein | Nein | |
GCC2verilog | U. Korea | Akademisch | C | Verilog | 2011 | Alle | Nein | Nein | Nein | |
Herkules | Ajax Compiler | Kommerziell | C/Nac | VHDL | 2012 | Alle | Ja | Ja | Ja | |
Shang | U. Illinois | Akademisch | C | Verilog | 2013 | Alle | Ja | ? | ? | |
Dreizack | Los Alamos NL | Akademisch | C Subset | VHDL | 2007 | Wissenschaftlich | Nein | Ja | Nein | |
Ein Verbot- gespendet | Beschleunigen | Xilinx | Kommerziell | Matlab | VHDL/Verilog | 2006 | DSP | Ja | Ja | Ja |
C2H | Altera | Kommerziell | C | VHDL/Verilog | 2006 | Alle | Nein | Nein | Nein | |
Ctoverilog | U. Haifa | Akademisch | C | Verilog | 2008 | Alle | Nein | Nein | Nein | |
DE FACTO | U. South Cailf. | Akademisch | C | RTL | 1999 | DSE | Nein | Nein | Nein | |
Garp | U. Berkeley | Akademisch | C Subset | Bitstream | 2000 | Schleife | Nein | Nein | Nein | |
PASSEN | U. Nordwest | Akademisch | Matlab | VHDL | 2000 | Bild | Nein | Nein | Nein | |
Napa-C | Sarnoff Corp. | Akademisch | C Subset | VHDL/Verilog | 1998 | Schleife | Nein | Nein | Nein | |
Piperench | U.Carnegie M. | Akademisch | Dil | Bistream | 2000 | Strom | Nein | Nein | Nein | |
SACK | U. Colorado | Akademisch | SACK | VHDL | 2003 | Bild | Nein | Nein | Nein | |
Seegurke | U. Brigham Y. | Akademisch | Java | EDIF | 2002 | Alle | Nein | Ja | Ja | |
FUNKE | U. Cal. Irvine | Akademisch | C | VHDL | 2003 | Kontrolle | Nein | Nein | Nein |
- MATLAB HDL CODER [1] aus MathWorks[14]
- HLS-QSP aus Circuitsutra Technologies[15]
- C-to-silicon von Cadence -Designsysteme
- Gleichzeitige Beschleunigung durch gleichzeitige EDA
- Symphonie C Compiler von Synops
- Quickplay von PLDA[16]
- Poweropt aus Chipvision[17]
- Cynthesizer von Forte -Design -Systeme (jetzt Stratus HLS von Cadence -Designsysteme)
- Katapult c von Calypto -Designsystemen, Teil von Mentorgrafik Ab 2015, 16. September
- Pipelinec [2]
- Cyberworkbench von NEC[18]
- Mega -Hardware [19]
- C2R von Cebatech[20]
- Codeentwickler aus Impulsbeschleunigungstechnologien
- Herkules von Nikolaos Kavvadias[21]
- Pico von Synfora, im Juni 2010 von Synopsys erworben[22] (Pico = Programm in/Code out)
- Xpilot von der University of California, Los Angeles[23]
- Vsyn von vsyn.ru[24]
- Ngdesign aus Synflow[25]
Siehe auch
- C zu HDL
- Elektronische Designautomatisierung (EDA)
- Elektronischer Systemebene (ESL)
- Logiksynthese
- Überprüfung der hohen Ebene (HLV)
- Systemverilog
- Hardware-Beschleunigung
Verweise
- ^ Coussy, Philippe; Morawiec, Adam, Hrsg. (2008). Synthese auf hoher Ebene - Springer. doi:10.1007/978-1-4020-8588-8. ISBN 978-1-4020-8587-1.
- ^ McFarland, M.C.; Parker, A.C.; Camposano, R. (Februar 1990). "Die hochrangige Synthese digitaler Systeme". Proceedings of the IEEE. 78 (2): 301–318. doi:10.1109/5.52214. ISSN 1558-2256.
- ^ IEEE XPLORE Hochrangige Synthese: Vergangenheit, Gegenwart und Zukunft Doi 10.1109/mdt.2009.83
- ^ a b "Das 'Warum' und 'Was' der algorithmischen Synthese". EE mal. Abgerufen 2016-10-03.
- ^ "C-basierte schnelle Prototyping für die digitale Signalverarbeitung" (PDF). UBS University, Frankreich. Abgerufen 2016-10-03.
- ^ "Veröffentlichungen und Präsentationen". Bdti.com. Archiviert von das Original am 2008-04-26. Abgerufen 2016-10-03.
- ^ "Verhaltenssynthesekreuzung". EE mal. Abgerufen 2016-10-03.
- ^ "Archivierte Kopie". www.scdsource.com. Archiviert von das Original am 3. Oktober 2011. Abgerufen 13. Januar 2022.
{{}}
: CS1 Wartung: Archiviertes Kopie als Titel (Link) - ^ Mehrfacher Wortlänge hochrangiger Synthese Eurasip Journal über eingebettete Systeme
- ^ "Ein Blick in die Verhaltenssynthese". EE mal. Abgerufen 2016-10-03.
- ^ "Archivierte Kopie". www.designcon.com. Archiviert von das Original am 25. September 2010. Abgerufen 13. Januar 2022.
{{}}
: CS1 Wartung: Archiviertes Kopie als Titel (Link) - ^ Nane, R.; Sima, V. M.; Pilato, C.; Choi, J.; Fort, b.; Canis, a.; Chen, Y. T.; Hsiao, H.; Brown, S. (2016). "Eine Umfrage und Bewertung von FPGA-Synthesewerkzeugen auf hoher Ebene" (PDF). IEEE-Transaktionen zum computergestützten Design integrierter Schaltkreise und Systeme. 35 (10): 1591–1604. doi:10.1109/tcad.2015.2513673. HDL:11311/998432. ISSN 0278-0070. S2CID 8749577.
- ^ "Xilinx kauft hochrangige Synthese EDA-Anbieter". EE mal. 2011-02-05. Archiviert von das Original Am 2011-10-17. Abgerufen 2016-10-03.
- ^ "MathWorks - Hersteller von Matlab und Simulink". MathWorks.com. Abgerufen 2016-10-03.
- ^ "Systemc -basierte ESL -Methoden - systemc -basierte ESL -Methoden". Circuitsutra.com. Abgerufen 2016-10-03.
- ^ John M. an einem großen ERP & DBMS Corporation (2016-08-29). "QuickPlay: FPGA -Computing in die Massen bringen". QuickPlay.io. Abgerufen 2016-10-03.
- ^ "Archivierte Kopie". www.chipvision.com. Archiviert von das Original am 30. Mai 2002. Abgerufen 13. Januar 2022.
{{}}
: CS1 Wartung: Archiviertes Kopie als Titel (Link) - ^ "Cyberworkbench: Produkte". NEC. Abgerufen 2016-10-03.
- ^ "Archivierte Kopie". www.mega-hardware.com. Archiviert von das Original am 15. Januar 2004. Abgerufen 13. Januar 2022.
{{}}
: CS1 Wartung: Archiviertes Kopie als Titel (Link) - ^ "Archivierte Kopie". www.cebatech.com. Archiviert von das Original am 7. Mai 2005. Abgerufen 13. Januar 2022.
{{}}
: CS1 Wartung: Archiviertes Kopie als Titel (Link) - ^ "Nikolaos Kavvadias - Hercules High -Level -Synthese -Werkzeug". Nkavvadia.com. Abgerufen 2016-10-03.
- ^ "Synopsys kauft Synfora Assets". EE mal. Archiviert von das Original Am 2011-04-07. Abgerufen 2016-10-03.
- ^ "Das XPilot -System". Cadlab.cs.ucla.edu. Abgerufen 2016-10-03.
- ^ "vsyn.ru". vsyn.ru. 2016-06-16. Archiviert von das Original am 2016-06-30. Abgerufen 2016-10-03.
- ^ "Hardware -Design für alle". Synflow. Abgerufen 2016-10-03.
Weitere Lektüre
- Michael Fingeroff (2010). Hochrangiger Syntheseblaubuch. Xlibris[selbstveröffentlichte Quelle] Konzern. ISBN 978-1-4500-9724-6.
- Coussy, P.; Gajski, D. D.; Meredith, M.; Takach, A. (2009). "Eine Einführung in die hochrangige Synthese". IEEE -Design & Test von Computern. 26 (4): 8–17. doi:10.1109/mdt.2009.69. S2CID 52870966.
- Ewout S. J. Martens; Georges Gielen (2008). Modellierung und Synthese von analogen integrierten Systemen auf hoher Ebene. Springer. ISBN 978-1-4020-6801-0.
- Saraju Mohanty; N. Ranganathan; E. Kougianos & P. Patra (2008). Hochleistungs-Hochleistungssynthese für nanoskalige CMOS-Schaltungen. Springer. ISBN 978-0387764733.
- Alice C. Parker; Yosef Tirat-Gefen; Suhrid A. Wadekar (2007). "Systemebene Design". In Wai-Kai Chen (Hrsg.). Das VLSI -Handbuch (2. Aufl.). CRC Press. ISBN 978-0-8493-4199-1. Kapitel 76.
- Shahrzad Mirkhani; Zainalabedin Navabi (2007). "Systemebene Designsprachen". In Wai-Kai Chen (Hrsg.). Das VLSI -Handbuch (2. Aufl.). CRC Press. ISBN 978-0-8493-4199-1. Kapitel 86. deckt die Verwendung von C/C ++, Systemc, TML und sogar UML ab
- Liming Xiu (2007). VLSI Circuit Design -Methodik entmystifiziert: Eine konzeptionelle Taxonomie. Wiley-ieee. ISBN 978-0-470-12742-1.
- John P. Elliott (1999). Verständnis der Verhaltenssynthese: Ein praktischer Leitfaden für hochrangiges Design. Springer. ISBN 978-0-7923-8542-4.
- Nane, Razvan;Sima, Vlad-Mihai;Pilato, Christus;Choi, Jongsok;Fort, Blair;Canis, Andrew;Chen, Yu Ting;Hsiao, Hsuan;Brown, Stephen;Ferrandi, Fabrizio;Anderson, Jason;Bertels, Koen (2016)."Eine Umfrage und Bewertung von FPGA-Synthese-Tools auf hoher Ebene". IEEE-Transaktionen zum computergestützten Design integrierter Schaltkreise und Systeme. 35 (10): 1591–1604. doi:10.1109/tcad.2015.2513673. HDL:11311/998432. S2CID 8749577.
- Gupta, Rajesh;Brewer, Forrest (2008)."Synthese auf hoher Ebene: eine Retrospektive". "Synthese auf hoher Ebene: Eine Retrospektive".Springer.S. 13–28. doi:10.1007/978-1-4020-8588-8_2. ISBN 978-1-4020-8587-1.