Ansätze einer High-Level-Synthese in der Electronic Design Automation
- Art: Diplomarbeit
- Autor: Siegfried Puga-Reichle
- Abgabedatum: Juli 2005
- Umfang: 145 Seiten
- Dateigröße: 6,4 MB
- Note: 1,0
- Institution / Hochschule: Fachhochschule Konstanz Deutschland
- ISBN (eBook): 978-3-8324-9106-2
-
ISBN (Paperback) :
978-3-8324-9106-2 P - ISBN (CD) :978-3-8324-9106-2 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Puga-Reichle, Siegfried Juli 2005: Ansätze einer High-Level-Synthese in der Electronic Design Automation, Hamburg: Diplomica Verlag
- Schlagworte: Systembeschreibungssprache, HDL, DSP-Builder, HDVL, System C
In den Warenkorb
74,00 €
Diplomarbeit von Siegfried Puga-Reichle
Einleitung:
Die Gesellschaft wandelt sich immer mehr zu einer Informations- und Kommunikationsgesellschaft. Die Schlüsseltechnologie in dieser Entwicklung stellt die Mikroelektronik dar. Die Mikroelektronik ist heute allgegenwärtig und aus unserer Gesellschaft nicht mehr weg zu denken und sie gewinnt immer noch mehr an Bedeutung in allen Lebenslagen.
Im Jahre 2010 werden über 5 Milliarden Transistoren auf einem einzigen Chip integrierbar sein und die Entwicklungszyklen werden aus Wettbewerbsgründen immer kürzer. Das Entwurfsteam muss trotz der Komplexitätsexplosion dem Kosten- und Zeitdruck entgegenwirken. Aufgrund dessen muss sich die Entwurfsproduktivität in jedem Jahr mehr als verdoppeln, will sie der Chipentwicklung folgen.
Der ungebrochene Technologiefortschritt hat dazu geführt, dass heute ganze Systeme aus mehreren Prozessoren und komplexen Verbindungsstrukturen auf einem einzelnen Chip gefertigt werden können (SoC). Um die Komplexität dieser Systeme und mögliche Anwendungen kontrollieren zu können, bedarf es einer Automatisierung des Entwurfs auch auf höheren Entwurfsebenen (High-Level-Synthese). Die Automatisierung des Entwurfs (Electronic Design Automation, EDA) stellt deshalb den Schlüssel zur Mikroelektronik und damit zu den Systemen der Zukunft dar.
Heutiger Standard des Schaltungsentwurfs ist die Hardwarebeschreibung durch Hardwarebeschreibungssprachen (HDL), die durch CAE-Werkzeuge (Computer Aided Engineering) zur Schaltungssimulation und -synthese benützt werden. Dabei dient die Simulation der Überprüfung der Funktion des Entwurfs und die Synthese der Umsetzung der Beschreibung in eine Netzliste für die Implementierung der Schaltung auf die gewählte Zieltechnologie wie ASICs oder FPGAs. Als Hardwarebeschreibungssprachen haben sich weltweit die beiden Sprachen Verilog und VHDL etabliert.
Die Simulation und Verifikation gewinnt zunehmend immer mehr an Bedeutung, je komplexer die Schaltungen werden. Es ist nicht mehr möglich Signale Takt für Takt auf ihre Richtigkeit zu überprüfen, sondern es müssen neue Verifikationsstrategien gefunden werden. Einer davon ist die Entwicklung von HDVL- Sprachen (Hardware Description and Verification Language).
Diese Arbeit beschäftigt sich daher mit den bestehenden Problemen im Systementwurf und behandelt neue Sprachen und Werkzeuge die eine High-Level-Synthese ermöglichen.
Im ersten Teil soll die Problematik näher dargestellt werden und einen kleinen Background geschaffen werden. Nachfolgend sollen neue HDL-Sprachen vorgestellt werden, bevor ein Überblick über High-Level-Synthese-Tools gegeben werden soll.
Eine Sammlung derzeitiger Simulatoren und Back-End-Werkzeuge sollen die Tools abschließend ergänzen. Da die Herausforderung der Entwurfskomplexität nicht von einem einzelnen Unternehmen beherrschbar ist, wird auf weiterführende EDA-Organisationen und Quellen eingegangen.
Abschließend soll anhand des DSP-Builders von Altera untersucht werden wie eine High-Level-Synthese aus Matlab/Simulink nach VHDL funktioniert und wie Effizient sie arbeitet.
Zusammenfassung:
Vor dem Hintergrund des ungebremsten Wachstums der Mikroelektronik-Branche und der exponentiellen Explosion an Komplexität, Anforderungen und Time-to-market - Vorgaben wird der Einsatz moderner Entwicklungsstrategien deutlich. Da die Entwicklung von elektronischen Systemen an die Entwicklung des Halbleitermarktes gekoppelt ist, muss über eine Verkürzung der Entwicklungsdauer dem Kostendruck und Zeitdruck entgegengewirkt werden. Die Entwurfsproduktivität muss sich jährlich um das doppelte steigern, will sie mit der Chip-Entwicklung schritt halten.
Es genügt nicht mehr, mit reinen Hardwarebeschreibungssprachen eine direkte Abbildung des Systems auf einen IC zu bringen. Das Problem liegt in der langen Entwurfsdauer, die meist überproportional mit der Transistoranzahl ansteigt. Mit dem Anstieg der Entwurfskomplexität hochintegrierter Systeme steigen auch die systemspezifischen Aspekte bezüglich Laufzeiten, Verlustleistung, Chipfläche usw. Hand in Hand steigt daraus auch der Testaufwand, der überproportional mit der Gatteranzahl wächst. Es droht der zeitliche und personelle Aufwand schon in der Spezifikations- und Entwurfsphase in unzumutbarem Maße zu steigen.
Um die Komplexität heutiger Systeme und mögliche Anwendungen kontrollieren zu können (z.B. SoCs), bedarf es einer Automatisierung des Entwurfs auch auf höheren Entwurfsebenen (High-Level-Synthese). Die Automatisierung des Entwurfs (Electronic Design Automation, EDA) stellt deshalb den Schlüssel zur Mikroelektronik und damit zu den Systemen der Zukunft dar.
Die Simulation und Verifikation gewinnt zunehmend immer mehr an Bedeutung, je komplexer die Schaltungen werden. Ein neuer Ansatz im Entwurf ist die Entwicklung von HDVL- Sprachen (Hardware Description and Verification Language). In der vorliegenden Arbeit werden diverse neue Sprachen zur Systembeschreibung und High-Level-Synthese-Tools vorgestellt, mit denen ein Direkteinstieg des Entwurfes auf Systemebene ermöglicht wird. Da die Herausforderung der Entwurfskomplexität nicht von einem einzelnen Unternehmen beherrschbar ist, wird auf weiterführende EDA-Organisationen und Quellen eingegangen.
In dieser Arbeit wird mit dem High-Level-Tool, DSP-Builder von Altera, der Entwurf auf Systemebene untersucht. Als Einstiegspunkt dient dabei Matlab/Simulink. Ausgehend von der Spezifikation der Systemeigenschaften in Simulink, wird danach ein automatisierter Design-Flow bis auf die RTL-Ebene gestartet. Mit dem Front-End-Tool QuartusII kann danach die physikalische Synthese vorgenommen werden.
Als Ergebnis kann festgestellt werden, dass heutige High-Level-Synthese-Tools das Systemdesign produktiver und schneller gestalten. Der Entwurf mit Hilfe solcher Tools erscheint angenehmer und intuitiver, jedoch sollten die erzeugten Daten nochmals untersucht werden. Von blindem Vertrauen auf das Ergebnis ist abzuraten. Da vorliegend nur einfache Grundschaltungen getestet werden, kann eine Aussage wie sich diese Tools bei größeren Schaltungen verhalten nicht getroffen werden.
Abschließend ist Festzustellen, dass Grafische Lösungsansätze keine wirklichen Lösungen darstellen. Größere Bedeutung wird in Zukunft wohl den Systembeschreibungssprachen zukommen.
Inhaltsverzeichnis:
| 1. | Einleitung / Überblick | 6 |
| 2. | Hintergrund der Hardwarebeschreibungssprachen | 7 |
| 2.1 | Motivation: IC-Entwurfsverfahren | 7 |
| 2.2 | Bestehende Probleme des heutigen Systementwurfs | 8 |
| 2.3 | Entwurfssichten | 11 |
| 2.4 | Entwurfsebenen | 12 |
| 2.4.1 | Systemebene | 12 |
| 2.4.2 | Algorithmische Ebene | 12 |
| 2.4.3 | Register-Transfer-Ebene | 12 |
| 2.4.4 | Logikebene | 12 |
| 2.4.5 | Schaltkreisebene | 13 |
| 2.5 | Hardware und Software Lösungen | 14 |
| 2.6 | Bedeutung der HW/SW-Architektur auf den einzelnen Abstraktionsebenen | 16 |
| 2.6.1 | Abstraktion | 16 |
| 2.6.2 | Beschreibungssprachen / Werkzeuge | 16 |
| 2.7 | Standardtechnologie ASIC | 17 |
| 2.8 | Besondere Bedeutung/Stellenwert des FPGA | 19 |
| 2.9 | Herstellungsprozess von digitalen integrierten Schaltkreisen | 21 |
| 2.10 | Probleme der Entwurfskomplexität hoch integrierter Systeme | 23 |
| 2.11 | Folgerungen zur marktgerechten Verkürzung der Entwurfsdauer | 24 |
| 2.12 | Effizienzsteigerung im Entwurf mittels grafischer HDL – Programmierung | 26 |
| 2.13 | Moderner Design Flow mittels grafischer HDL | 27 |
| 3. | HDL – Design - Sprachen | 28 |
| 3.1 | VHDL | 28 |
| 3.1.1 | Aufbau | 28 |
| 3.1.2 | Anwendung der VHDL | 29 |
| 3.2 | Verilog | 30 |
| 3.2.1 | Unterschiede von VHDL und Verilog | 30 |
| 3.3 | Sonstige HDL-Sprachen | 31 |
| 4. | Systembeschreibungssprachen (System-Level-Entwurf | 32 |
| 4.1 | SystemC | 32 |
| 4.1.1 | SystemC im Überblick | 34 |
| 4.1.2 | Vergleich VHDL und SystemC | 34 |
| 4.2 | SpecC | 38 |
| 4.3 | Superlog | 38 |
| 4.4 | Handel-C | 39 |
| 4.5 | PSL - Property Specification Language | 39 |
| 4.6 | SystemVerilog | 39 |
| 4.7 | VHDL-200x | 40 |
| 4.8 | Verilog-AMS | 40 |
| 4.9 | VHDL-AMS | 41 |
| 4.10 | Matlab/Simulink | 42 |
| 5. | High-Level-Synthese-Tools | 43 |
| 5.1 | Speedchart | 44 |
| 5.2 | Visual HDL von Summit | 44 |
| 5.3 | Visual Elite / FastC von Summit | 45 |
| 5.4 | Statemate von I-Logix | 46 |
| 5.5 | HDL Designer Series von Mentor Graphics | 47 |
| 5.6 | DSP-Builder von Altera | 48 |
| 5.7 | DK Design Suite von Celoxica | 49 |
| 5.8 | System Generator for DSP von Xilinx | 50 |
| 5.9 | AccelChip DSP Synthesis von AccelChip | 51 |
| 5.10 | Synplify DSP von Synplicity | 52 |
| 5.11 | Discovery Verification Platform von Synopsys | 53 |
| 5.12 | Catapult C Synthesis von Mentor Graphics | 54 |
| 5.13 | Agility Compiler von Celoxica | 55 |
| 5.14 | CoDeveloper von Impulse Accelerated Technologies | 56 |
| 5.15 | Filter Design HDL Coder 1.2 | 57 |
| 6. | Simulations-Programme | 58 |
| 7. | Design-Entry-Tools | 62 |
| 8. | Weiterführende EDA-Organisationen und LINKs | 65 |
| 8.1 | EDA-Organisationen | 65 |
| 8.2 | Konferenzen | 67 |
| 8.3 | Online-Elektronik-Magazine | 68 |
| 9. | Automatische Synthese von VHDL mit dem DSP-Builder | 69 |
| 9.1 | DSP-Builder | 69 |
| 9.1.1 | System Voraussetzungen | 69 |
| 9.1.2 | Installationsprozess unter Windows | 70 |
| 9.1.3 | Arbeiten mit dem DSP-Builder | 71 |
| 9.1.4 | Einführendes Beispiel | 72 |
| 9.2 | Quartus II | 74 |
| 9.3 | Verifikation des DSP-Builder mit händischem VHDL- Codes | 75 |
| 9.3.1 | Beispiel 1: Addier- und Multiplizier-Werk | 75 |
| 9.3.2 | Beispiel 2: Zähler | 78 |
| 9.3.3 | Beispiel 3: 8 Point Radix 8 DIT FFT | 81 |
| 9.4 | Ergebnis der High-Level Synthese | 83 |
| 10. | Zusammenfassung | 85 |
| 11. | Abbildungsverzeichnis | 86 |
| 12. | Tabellenverzeichnis | 89 |
| 13. | Stichwortverzeichnis | 90 |
| 14. | Quellenverzeichnis | 96 |
| A. | SystemVerilog Support | 98 |
| B. | DSP-Builder Design-Code | 101 |
| B I | VHDL-Code des Beispiel 1 (AddMultWerk) aus Kapitel 9.3.1 | 101 |
| B I-I | Händischer VHDL-Code des Addier-/Multiplizier- Werk | 101 |
| B I-II | Fitter-Ergebnis-File des AddMultWerk (händisch generiertes VHDL) | 101 |
| B I-III | Timing-Ergebnis-File des AddMultWerk (händische generiertes VHDL) | 102 |
| B I-IV | Aus dem DSP-Builder generierter VHDL-Code des Addier-/Multiplizier- Werk | 103 |
| B I-V | Fitter-Ergebnis-File des AddMultWerk (DSP-Builder VHDL) | 105 |
| B I-VI | Timing-Ergebnis-File des AddMultWerk (DSP-Builder generiertes VHDL) | 105 |
| B II | VHDL-Code des Beispiel 2 (Zähler) aus Kapitel 9.3.2 | 107 |
| B II-I | Händischer VHDL-Code des Zählers | 107 |
| B II-II | Fitter-Ergebnis-File des Zählers (händische generiertes VHDL) | 108 |
| B II-III | Timing-Ergebnis-File des Zählers (händische generiertes VHDL) | 108 |
| B II-IV | Aus dem DSP-Builder generierter VHDL-Code des Zählers | 110 |
| B II-V | Fitter-Ergebnis-File des Zählers (DSP_Builder generiertes VHDL) | 112 |
| B II-VI | Timing-Ergebnis-File des Zählers (DSP_Builder generiertes VHDL) | 112 |
| B III | VHDL-Code des Beispiel 3 (8er FFT) aus Kapitel 9.3.3 | 114 |
| B III-I | Aus dem DSP-Builder generierter VHDL-Code der 8er-FFT | 114 |
| B III-II | Fitter-Ergebnis-File der 8er-FFT (DSP_Builder generiertes VHDL) | 131 |
| B III-III | Timing-Ergebnis-File der 8er-FFT (DSP_Builder generiertes VHDL) | 131 |
| C. | Visual HDL: Beispielprogramme, VHDL-Code automatisch synthetisiert aus grafischen Spezifikationen. [27] | 133 |
| C I | Multiplizierwerk | 133 |
| C II | Steuerpfad syncron | 136 |
| C III | Steuerpfad asyncron | 139 |
| C IV | Ampel | 142 |
Verilog ist das Pendant zu VHDL, jedoch sind sie nicht gleichzusetzen da sie keine gleichwertigen Hardwarebeschreibungssprachen sind. Aber sie besitzen mehr Gemeinsamkeiten als Unterschiede. Vorreiter von Verilog waren HILO-2, eine Sprache zur Beschreibung simulierbarer Gatter- Modelle und OCCAM, eine Programmiersprache zur Beschreibung paralleler Prozesse. Die Syntax von Verhaltensmodellen erinnert an C. 1984 entstand Verilog zur Simulation von Gattermodellen. 1987 fand dann die Erweiterung auf die RTL-Ebene statt. Nach der Erweiterung für die Verhaltensbeschreibung im Jahre 1989 wurde Verilog 1995 nach IEEE 1364 Standardisiert und findet seither vor allem in den USA große Verbreitung und Bedeutung als Hardwarebeschreibungssprache. Die grundlegenden Objekte einer Verilog- Beschreibung sind in Abb. 3-4 zusammengestellt. Wie auch in VHDL können Schaltungen mittels Verilog in den drei Methoden: Verhalten, Struktur und Datenfluss beschrieben werden. Abb. 3-5 zeigt die unterschiedlichen Programmierstile in Verilog anhand eines Halbaddierers. x x x x x x [...]
Entstanden ist VHDL (VHSIC (Very High Speed Integrated Circuit) Hardware Description Language) zu Beginn der 80er Jahre im Auftrag der US-Regierung. Im Rahmen des VHSICProgramms in den USA, dessen Ziel die Entwicklung einer Hardwarebeschreibungssprache zur unmissverständlichen Dokumentation von elektronischen Systemen war. Zu dieser Zeit entwickelten eine Reihe von Firmen VHSIC- Schaltungen für das Department of Defence. Jede dieser Firmen nutzte hierfür eine andere Beschreibungssprache um ihre Schaltungen zu entwickeln und zu beschreiben. Datenaustausch, Wiederverwendung und Reproduzierbarkeit waren unter diesen Umständen sehr problematisch. [10] VHDL ist eine Hardwarebeschreibungssprache und ist nach seiner Standardisierungsphase durch die IEEE(IEEE Std 1076) weltweit akzeptierter Standard zur Dokumentation, funktionalen Simulation und zum Datenaustausch beim Entwurf digitaler Systeme [11]. Mittlerweile findet die Sprache in vielen Entwicklungsabteilungen Verwendung. Kaum ein Unternehmen wird sich dem Einsatz von VHDL beim Entwurf digitaler Hardware entziehen können. Das Einsatzgebiet von VHDL wurde im Laufe der Zeit in Richtung Synthese erweitert. Damit wurden neue, produktivere Wege in der Elektronikentwicklung eröffnet. VHDL ist eine komplizierte und mächtige Sprache, die erst nach längerem praktischem Einsatz richtig beherrscht wird. VHDL wird daher von Spöttern als „Very Hard to Deal with Language“ gedeutet. Dies mag zutreffen, wenn in die tiefen Details von VHDL, wie z.B.: Erstellung von Synthesealgorithmen, eingetaucht wird. In den letzten Jahren wurde versucht, durch Einführung so genannter „Front-End-Tools“ den Entwickler vom Erlernen und vollen Verständnis der Sprache zu entlasten. Unter „Front-End-Tools“ sind zum Beispiel die grafischen HDL-Programme zu verstehen. In den 70er und 80er Jahren wurden außer VHDL weitere komplexe HDL entwickelt, die sich mit Ausnahme von Verilog, welches vorwiegend in den USA eingesetzt wird, nicht durchsetzen konnten. In Europa ist VHDL zur bedeutendsten Hardwarebeschreibungssprache geworden. Hier wird heutzutage etwa zu 60 % VHDL und zu 40 % Verilog verwendet. [2] [...]
Wie in Abb. 2-25 zu sehen ist, liegt der Vorteil von grafischen HDL – Eingabetools darin, Schaltpläne, Datenpfade und Zustandsmaschinen direkt am Bildschirm zu zeichnen, simulieren und zu synthetisieren. Durch die Kombination verschiedener Eingabeformate, eine hierarchische Gliederung und die zweidimensionale Anordnung selbst erklärender grafischer Beschreibungselemente entsteht eine übersichtliche, gleichermaßen Personen und maschinenlesbare Form der Spezifikation, die optimal geeignet ist alle anderen Spezifikationsformen zu ersetzen bzw. zu vereinheitlichen und die gleichzeitig in einen synthetisierbaren HDL-Text kompiliert werden kann. Der Produktivitätsgewinn liegt auch bei den grafischen HDL-Programmen primär in der gesteigerten Abstraktion. Die Darstellungsform der Spezifikation nähert sich der Denkweise des Designers immer mehr an, der sich nicht mehr mit der HDLProzessverwaltung und ähnlichen, letztlich unproduktiven Formalitäten beschäftigen muss, sondern sich auf das Wesentliche beschränken kann. So wird die Ablaufsteuerung durch Zustände und Transitionen grafisch beschrieben und die Hardwarebeschreibungssprache nur noch eingesetzt, um Bedingungsabfragen, Signalzuweisungen und -operationen zu formulieren, wobei jedes der verbleibenden Elemente bei der Synthese mehr Gatter beschreibt als bei allen anderen Spezifikationsformen. Der Produktivitäts- und Abstraktionsgewinn graphischer HDL-Programmierung ist in Abb. 2-25 klar zu erkennen. Oben ist der Zustandsautomat mittels graphischer Programmierwerkzeuge dargestellt. Darunter befindet sich der dazugehörige VHDL-Code, unten das äquivalente Schematic. [6] Vorteile grafischer HDL-Tools: Integration von HDL-Browserfunktionen, grafischen Eingabe von Zustandsmaschinen und Simulation in einem Programm. Einfacher zu erlernen, komfortabler zu bedienen, wesentlich übersichtlicher und intuitiver. Kompaktere Darstellungsform. Übersetzbarkeit in synthetisierbares VHDL/Verilog personen- und maschinenlesbare Form der Spezifikation. enorme Erhöhung des Produktivitätsgewinns Seite 26 von 147 [...]
In den Warenkorb
74,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832491062
Arbeit zitieren:
Puga-Reichle, Siegfried Juli 2005: Ansätze einer High-Level-Synthese in der Electronic Design Automation, Hamburg: Diplomica Verlag
Schlagworte:
Systembeschreibungssprache, HDL, DSP-Builder, HDVL, System C




