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

Siehe auch

Verweise

  1. ^ 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.
  2. ^ 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.
  3. ^ IEEE XPLORE Hochrangige Synthese: Vergangenheit, Gegenwart und Zukunft Doi 10.1109/mdt.2009.83
  4. ^ a b "Das 'Warum' und 'Was' der algorithmischen Synthese". EE mal. Abgerufen 2016-10-03.
  5. ^ "C-basierte schnelle Prototyping für die digitale Signalverarbeitung" (PDF). UBS University, Frankreich. Abgerufen 2016-10-03.
  6. ^ "Veröffentlichungen und Präsentationen". Bdti.com. Archiviert von das Original am 2008-04-26. Abgerufen 2016-10-03.
  7. ^ "Verhaltenssynthesekreuzung". EE mal. Abgerufen 2016-10-03.
  8. ^ "Archivierte Kopie". www.scdsource.com. Archiviert von das Original am 3. Oktober 2011. Abgerufen 13. Januar 2022.{{}}: CS1 Wartung: Archiviertes Kopie als Titel (Link)
  9. ^ Mehrfacher Wortlänge hochrangiger Synthese Eurasip Journal über eingebettete Systeme
  10. ^ "Ein Blick in die Verhaltenssynthese". EE mal. Abgerufen 2016-10-03.
  11. ^ "Archivierte Kopie". www.designcon.com. Archiviert von das Original am 25. September 2010. Abgerufen 13. Januar 2022.{{}}: CS1 Wartung: Archiviertes Kopie als Titel (Link)
  12. ^ 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.
  13. ^ "Xilinx kauft hochrangige Synthese EDA-Anbieter". EE mal. 2011-02-05. Archiviert von das Original Am 2011-10-17. Abgerufen 2016-10-03.
  14. ^ "MathWorks - Hersteller von Matlab und Simulink". MathWorks.com. Abgerufen 2016-10-03.
  15. ^ "Systemc -basierte ESL -Methoden - systemc -basierte ESL -Methoden". Circuitsutra.com. Abgerufen 2016-10-03.
  16. ^ 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.
  17. ^ "Archivierte Kopie". www.chipvision.com. Archiviert von das Original am 30. Mai 2002. Abgerufen 13. Januar 2022.{{}}: CS1 Wartung: Archiviertes Kopie als Titel (Link)
  18. ^ "Cyberworkbench: Produkte". NEC. Abgerufen 2016-10-03.
  19. ^ "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)
  20. ^ "Archivierte Kopie". www.cebatech.com. Archiviert von das Original am 7. Mai 2005. Abgerufen 13. Januar 2022.{{}}: CS1 Wartung: Archiviertes Kopie als Titel (Link)
  21. ^ "Nikolaos Kavvadias - Hercules High -Level -Synthese -Werkzeug". Nkavvadia.com. Abgerufen 2016-10-03.
  22. ^ "Synopsys kauft Synfora Assets". EE mal. Archiviert von das Original Am 2011-04-07. Abgerufen 2016-10-03.
  23. ^ "Das XPilot -System". Cadlab.cs.ucla.edu. Abgerufen 2016-10-03.
  24. ^ "vsyn.ru". vsyn.ru. 2016-06-16. Archiviert von das Original am 2016-06-30. Abgerufen 2016-10-03.
  25. ^ "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.

Externe Links