Wiedemann, S. M. (2023). go2async: a high-level synthesis tool for asynchronous circuits based on click-elements [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2023.97424
We have already reached the sub 5nm technology for semiconductor circuits and seem to reach physical limits on smallest possible transistor sizes. To further increase computersystem performance, we can try to create dedicated hardware for specific software tasks to speed them up. This is an enormously risky task since the design process is very costly and time-sensitive. The usage of FPGAs eases this problem by using HDLs to formally describe hardware and allowing virtual prototyping. By using an additional abstractionlayer and HLS tools it is possible to enable non hardware-specialists to create hardware to speed up computer tasks.There are basically two types of digital circuits: synchronous and asynchronous. Synchronous circuits represent the everyday hardware. A global clock governs a circuit and determines the operating speed. Asynchronous circuits have promising benefits in comparison to its clocked counterpart in regards to power efficiency and physical adaptability. However, the design of clock-less circuits is way harder and often considered unfeasible without tool support.To tackle this problem, this thesis proposes a HLS tool for asynchronous circuits: go2async.Go2async is an HLS tool that parses a subset of the well-known programming language Go. The hardware creation is based on a syntax tree directed translation principle.The created hardware mimics the functionality of the input software and is based on preverified click-element structures which were specifically designed with FPGAs in mind.Go2async enables Go software developers to create asynchronous hardware without needing much knowledge about the asynchronous design process. The proposed HLStool generates VHDL code which makes it possible to simulate generated asynchronouscircuits with typical simulation programs. The thesis verifies generated asynchronouscircuits with the help of selected input functions and shows that go2async is able to automatically and successfully generate asynchronous circuits based on click-elementstructures. Additionally, it is possible for common synthesis tools to create downloadable hardware for FPGAs thus enabling usage of go2async’s generated asynchronous hardware in a real world scenario.
en
Wir haben bereits die Sub-5nm-Technologie für Halbleiterschaltungen erreicht und scheinen die physikalischen Grenzen der kleinstmöglichen Transistorgrößen zu erreichen. Um die Leistung von Computersystemen weiter zu steigern, kann versucht werden, spezielle Hardware für bestimmte Softwareaufgaben zu entwickeln, um diese zu beschleunigen. Dies ist eine äußerst riskante Aufgabe, da der Entwurfsprozess sehr kostspielig und zeitaufwändig ist. Der Einsatz von FPGAs und die Verwendung formaler Beschreibungen in Form von HDLs erleichtern diesen Prozess. Eine zusätzliche Abstraktionsebene und HLS-Tools ermöglichen es sogar, dass Nicht-Hardware-Spezialist:innen Schaltungen zur Beschleunigung von Computeraufgaben entwickeln können. Grundsätzlich gibt es zwei Arten von digitalen Schaltungen: synchrone und asynchrone.Synchrone Schaltungen stellen die alltägliche Hardware dar. Ein globaler Taktgeber steuert eine Schaltung und bestimmt die Arbeitsgeschwindigkeit. Asynchrone Schaltungen haben vielversprechende Vorteile im Vergleich zu ihrem getakteten Gegenstück in Bezug auf Leistungseffizienz und physikalische Anpassungsfähigkeit. Der Entwurf von Schaltungen ohne Taktgeber ist jedoch weitaus schwieriger und wird oft als nicht machbar angesehen,sofern keine technischen Hilfsmittel zur Verfügung stehen.Um dieses Problem in Angriff zu nehmen, wird in dieser Masterarbeit ein HLS-Tool für asynchrone Schaltungen entwickelt: go2async. Go2async ist ein HLS-Tool, welches eine Teilmenge der bekannten Programmiersprache Go parst. Die Hardware basiert auf dem Prinzip der Syntaxbaum-gerichteten Übersetzung. Die erzeugte Hardware ahmt die Funktionalität der Eingabesoftware nach und basiert auf vor verifizierten Click-Element-Strukturen, die speziell mit Blick auf FPGAs entwickelt wurden. Go2async ermöglicht esGo-Softwareentwickler:innen asynchrone Hardware zu erstellen, ohne viel Wissen über die Entwicklung asynchroner Hardware zu benötigen.Das vorgeschlagene HLS-Tool generiert VHDL-Code, das es ermöglicht, die erzeugten asynchronen Schaltungen mit typischen Simulationsprogrammen zu simulieren. Diese Masterarbeit verifiziert die generierten asynchronen Schaltungen mit Hilfe von ausgewählten Eingabe-Funktionen und zeigt, dass go2async in der Lage ist, automatisch und erfolgreich asynchrone Schaltungen auf Basis von Click-Element-Strukturen zu generieren. Zusätzlich, ist es für gängige Synthesewerkzeuge möglich, laufbare Hardware für FPGAs zu erstellen, wodurch die Nutzung der von go2async generierten asynchronen Hardware in einem realen Szenario ermöglicht wird.