Lade Inhalt...

Ansätze einer High-Level-Synthese in der Electronic Design Automation

©2005 Diplomarbeit 148 Seiten

Zusammenfassung

Inhaltsangabe: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. […]

Leseprobe

Inhaltsverzeichnis


Inhaltsverzeichnis

1 Einleitung / Überblick

2 Hintergrund der Hardwarebeschreibungssprachen
2.1 Motivation: IC-Entwurfsverfahren
2.2 Bestehende Probleme des heutigen Systementwurfs
2.3 Entwurfssichten
2.4 Entwurfsebenen
2.4.1 Systemebene
2.4.2 Algorithmische Ebene
2.4.3 Register-Transfer-Ebene
2.4.4 Logikebene
2.4.5 Schaltkreisebene
2.5 Hardware und Software Lösungen
2.6 Bedeutung der HW/SW-Architektur auf den einzelnen Abstraktionsebenen
2.6.1 Abstraktion
2.6.2 Beschreibungssprachen / Werkzeuge
2.7 Standardtechnologie ASIC
2.8 Besondere Bedeutung/Stellenwert des FPGA
2.9 Herstellungsprozess von digitalen integrierten Schaltkreisen
2.10 Probleme der Entwurfskomplexität hoch integrierter Systeme
2.11 Folgerungen zur marktgerechten Verkürzung der Entwurfsdauer
2.12 Effizienzsteigerung im Entwurf mittels grafischer HDL – Programmierung
2.13 Moderner Design Flow mittels grafischer HDL

3 HDL – Design - Sprachen
3.1 VHDL
3.1.1 Aufbau
3.1.2 Anwendung der VHDL
3.2 Verilog
3.2.1 Unterschiede von VHDL und Verilog
3.3 Sonstige HDL-Sprachen

4 Systembeschreibungssprachen (System-Level-Entwurf
4.1 SystemC
4.1.1 SystemC im Überblick
4.1.2 Vergleich VHDL und SystemC
4.2 SpecC
4.3 Superlog
4.4 Handel-C
4.5 PSL - Property Specification Language
4.6 SystemVerilog
4.7 VHDL-200x
4.8 Verilog-AMS
4.9 VHDL-AMS
4.10 Matlab/Simulink

5 High-Level-Synthese-Tools
5.1 Speedchart
5.2 Visual HDL von Summit
5.3 Visual Elite / FastC von Summit
5.4 Statemate von I-Logix
5.5 HDL Designer Series von Mentor Graphics
5.6 DSP-Builder von Altera
5.7 DK Design Suite von Celoxica
5.8 System Generator for DSP von Xilinx
5.9 AccelChip DSP Synthesis von AccelChip
5.10 Synplify DSP von Synplicity
5.11 Discovery Verification Platform von Synopsys
5.12 Catapult C Synthesis von Mentor Graphics
5.13 Agility Compiler von Celoxica
5.14 CoDeveloper von Impulse Accelerated Technologies
5.15 Filter Design HDL Coder 1.2

6 Simulations-Programme

7 Design-Entry-Tools

8 Weiterführende EDA-Organisationen und LINKs
8.1 EDA-Organisationen
8.2 Konferenzen
8.3 Online-Elektronik-Magazine

9 Automatische Synthese von VHDL mit dem DSP-Builder
9.1 DSP-Builder
9.1.1 System Voraussetzungen
9.1.2 Installationsprozess unter Windows
9.1.3 Arbeiten mit dem DSP-Builder
9.1.4 Einführendes Beispiel
9.2 Quartus II
9.3 Verifikation des DSP-Builder mit händischem VHDL- Codes
9.3.1 Beispiel 1: Addier- und Multiplizier-Werk
9.3.2 Beispiel 2: Zähler
9.3.3 Beispiel 3: 8 Point Radix 8 DIT FFT
9.4 Ergebnis der High-Level Synthese

10 Zusammenfassung

11 Abbildungsverzeichnis

12 Tabellenverzeichnis

13 Stichwortverzeichnis

14 Quellenverzeichnis

ANHANG A: SystemVerilog Support

ANHANG B: DSP-Builder Design-Code
ANHANG B I: VHDL-Code des Beispiel 1 (AddMultWerk) aus Kapitel 9.3.1
ANHANG B I-I: Händischer VHDL-Code des Addier-/Multiplizier- Werk
ANHANG B I-II: Fitter-Ergebnis-File des AddMultWerk (händisch generiertes VHDL)
ANHANG B I-III: Timing-Ergebnis-File des AddMultWerk (händische generiertes VHDL)
ANHANG B I-IV: Aus dem DSP-Builder generierter VHDL-Code des Addier-/Multiplizier- Werk
ANHANG B I-V: Fitter-Ergebnis-File des AddMultWerk (DSP-Builder VHDL)
ANHANG B I-VI: Timing-Ergebnis-File des AddMultWerk (DSP-Builder generiertes VHDL)
ANHANG B II: VHDL-Code des Beispiel 2 (Zähler) aus Kapitel 9.3.2
ANHANG B II-I: Händischer VHDL-Code des Zählers
ANHANG B II-II: Fitter-Ergebnis-File des Zählers (händische generiertes VHDL)
ANHANG B II-III: Timing-Ergebnis-File des Zählers (händische generiertes VHDL)
ANHANG B II-IV: Aus dem DSP-Builder generierter VHDL-Code des Zählers
ANHANG B II-V: Fitter-Ergebnis-File des Zählers (DSP_Builder generiertes VHDL)
ANHANG B II-VI: Timing-Ergebnis-File des Zählers (DSP_Builder generiertes VHDL)
ANHANG B III: VHDL-Code des Beispiel 3 (8er FFT) aus Kapitel 9.3.3
ANHANG B III-I: Aus dem DSP-Builder generierter VHDL-Code der 8er-FFT
ANHANG B III-II: Fitter-Ergebnis-File der 8er-FFT (DSP_Builder generiertes VHDL)
ANHANG B III-III: Timing-Ergebnis-File der 8er-FFT (DSP_Builder generiertes VHDL)

ANHANG C: Visual HDL: Beispielprogramme, VHDL-Code automatisch synthetisiert aus grafischen Spezifikationen. [27]
ANHANG C I: Multiplizierwerk
ANHANG C II: Steuerpfad syncron
ANHANG C III: Steuerpfad asyncron
ANHANG C IV: Ampel

1 Einleitung / Überblick

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 sollen 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.

2 Hintergrund der Hardwarebeschreibungssprachen

Seit vielen Jahren besteht eine große Dynamik im Entwurf von Digitalschaltungen und die Entwurfsverfahren wandeln sich ständig. Früher wurden integrierte Schaltungen mit graphischen Rechner-Werkzeugen in Form von Schaltplänen manuell erstellt. Dazu mussten die Grundelemente der Schaltung - logische Gatter, die in einer Bibliothek zur Verfügung stehen - bzw. deren Symbole ausgewählt, auf einem Schaltplan platziert und anschließend miteinander verbunden werden. Auf diese Weise konnten zunächst einfache Module generiert und mit diesen wiederum komplexere Schaltungen zusammengesetzt werden, was einem sog. Bottom-Up Entwurf entspricht. Dieser Prozess konnte bei umfangreichen Schaltungen sehr viel Zeit in Anspruch nehmen. Darüber hinaus war ein derartiger Schaltungsentwurf wenig flexibel gegenüber Änderungen, die wiederum ein mühsames Umzeichnen der Pläne erforderlich machten.

2.1 Motivation: IC-Entwurfsverfahren

Die heutige Situation beim Entwurf elektronischer Systeme erfordert jedoch den Umgang mit immer komplexeren Aufgabenstellungen, deren Integration durch die gestiegenen Packungsdichten ermöglicht wird. Um dem wachsenden Konkurrenzdruck und den Anforderungen der Kunden genügen zu können, ist zusätzlich eine kurze Entwicklungszeit ein entscheidender Faktor. Auch wird versucht, einmal generierte Funktionsblöcke bzw. Module in neuen Systemen wieder zu verwenden, was eine technologieunabhängige Beschreibung erforderlich macht.

Durch diese Randbedingungen wird heute die Entwicklung von Digitalschaltungen streng methodisch als Top - Down Entwurf vorgenommen. Zum Einsatz kommen hierbei Hardware-Beschreibungssprachen (HDL - Sprachen), die eine Modellierung des Systems auf vielen Abstraktionsebenen ermöglichen. Bedingt durch die beim Top - Down Entwurf ständig durchgeführte, schrittweise Verfeinerung müssen, angefangen von der Systemspezifikation über eine Beschreibung der Algorithmen und deren Aufteilung in Funktionsblöcke bis hin zu einer Gatternetzliste, alle Ebenen mit einer solchen Sprache realisiert werden können. Wichtiger Punkt im heutigen Entwurfsprozess ist die Unterstützung durch Synthesewerkzeuge, die auf der Grundlage einer Verhaltensbeschreibung eine Gatternetzliste automatisch erstellen. Dies setzt jedoch eine normierte Beschreibungssprache voraus. Des Weiteren soll ein damit modelliertes System in verschiedenen Abstraktionsebenen simulierbar sein um schon in einem frühen Stadium der Entwicklung Systemfehler zu entdecken.

Es gibt viele verschiedene Ansätze all diese Forderungen in einer Sprache zu vereinen. Eine davon ist die Hardwarebeschreibungssprache VHDL. VHDL (V HSIC H ardware D escription L anguage; VHSIC (V ery H igh S peed I ntegrated C ircuit)) erfüllt all diese Anforderungen. Es verfügt über Konstrukte zur Beschreibung von nebenläufigem oder sequentiellem Verhalten von Digitalschaltungen mit oder ohne Timing auf einer Vielzahl von Abstraktionsebenen. Auch besteht die Möglichkeit, durch Verschalten von Submodulen einen hierarchischen Entwurf aufzubauen. Durch die Normierung als IEEE Standard unterstützen alle wichtigen Entwurfswerkzeuge diese Sprache weshalb sie sich auch gut als Format zum Datenaustausch eignet. [1]

2.2 Bestehende Probleme des heutigen Systementwurfs

Elektronikkomponenten und die daraus aufgebauten informationsverarbeitenden Komponenten sehen sich ständig wachsenden Anforderungen entgegen. Gleichermaßen bezieht sich dies auch auf die Leistungsfähigkeit ihrer Prozessschnittstellen, die Komplexität und Verarbeitungsgeschwindigkeit der realisierten Steuer-, Regler- und Signalverarbeitungsfunktionen sowie die Flexibilität einer integrierten Netz- oder Systemschnittstelle. Ursachen liegen darin, dass bei vielen technisch hochwertigen Produkten eine Verdrängung mechanischer, elektrischer oder fluidischer Lösungen durch elektronische und informationsverarbeitende Systeme erfolgt. Umgekehrt bedeutet dies, dass viele mechanische, elektrische oder fluidische Funktionen, die von ihren physikalischen Phänomenen meistens als zeit- und amplitudenkontinuierliche Größen zu beschreiben sind, in informationsverarbeitende Komponenten möglichst wirklichkeitsgetreu abgebildet werden müssen.[4]

Rapide zunehmende Komplexität, Funktionsvielfalt und Leistungsanforderungen von elektronischen Systemen finden sich nahezu in jedem Bereich. Nachfolgend soll ein kleiner Überblick über die gestiegene Komplexität von Systemen unterschiedlicher Bereiche aufgezeigt werden.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-2 Mobiltelefon, Megapixel-Kamera, www-Browser, MP3-Player, PDA, Diktiergerät, Computerkonsole, ...

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-3 Unterhaltungselektronik wird immer kleiner, Leistungsfähiger und billiger

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-4 Leistungsfähige Systeme werden immer kleiner

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-5 Anforderungen an die Elektronik steigen ständig an

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-6 Die Informationstechnologie ist aus unserer Welt nicht mehr weg zu denken

Durch die zunehmende Komplexität und die Zahl der Aufgaben eines elektronischen Systems werden jedoch auch die Entwurfsaufgaben zunehmend anspruchsvoller. Zusätzlich wird eine sehr geringe Zeit vom Beginn der Entwicklung bis zur Marktreife (engl. time-to-market) gefordert, die ohne aufwendige nachträgliche Korrekturen am Endprodukt in ihrer Einsatzumgebung auskommen müssen. Die schnell wachsende Komplexität der Entwurfsaufgaben ist durch den hohen Anteil an Wechselwirkungen für den Menschen nur noch schwer nachzuvollziehen. Auch die Qualitätssicherung gestaltet sich als zunehmendes Problem. Um Entwurfsfehler in frühen Phasen zu vermeiden, werden verstärkt formale Hilfsmittel zur Spezifikation und zur abstrakten Modellierung verwendet. Mit den formalen Hilfsmitteln finden auch die Simulation und formale Verifikation der Modellierung Einzug in den Entwurf elektronischer Systeme. Diese Techniken sind in vielen Jahren gewachsen.

Deswegen existieren mehrere parallele Beschreibungsformen, mit denen dieselbe Funktionalität modelliert werden kann. Zusätzlich sind die Beschreibungsformen sowie Simulation und formale Verifikation oftmals auf einzelne Werkzeuge festgelegt, die keine oder eine eingeschränkte Interaktion mit weiteren Werkzeugen erlauben.

Diese parallele Simulation und Verifikation im Systementwurf stellt ein Problem dar, da keine Durchgängigkeit der einzelnen Ebenen gegeben ist. In jeder Systemebene kommen so beispielsweise unterschiedliche Beschreibungssprachen vor, deren Interaktion mittels weiterer Werkzeuge hergestellt werden kann, vgl. Abb. 2-7. Diese Problematik verkompliziert den gesamten Systementwurf unnötig. Ein neuer Ansatz, unter vielen, versucht mittels der HDL -Sprache SystemC eine Durchgängigkeit des gesamten Systementwurfs zu ermöglichen. Die verschiedenen Ansätze der Durchgängigkeit werden in Kapitel 4 Systembeschreibungssprachen (System-Level-Entwurf näher erläutert.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-7 Durchgängigkeitsproblem im (HW/SW) Systementwurf.

2.3 Entwurfssichten

Die Entwicklung elektronischer Systeme ist bei der heutigen Komplexität und den genannten Anforderungen nur durch eine strukturierte Vorgehensweise beherrschbar. Idealerweise wird, ausgehend von einer Spezifikation auf Systemebene, die Schaltungsfunktion partitionieren und die grundsätzlichen Funktionen den einzelnen Modulen zugeordnet. Schrittweise wird der Entwurf weiter strukturiert und zunehmend mit Details der Implementierung versehen, bis die für die Fertigung des elektronischen Systems notwendigen Daten vorliegen. Dies können Programmierdaten für Logikbausteine, Layouts für Leiterplatten oder Datensätze für die IC-Fertigung sein. Im Entwurf elektronischer Systeme wird üblicherweise in die drei Sichtweisen Verhalten, Struktur und Geometrie unterschieden. Diese Einteilung wird durch das sog. Y-Diagramm verdeutlicht (Abb. 2-8):

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-8 Y-Diagramm nach Gajski-Walker und die einzelnen Abstraktionsebenen

Gleichzeitig zu den drei Sichtweisen, die durch die Äste im Y-Diagramm repräsentiert werden, sind auch die verschiedenen Abstraktionsebenen durch Kreise mit unterschiedlichen Radien dargestellt. Ein großer Radius bedeutet hohe Abstraktion. Es kann nun vereinfacht der Entwurf elektronischer Systeme als eine Reihe von Transformationen (Wechsel der Sichtweise auf einem Abstraktionskreis) und Verfeinerungen (Wechsel der Abstraktionsebene innerhalb einer Sichtweise) im Y-Diagramm dargestellt werden. Beginnend auf dem Verhaltensast in der Systemebene wird der Entwurf durch Verfeinerungs- und Syntheseschritte bis hin zum Layout auf dem geometrischen Ast durchgeführt. Ein "Place- and Route" - Werkzeug für Standardzellenentwürfe überführt beispielsweise eine strukturale Beschreibung in der Logikebene (Gatternetzliste) in eine geometrische Beschreibung in der Schaltkreisebene (IC-Layout). Das reine Top-Down- Vorgehen (Entwicklung in Richtung Kreismittelpunkt) kann dabei nicht immer konsequent beibehalten werden. Verifikationsschritte zwischen den einzelnen Ebenen zeigen Fehler beim Entwurf auf. Gegebenenfalls muss das jeweilige Entwurfsergebnis modifiziert, der Entwurfsschritt wiederholt oder sogar auf höherer Abstraktionsebene neu eingesetzt werden. Dies wird auch als "Jojo-Design" bezeichnet. [10]

2.4 Entwurfsebenen

2.4.1 Systemebene

Die Systemebene beschreibt die grundlegenden Charakteristika eines elektronischen Systems. Sie dient der Partitionierung der gesamten Schaltungsfunktion. In der Beschreibung werden typische Blöcke, wie Speicher, Prozessoren und Interface-Einheiten verwendet. Diese Module werden durch ihre Funktionalität (im Falle eines Prozessors z.B. durch dessen Befehlssatz), durch Protokolle oder durch stochastische Prozesse charakterisiert. Auf dieser Ebene dominieren meist noch die natürliche Sprache und Skizzen als Beschreibungsmittel. Zunehmend setzen aber schon auf dieser Ebene neue Beschreibungssprachen an.

2.4.2 Algorithmische Ebene

Auf dieser Ebene wird ein System oder eine Schaltung durch nebenläufige (d.h. parallel ablaufende) Algorithmen beschrieben. Typische Beschreibungselemente dieser Ebene sind Funktionen, Prozeduren, Prozesse und Kontrollstrukturen. Auf der Algorithmischen Ebene wird ein elektronisches System in der strukturalen Sicht durch allgemeine Blöcke beschrieben, die über Signale miteinander kommunizieren. In der Verhaltenssicht dagegen wird die Beschreibung des Verhaltens durch eine algorithmische Darstellung mit Variablen und Operatoren vorgenommen. Es wird kein Bezug zur späteren Struktur der Realisierung (Hardwarepartitionierung) gegeben. Desgleichen werden auch keine zeitlichen Details durch Takt- oder Rücksetzsignale eingeführt.

2.4.3 Register-Transfer-Ebene

Bei Beschreibungen auf der Register-Transfer-Ebene ("Register Transfer Level", RTL) werden die Eigenschaften einer Schaltung durch Operationen (z.B. Addition) und durch den Transfer der verarbeiteten Daten zwischen Registern spezifiziert. Typischerweise werden in die Beschreibung Takt- und Rücksetzsignale integriert. Die einzelnen Operationen sind dann den Werten oder Flanken dieser Signale zugeordnet, so dass die zeitlichen Eigenschaften schon relativ genau definiert werden können. In der strukturalen Sicht werden Elemente wie Register, Codierer, Multiplexer oder Addierer durch Signale miteinander verknüpft. In der Verhaltenssicht finden sich vorwiegend Beschreibungen in Form von endlichen Automaten. Die Grobeinteilung der Chipfläche wird in der geometrischen Sicht zu einem sog. Floorplan verfeinert.

2.4.4 Logikebene

Auf der Logikebene werden die Eigenschaften eines elektronischen Systems durch logische Verknüpfungen und deren zeitliche Eigenschaften (i.a. Verzögerungszeiten) beschrieben. Der Verlauf der Ausgangssignale ergibt sich dabei durch die Anwendung dieser Verknüpfungen auf die Eingangssignale. Die Signalverläufe sind wertdiskret, d.h. die Signale nehmen nur bestimmte, vordefinierte Logikwerte (z.B. ´low´, ´high´, ´undefined´) an. In der strukturalen Sichtweise wird der Elektronikentwurf durch eine Zusammenschaltung der Grundelemente (AND-, OR-, XOR-Gatter, Flip-Flops, etc.) dargestellt. Diese Grundelemente werden dabei von einer Bibliothek zur Verfügung gestellt. Innerhalb dieser Bibliothek sind die Eigenschaften der Grundelemente definiert. Diese bilden die Charakteristika der einzelnen Zellen der Zieltechnologie in vereinfachter Form nach. Der Übergang von der Verhaltenssichtweise auf die strukturale und technologiespezifische Sichtweise erfolgt durch ein Syntheseprogramm.

2.4.5 Schaltkreisebene

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-9 Graphische Zusammenfassung der Entwurfsebenen und deren Bedeutung

Auch auf der Schaltkreisebene besteht die strukturale Sichtweise aus einer Netzliste. Diesmal sind allerdings keine logischen Gatter kombiniert, sondern elektrische Bauelemente wie Transistoren, Kapazitäten und Widerstände. Einzelne Module werden nun nicht mehr durch eine logische Funktion mit einfachen Verzögerungen beschrieben, sondern durch ihren tatsächlichen Aufbau aus den Bauelementen. In der geometrischen Sicht werden elektronische Systeme durch Polygonzüge dargestellt, die beispielsweise unterschiedliche Dotierungsschichten auf einem Halbleiter definieren. Die Verhaltenssicht verwendet vornehmlich Differentialgleichungen zur Modellierung des Systemverhaltens. Dementsprechend aufwendig und rechenzeitintensiv sind die Simulationsalgorithmen. Die Signale auf Schaltkreisebene können im Gegensatz zur Logikebene prinzipiell beliebige Werte annehmen und weisen einen kontinuierlichen Verlauf über der Zeit auf, d.h. sie sind zeit- und wertkontinuierlich.

Jede der vorgestellten Entwurfsebenen hat ihren Zweck. Während auf den oberen Ebenen hohe Komplexitäten gut beherrschbar sind, bieten die unteren Ebenen mehr Details und höhere Genauigkeit (vgl. Abb. 2-9). So eignen sich die Systemebene und die Algorithmische Ebene für die Dokumentation und Simulation des Gesamtsystems, die Register-Transfer- Ebene für die Blocksimulation und synthesegerechte Modellierung und die Logikebene für Simulationen, mit denen beispielsweise die maximale Taktrate einer Schaltung bestimmt wird oder unerwünschte Impulse ("Spikes") detektiert werden. Auf jeder Ebene wird nur die benötigte Genauigkeit geboten; unwichtige Details sind nicht sichtbar (Abstraktionsprinzip). [10]

2.5 Hardware und Software Lösungen

In Abb. 2-10 sind die unterschiedlichen Entwurfsalternativen für elektronische Systeme dargestellt. Diese bestehen im Allgemeinen aus anwendungsspezifischen, integrierten Schaltungen und/oder programmierbaren Standardbausteinen mit Speichern oder Zusatzhardware.

Diese Systeme zeichnen sich, im Gegensatz zur klassischen Datenverarbeitung, durch eine intensive Interaktion mit der Umgebung und fest definierten Aufgaben mit zeitlichen Randbedingungen aus. Speziell der Bereich der Mikroelektronik erfordert immer komplexere Funktionalität, die in einem wachsenden internationalen Wettbewerb mit strengen Richtlinien zu entscheidenden Wettbewerbsvorteilen führen kann. Die Einhaltung der Spezifikationsvorgaben und die Erfüllung gesetzlicher Vorschriften sind insbesondere für elektronische Systeme mit “harten” Echtzeitbedingungen wichtig. Bei der Verletzung der Echtzeitbedingungen können schwere Störungen auftreten, die von der Zerstörung eines Werkstücks bis zur Gefährdung von Mensch und Umwelt führen können.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-10 Entwurfsalternativen von elektronischen Systemen [9]

Die Implementierung von elektronischen Systemen und deren Funktionen unter Randbedingungen, wie Quantisierungs- oder Diskretisierungsfehlern bzw. dem exakten Einhalten von Echtzeitbedingungen gehören zu den Grundaufgaben der Informationsverarbeitung. Hinzu kommen weitere Randbedingungen wie die Äquidistanz der Abtastung oder das Abtasttheorem von Shannon [5]. Letzteres besagt, dass ein Signal mindestens mit dem Doppelten der höchsten auftretenden Frequenz abzutasten ist und ist somit der Gradmesser für die Einhaltung der Echtzeitbedingungen. Diese resultieren ausschließlich daraus. Jedoch bereitet gerade deren Einhaltung bei hochdynamischen Signalen Probleme und zwingt zur ständigen Erhöhung der Rechenleistung. Grundsätzlich besteht die

Möglichkeit, Informationen sequentiell (Software-Lösung) oder parallel (Hardware-Lösung) zu verarbeiten.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-11 Abhängigkeit zwischen Abtastfrequenz und der Anzahl der erreichbaren Operationen

Ein Prozessor macht dies sequentiell, da nur eine begrenzte Anzahl von Verarbeitungselementen zur Verfügung steht. Somit ist die Anzahl der pro Tastperiode durchführbaren Operationen immer nach oben begrenzt und nimmt mit steigender Abtastfrequenz ab. Abb. 2-11 stellt dies qualitativ dar. In parallel arbeitenden Technologien, wie PLDs und ASICs, können jedoch theoretisch beliebig viele Verarbeitungselemente implementiert werden. Daher ist dort die Anzahl der pro Tastperiode durchführbaren Operationen theoretisch unbegrenzt.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-12 Vergleich Flexibilität im Verhältnis zu den Kosten aus Energieverbrauch, Chipoberfläche und Berechnungszeit [8]

Werden typische Signalverarbeitungsalgorithmen verglichen, die auf verschiedenen Plattformen wie DSP, FPGA, ASIC oder optimierte ICs implementiert wurden ist der Zusammenhang, in Bezug auf Flexibilität (Änderung pro Stunde) und Produkt aus Ausführungszeit, Energie-verbrauch und Chipfläche in Abb. 2-12 dargestellt. Demzufolge verbraucht ein DSP eine Million mal mehr als ein maßgeschneiderter Chip (Full Custom) an „Performance“ (Berechnungszeit * Energie * Chipfläche). Da die Herstellung des Full Custom aber auch die Fertigung einschließt, dauert hier ein Designdurchlauf tausendmal länger als beim DSP. [7]

Vor dem Hintergrund solch langer Iterationszyklen ist die Wiederverwendung ausgetesteter Lösungen enorm wichtig. Sie stellt einen wesentlichen Marktvorteil dar und verkürzt die „Time to Market“ drastisch. Durch die im Einsatz geforderte Effektivität kommen in vielen Fällen nur Hardwarelösungen in Frage. Daraus ergibt sich die Forderung nach standardisierten Funktionsbibliotheken wie bei Programmiersprachen und damit die ausgetesteten Lösungen. Für den breiten Einsatz Hardwarebasierter Lösungen stellt sich somit die Forderung nach einer universellen, hersteller- und technologieunabhängigen Funktionsbibliotheken, die die Signalverarbeitung unterstützt und damit die existierenden konventionellen Hardwarebeschreibungssprachen, die auf Logik- oder Verhaltensbeschreibung beschränkt sind, ergänzt.

2.6 Bedeutung der HW/SW-Architektur auf den einzelnen Abstraktionsebenen

2.6.1 Abstraktion

Abbildung in dieser Leseprobe nicht enthalten

2.6.2 Beschreibungssprachen / Werkzeuge

Abbildung in dieser Leseprobe nicht enthalten

2.7 Standardtechnologie ASIC

Wie in Abb. 2-10 kurz die Entwurfsalternativen von elektronischen Systemen aufgezeigt wurden, soll nun im folgenden Kapitel speziell auf die ASIC – Technologie eingegangen werden.

Die Standardtechnologie des ASIC ´s gliedert sich generell in 3 Typen von ICs (vgl. auch Abb. 2-13):

- Programmierbare ASIC´s:

Die bekanntesten Vertreter sind hier der FPGA und der CPLD. Diese Chips können vom Anwender frei programmiert werden. Die allermeisten Anwendungen sind hier rein digitaler Natur.

- Semi Custom ASICs:

Das Gate Array ist in dieser Klasse die wichtigste Linie. Diese Chips werden von der Fabrik bis zum letzten Prozessschritt vorgefertigt. Der Anwender muss nur noch die einzelnen Blöcke/Transistoren des Gate Arrays nach seiner Vorgabe konfigurieren/verbinden. Diese Entwicklung von Semi-Custom ASICs wird in den meisten Fällen von Design Centern durchgeführt. Mit dieser Klasse können digitale wie einfache analoge Anwendungen implementiert werden.

- Full Custom ASICs:

Diese Klasse wird für sehr komplexe digitale, analoge, wie auch mixed mode Anwendungen eingesetzt. Diese rein im Auftrag von einer Chip-Fabrik erstellten Chips sind fest verdrahtet, d.h. ihr innerer Aufbau ist fixiert.

Diese 3 Typen des ASIC ´s besitzen bezüglich der Kriterien Stückzahl - NRE - Kosten - Komplexität (vgl. Abb. 2-14) und Komplexität - Geschwindigkeit (vgl. Abb. 2-15) wesentliche Unterschiede. Die verschiedenen Technologien lassen sich noch nach Flächen-/Leistungseffizienz unterscheiden, die in Anwendungen von batteriebetriebenen oder für Zwecke der Raumfahrt besondere Bedeutung einnehmen (vgl. Abb. 2-16 ).

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-13 Technologiebaum des ASIC´s

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-14 Zusammenhang der Kriterien: Stückzahl, NRE - Kosten und Komplexität

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-15 Abhängigkeit der Geschwindigkeit bzgl. Komplexität

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-16 Darstellung der Flächen-/Leistungseffizienz

Tabelle 2-1 soll die Eigenschaften des ASICs in Relation mit Standardbauelementen wie z.B. Mikroprozessoren nochmals darstellen.

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 2-1 Zusammenfassung der einzelnen Technologien mit deren Eigenschaften

2.8 Besondere Bedeutung/Stellenwert des FPGA

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-17 FPGA Aufbau

Ein FPGA (F ield P rogrammable G ate A rray) ist ein frei programmierbarer Logikschaltkreis. Wie in Abb. 2-17 prinzipiell zu sehen ist, besteht ein FPGA aus einer Matrix-Struktur aus konfigurierbaren Logikblöcken, Metalllayern zur Verbindung der CLBs (Configurable Logic Blocks) und Ein- und Ausgabeblöcke (I/O-Blöcke) zur Impedanz- und Logikanpassung der I/O-Pins des Gehäuses (die für die Verbindung zur Außenwelt notwendig sind). Die Logikblöcke werden auch als CLB bezeichnet. Des Weiteren existieren SRAM -Blöcke, für die Speicherung von Daten. Manche Anbieter stellen zusätzlich PLL s (Phase Locked Loop), DLL s (Delay Locked Loop), Taktaufbereitungen (DCM: Digital Clock Manager) zur Verfügung. Da die CLBs der FPGAs einen synchronen Takt erhalten müssen, um unkalkulierbare Laufzeitunterschiede zu vermeiden (synchrones Design), sind Taktverteilerbäume notwendig. In der Regel werden sowohl Multiplizierer oder allgemeinere Recheneinheiten, als auch komplette Prozessoren in den FPGA integriert. Aufgrund der immer größeren Komplexität und Packungsdichte eignen sich FPGAs immer mehr für echte System on a Chip (SoC) Lösungen, die Hardware- und Softwareteile auf einem Chip vereinen können. (vgl. Abb. 2-18)

Es gibt sowohl reprogrammierbare flüchtige (SRAM -basierte), nicht flüchtige reprogrammierbare (Flash basierend) als auch nur einmal programmierbare (AntiFusetechnik) FPGAs. RAM -basierte FPGAs laden ihre Hardwarekonfiguration nach Anlegen der Betriebsspannung in der Bootphase aus externen Speichern, z.B. FlashROM.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-18 FPGA als Plattform für SoC

Jeder CLB besteht aus Logikzellen, die für Operationen wie AND, OR, NOT, XOR, usw. genutzt werden können, eine Verbindungsmatrix zur Metalllayer-Verbindungsebene, sowie aus Registern. Die kombinatorische Logik wird u.a. auch durch LUTs (look up table) gebildet. Eine LUT enthält einen RAM -Speicher, dessen Programmierung alle möglichen Ausgangswert-Kombinationen zulässt. Des Weiteren werden in den CLBs auch FlipFlop-Register zur Verfügung gestellt, oft in Form von D-Latches. Die der kombinatorischen Logik nachgeschalteten Latches können genutzt oder umgangen werden. Der LUT -Speicher kann alternativ als synchrones Schieberegister oder alternativ als Speicher eingesetzt werden. Ein FPGA besteht aus sehr vielen Logikzellen. Es sind heute FPGA mit über 10 Mio. Gatteräquivalenten erhältlich.

Die Programmierung der Logikbausteine kann je nach FPGA unterschiedlich gelöst werden. Es können zwei Methoden unterscheiden werden, die es ermöglichen den FPGA mehrmals zu programmieren, und Methoden, die nur eine einmalige Programmierung zu lassen. Bei den mehrmals programmierbaren FPGAs wird die Konfiguration in Speicherzellen (z.B. SRAM, EPROM, EEPROM, Flash) gespeichert. Bei den einmalig programmierbaren FPGAs werden die physikalischen Eigenschaften der Verbindungswege permanent geändert (Antifuse-Technologie).

Vorteile gegenüber ASICs

- geringe Entwicklungskosten
- sehr kurze Implementierungszeiten
- einfach korrigier- und erweiterbar
- Anwendung als Rapid Prototyping, zur Verifikation komplexer ASIC -Designs

Nachteile gegenüber ASICs

- ab mittleren Stückzahlen höherer Stückpreis
- geringere Taktraten (max. ca. 300 MHz)
- geringere Logikdichte (ca. 10facher Flächenbedarf gegenüber ASIC gleicher Technologie)
- höherer Energiebedarf

2.9 Herstellungsprozess von digitalen integrierten Schaltkreisen

In Abb. 2-19 ist in groben Schritten der Ablauf zur Herstellung eines digitalen Schaltkreises dargestellt. Hierbei soll auf die Überprüfung der logischen Funktionen nicht eingegangen werden. Bis zur Übergabe der Fertigungsdaten an die Fabrik(Tapeout) ist dieser Prozess rein virtuell. Bei der Verwendung von PLDs/FPGAs fällt dieser Schritt weg, da das Bauelement schon vorliegt. Hier müssen vom Anwender nur noch die Konfigurationsdaten generiert werden.

Die Spezifikation beschreibt die Schaltungseingabe, die mit einer Hochsprache (Hardware Description Language) erfolgt. Daraus wird mit einem Synthesewerkzeug eine Netzliste generiert, welche nur noch eine Hierarchieebene umfasst und ausschließlich logische Elemente (Register-Transfer-Logik) enthält. Die Abbildung auf die tatsächlich in der jeweiligen Technologie vorhandenen Komponenten wird als Mapping bezeichnet. Danach werden diese optimal platziert und verbunden. Anschließend erfolgt dann bei PLDs/FPGAs die Ausgabe der Konfigurationsdaten, während bei ASICs die Daten auf Einhaltung von Fertigungsparametern (z.B. Isolationsabstand) überprüft werden. Diese Daten gehen dann an die Fabrik, in welcher die Masken für den Herstellungsprozess gefertigt werden. Damit erfolgt die eigentliche Herstellung des Dies. Dieser wird dann gebondet (mit Anschlussbeinen verbunden) und verpackt. Während der Spezifikation erfolgt schon die rein funktionale Simulation der Schaltung. Dies geschieht mittels Simulatoren für die verwendete Beschreibungssprache. Dazu wird der Quelltext kompiliert und ein komplettes Abbild der Schaltung mit allen Instanzen auf eine Ebene heruntergebrochen. Weitere Simulationen erfolgen nach dem Platzieren und Routen, dann als Timing- Simulation und seltener nach der Synthese als funktionale Simulation auf Register-Transfer-Ebene. Während der Produktion finden Tests vor zerschneiden des Wafer s und nach dem Verpacken statt. [4]

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-19 Prinzipielle Darstellung des IC Herstellungsprozess

Wird die Vorgehensweise bei der Entwicklung von integrierten Schaltungen betrachtet, ist festzustellen, dass sich mit zunehmender Komplexität der Bausteine der Ansatzpunkt beim Chipentwurf zunehmend auf höhere Abstraktionsebenen verschoben hat.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-20 Ebenen des IC Entwurfs

In Abb. 2-20 ist der Grund hierfür Grafisch dargestellt. Die Menge an Informationen, die einen konkreten Baustein auf den unterschiedlichen Entwurfsebenen beschreibt, nimmt mit zunehmender Abstraktion auf den höheren Ebenen ab. Auf diese Weise bleibt der Entwurf zunehmend größerer Bausteine für den Entwickler handhabbar. Der Einstiegspunkt wird dabei auf immer höheren Abstraktionsebenen verschoben. Dies setzt jedoch voraus, dass mit Hilfe geeigneter Werkzeuge die Übergänge zwischen den darunterliegenden Ebene durch entsprechende Synthese- und Verifikationsmethoden automatisiert oder zumindest teilautomatisiert werden.

Die drei Hauptgebiete im IC-Herstellungsprozess sind in Abb. 2-21 näher spezifiziert:

Synthese:

Hier geht es um den direkten Entwurf der Hardware, die Erstellung und Generierung durch die Beschreibungssprachen, schematische Erzeugung oder RTL -Eingabe sowie die Optimierung des Codes, der Netzlisten oder der generellen Schaltung in Hinsicht auf anbieterspezifische Regeln, Geschwindig-keiten und die Schaltkreisfläche.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-21 Die drei Hauptgebiete im HW Design Ablauf (Synthese, Verifikation/ Simulation und Platzierung)

Simulation & Verifizierung:

Durch Analyse, Test und Prüfroutinen muss sichergestellt werden, dass der Entwurf das tut, was er soll, keine Ausnahmen auftreten können und dass es z.B. bei der Optimierung keine logik-verändernden Eingriffe gegeben hat. Des Weiteren gibt es Programme, die Fehler in einem beliebigen Entwurfsschritt aufspüren und auch automatisch beheben können (Debugging).

Platzieren, Verdrahten, Optimieren:

Die Übertragung auf Technologieebene, spezifiziert nach ASIC, CPLD oder FPGA. Legen der Leitungen und automatisches Vermeiden von Fehlern.

2.10 Probleme der Entwurfskomplexität hoch integrierter Systeme

Der Entwurf niedrig integrierter digitaler Schaltungen (< 100k Gatter) stellt noch keinen hohen Anspruch an Komplexität dar und ist beispielsweise mit der Modellierung auf Algorithmus-Ebene mit VHDL, relativ einfach.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-22 Überproportionaler Anstieg des Entwurfsaufwand für irreguläre Logik. Gegensteuern durch EDA - Maßnahmen waren erforderlich.

Wird jedoch ein größeres System modelliert entstehen viele Fehlerquellen und der Entwurfsaufwand steigt in überproportionale Höhen(vgl. Abb. 2-22). Viele Entwurfsschritte sind ermüdend und führen zu fehleranfälligen Routinearbeiten. Diese routinemäßigen Arbeiten kann nun die Entwurfsautomatisierung (EA) übernehmen um so eine Reduzierung des menschlichen Fehlerpotentials zu erreichen. Die EA erhöht die Entwurfsproduktivität und Entwurfsqualität. Diese Automatisierungsschritte im Systementwurf ist unter dem Begriff EDA (Electronic Design Automation) zusammengefasst.

Es genügt nicht mehr, eine Funktion in Transistoren umzusetzen und daraus als direkte Abbildung einen IC zu entwerfen. 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 zur Gatteranzahl wächst.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-23 Entwurfsproduktivitäts-Lücke

2.11 Folgerungen zur marktgerechten Verkürzung der Entwurfsdauer

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.

Wenn bei den Systementwürfen die Schaltungen inhaltlich immer komplexer werden, droht in der Spezifikations- und Entwurfsphase der zeitliche und personelle Aufwand in unzumutbarem Maße zu steigen. Gleichzeitig sinkt die Wahrscheinlichkeit, dass ein gefertigter Chip beim ersten Versuch fehlerfrei funktioniert, extrem schnell ab: Sie potenziert sich bei konstanter Fehlerwahrscheinlichkeit pro Gatter mit einem Komplexitätsmaß, das seinerseits exponentiell wächst. [6]

Sofern die Produktivität der Designer nicht in dem Maße gesteigert und das Fehlerrisiko pro Gatter in dem Maße reduziert werden kann, in dem der Umfang der Schaltung zunimmt, ist eine wirtschaftliche Produktentwicklung unter den beiden Faktoren Fehlerwahrscheinlichkeit und Produktivität nicht mehr gegeben. Da aber weder Fleiß noch Disziplin der Designer den Wachstumsraten der Mikroelektronik folgen können oder eine Vergrößerung der Entwicklungsmannschaft organisatorisch und kapazitiv kaum möglich ist, ist eine Revolution der Designmethoden in regelmäßigen Abständen unabdingbar (vgl. Abb. 2-24).

Einige Maßnahmen zur wirtschaftlichen Begrenzung des Entwicklungszeitraumes sind:

- massiver Rechnereinsatz zur Automatisierung des Entwurfs von ICs
- Synthese auf allen Entwurfsebenen
- Strukturierter Schaltungsentwurf
- Wahl schnell entwerfbarer und testfreundlicher Schaltungen (regelmäßige Strukturen wie ROM, PLA)
- Einsatz vorentwickelter Zellen, Module, Systeme (IP s, Design Re-Use, SoC)
- Wahl konfektionierter Entwurfsstile (Semikundenentwurf, Gate Array, Standardzellen,…)
- Zusätzlich implementierte Testhilfen

Abb. 2-24 Qualitative Darstellung der Produktivitätslücke im System-Design

Abbildung in dieser Leseprobe nicht enthalten

Im Bereich der Layouterzeugung sind diese Revolutionen – die Einführung der CAD -Programme und der automatischen Place & Route Tools – weitgehend abgeschlossen, und beim Schaltungsentwurf wird die Accellera inzwischen allgemein als Mittel zur Produktivitätssteigerung und Fehlervermeidung akzeptiert. Unter Logiksynthese wird die automatische Erzeugung von digitalen Schaltungen aus einer exakten, in einer Hardwarebeschreibungssprache verfassten Spezifiktion unter Verwendung von Entwurfs- und Optimierungsalgorithmen sowie Bibliotheken der zu verwendenden Grundelemente verstanden.

Für den Designer ergibt sich der Gewinn aus dem immer höher werdenden Abstraktionsgrad. Die rein manuelle Layouterstellung setzte eine intensive Beschäftigung mit jedem Transistor voraus. Beim Einsatz der Accellera muss nicht einmal die Gatterrepräsentation der Schaltung bekannt sein. Bei der Umsetzung der Verhaltensbeschreibung in ein Layout ist heute zumindest theoretisch ein voller Automatismus ohne Benutzereingaben und ohne Risiko möglich. Aus der Computerunterstützung („Computer Aided Design“, CAD) ist in diesem Bereich schon heute eine fast vollständige Übernahme der Arbeiten durch Computerprogramme („Electronic Design Automation“, EDA) geworden, so dass sich der Engpass beim IC-Design immer mehr zur (HDL -)Spezifikation hin verschiebt, die zusammen mit der Simulation und Fehlerbeseitigung auf dieser Ebene oft schon mehr als 75% der Arbeitszeit eines ASIC -Designs beansprucht.

Derzeit ist es jedoch bei einigen Designern noch gängige Praxis, eine Spezifikation teils verbal, teils grafisch zu formulieren und sie anschließend per Hand in eine HDL -Beschreibung umzusetzen. Dieser aufwändige Arbeitsschritt sowie die erforderliche Fehlerkorrektur in der entstandenen, unübersichtlichen Textdatei verlangen auch hier einschneidende Veränderungen. Angesichts der ständig steigenden Komplexität der Schaltungen werden heute erheblich bessere Spezifikationsformen benötigt als zig-tausend Zeilen lange VHDL-Beschreibungen, um durch höhere Abstraktion mit geringerem Aufwand mehr Gatter entwerfen zu können. [6]

Realisierung mittels VHDL genügt nicht mehr!

Modernere Darstellungsformen werden benötigt, die folgende Anforderungen erfüllen:

- Neue Darstellungsform muss übersichtlicher sein als VHDL
- Automatisierung der Logiksynthese muss erhalten bleiben oder ausgedehnt werden Grad an Abstraktion muss steigen, d.h. die Darstellungsform muss so kompakt sein, dass pro eingegebener Zeile noch mehr Gatter beschrieben (und automatisch erzeugt) werden als bei alleiniger Anwendung der Logiksynthese
- Diese Anforderungen werden von grafisch orientierten Programmen erfüllt

2.12 Effizienzsteigerung im Entwurf mittels grafischer HDL – Programmierung

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 HDL -Prozessverwaltung 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.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-25 Eine einfache Zustandsmaschine in verschiedenen Repräsentationsformen (grafisches VHDL unter Speedchart programmiert, textuelles VHDL, synthetisiertes Schematic).

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

2.13 Moderner Design Flow mittels grafischer HDL

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-26 stellt den gesamten Ablauf einer ASIC - Entwicklung mittels grafischer HDL, einschließlich der Schnittstellen zwischen den Umsetzungsprozessen, dar.

Aus der Sicht der Produktivität bietet die grafische HDL wesentliche Vorteile. Aus Sicht der Performanz (Chipflächenverbrauch, Timing, Powereffizienz,…) wurde jedoch in den bisherigen Kapiteln und auch in den existierenden Literaturstellen keine Aussage getroffen. Deshalb soll in Kapitel 9 Automatische Synthese von VHDL mit dem DSP-Builder ein Vergleich mit grafischem und manuell geschriebenem VHDL-Code durchgeführt werden

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2-26 Ein moderner Design Flow unter Verwendung von Logiksynthese und grafischem HDL

3 HDL – Design - Sprachen

Im folgenden Kapitel soll nun ein Überblick der wichtigsten existierenden reinen HDL -Sprachen gegeben werden. Hierbei soll nicht das Programm noch der Umgang mit ihnen erklärt werden, dies würde den Rahmen dieser Arbeit um weites sprengen. Es soll vorwiegend der prinzipielle Aufbau, Struktur, Verwendung und einige kleine Beispielprogramme beschreiben werden.

Für spezifische Informationen steht genügend gute Literatur zu den einzelnen Sprachen zur Verfügung.

3.1 VHDL

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 VHSIC- Programms 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]

3.1.1 Aufbau

Eine Hardware-Schaltung besteht aus Funktionseinheiten (z.B.: Multiplexer, Flip-Flops...) welche durch Signale miteinander verbunden sind. In VHDL werden solche Funktionseinheiten durch Entwurfseinheiten (Entities) repräsentiert, welche wiederum aus weiteren Einheiten (Konstrukten) zusammengesetzt sein können, vgl. auch Abb. 3-2. Jeder Entwurfseinheit setzt sich aus drei Teilbereichen zusammen. Siehe Abb. 3-1.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 3-1 Elemente einer VHDL-Entwurfseinheit

Abbildung in dieser Leseprobe nicht enthalten

Abb. 3-2 VHDL - Konstrukte

Eine Entwurfseinheit kann auch mehrere Architekturbeschreibungen besitzen. In einem solchen Fall ist eine Konfigurationseinheit notwendig. Durch die Trennung zwischen der Schnittstellendefinition (Entity) und der Systembeschreibung (Architecture) auf der jeweiligen Abstraktionsebene entspricht die Bauweise einer VHDL-Entwurfseinheit dem Black-Box-Prinzip (Kapselung). Somit können bestimmte Teilkomponenten eines Systems gefahrlos von Drittzulieferern realisiert werden, wenn die Schnittstellendefinition unverschlüsselt und die Architektur verschlüsselt übergeben wird. Ein weiterer Vorteil ist, dass mit zunehmenden Implementierungsdetails mehrere Architekturen auf unterschiedlichen Abstraktionsgraden entwickelt werden können, die wahlweise in die Entwurfseinheit eingebunden werden können, solange die Schnittstellendefinitionen identisch sind.

3.1.2 Anwendung der VHDL

VHDL kann für die wesentlichen drei Arbeitsschritte beim System- und Schaltungsentwurf eingesetzt werden:

Abbildung in dieser Leseprobe nicht enthalten

Abb. 3-3 VHDL - Code eines Halbaddierers

Mit Hilfe von VHDL können digitale Schaltungen auf den untersten drei Abstraktionsebenen beschrieben werden, d.h. von der funktionalen Verhaltensbeschreibung über die Antifuse-Technologie -Beschreibung bis hin zur Beschreibung der Schaltung auf der Gatterebene. Darüber hinaus ist mit VHDL die Simulation anderer (z.B.: nicht-mikroelektronischer) Systeme möglich. Insbesondere die Erweiterung auf analoge Teilsysteme ermöglicht die Simulation gemischter digital-analoger Systeme in einheitlicher Umgebung (siehe Kapitel 4.9). Weitere Erweiterungen zur Systembeschreibung befinden sich in Entwicklung (siehe Kapitel 4.7 VHDL-200x).

In Abb. 3-3 ist ein Beispielprogramm in VHDL wiedergegeben.

3.2 Verilog

Abbildung in dieser Leseprobe nicht enthalten

Abb. 3-4 Objekte in Verilog

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.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 3-5 Verilog-Code eines Halbaddierers in den unterschiedlichen Beschreibungsstilen.

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 grund-legenden 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.

3.2.1 Unterschiede von VHDL und Verilog

VHDL und Verilog sind derzeit die am gängigsten HDL -Sprachen. Beide Sprachen bieten prinzipiell ähnliche Möglichkeiten, obwohl vom Grundsatz her VHDL eine allgemeinere Basis zur Verfügung stellt. In Verilog müssen viele Datentypen erst erzeugt werden, während diese in VHDL bereits Standard sind. Es taucht immer wieder der Vergleich von C und PASCAL auf, VHDL wie PASCAL, Verilog wie C. Jeder Entwickler muss im Einzelfall entscheiden, welcher Sprache er den Vorzug gibt.

Tabelle 3-1 soll die prinzipiellen Unterschiede von VHDL und Verilog verdeutlichen.

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 3-1 Prinzipelle Unterschiede der HDLs VHDL und Verilog

3.3 Sonstige HDL-Sprachen

Im heutigen Hardwaredesign spielen VHDL und Verilog die wohl wichtigste Rolle. Zunehmend gewinnen SystemVerilog und SystemC, im Zuge der Abstraktion, immer mehr Bedeutung. In Tabelle 3-2, sollen weiteren HDL -Sprachen zur Vollständigkeit angeführt werden.

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 3-2 Zusammenstellung sonstiger HDL -Sprachen (Vollständigkeit kann nicht garantiert werden).

Des Weiteren gibt es noch eine Vielzahl anderer Plattformabhängiger Design-Sprachen, die nur für spezielle ICs verwendet werden können (z.B. Philips HDL)

4 Systembeschreibungssprachen (System-Level-Entwurf

4.1 SystemC

Da ein erheblicher Teil eines System on Chip aus SW besteht, die auf einem eingebetteten Prozessor läuft, sind C oder C++ als etablierte Programmiersprachen, die die Erstellung von kompakten und abstrakten Systembeschreibungen erlauben, auch Kandidaten für die Modellierung des kompletten Systems. Da jedoch zur Systemmodellierung insbesondere die Nachbildung von Eigenschaften wie Parallelität, Reaktivität und Zeitverhalten erforderlich sind, sind für den Einsatz dieser Sprachen Ergänzungen erforderlich.

SystemC ist eine von mehreren Firmen unter Leitung der OpenSystemC Initiative (OSCI) entwickelte C++ Klassenbibliothek. Sie stellt eine austauschfähige Modellierplattform dar, welches die Entwicklung und den Austausch von sehr schnellen System– Level- C++- Modellen ermöglicht. Weiterhin stellt sie eine beständige Plattform für Entwicklungen der System-Level-Werkzeuge zur Verfügung.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 4-1 SystemC: einheitliche Sprache für System-Level Spezifikation und Synthese

Die OSCI ist eine unabhängige (nicht kommerziell orientierte) Organisation, die sich aus einer großen Breite an Firmen, Universitäten und Einzelpersonen zusammensetzt, die SystemC als open source Standard für das System-Level-Design fördern.

SystemC wurde unter dem Aspekt der Vereinheitlichung einer Entwurfssprache für Hardware- und Softwaredesign entworfen (vgl. Abb. 4-1). Daraus resultieren zwei notwendige Eigenschaften:

- SystemC besitzt die aus der Softwareentwicklung bekannten Eigenschaften der objektorientierten Programmiersprache C++.
- SystemC besitzt Konstrukte zur Beschreibung komplexer Hardware-Systeme vergleichbar mit den herkömmlichen Hardwarebeschreibungssprachen wie VHDL und Verilog.

Zur Erstellung von SystemC Modellen können die üblichen Werkzeugen zur C/C++ Programmierung und zur Anzeige von Signalverläufen eingesetzt werden. Zunehmend werden auch verschiedene kommerzielle Werkzeuge mit Unterstützung von SystemC verfügbar. Neben Simulationstools aus verschiedenen Anwendungsgebieten, die auch SystemC als Eingabe erlauben, sind Designumgebungen zur Unterstützung des System-Level Designs mit SystemC wie CoWare N2C [22] und zur Synthese von Gatternetzlisten oder synthetisierbaren HDL Modellen aus SystemC Beschreibungen wie der CoCentric SystemC Compiler von Synopsys [23] auf dem Markt.

Abb. 4-2 zeigt den Unterschied im Design-Flow zwischen einer Entwicklung in HDL (VHDL/Verilog) und einer Entwicklung in SystemC. Abb. 4-3 und Abb. 4-4 stellen die Entwurfsmöglichkeit eines FIR-Filters in Matlab und SystemC dar. Der Vorteil bei der Entwicklung mittels SystemC liegt darin das es umgehend nach der Verifikation und Simulation über ein RTL -Synthese-Tool synthetisierbar ist. [16]

Abbildung in dieser Leseprobe nicht enthalten

Abb. 4-2 Unterschied im Design-Flow zwischen herkömmlichen HDLs und SystemC.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 4-3 Entwurf eines FIR-Filter mit Matlab

Abbildung in dieser Leseprobe nicht enthalten

Abb. 4-4 Entwurf des FIR-Filters unter SystemC

4.1.1 SystemC im Überblick

- Exakte Spezifikationsmethode vorhanden
- Semantik einer Programmiersprache
- Erweiterung um neue Klassen
- Neue HW- geeignete Datentypen
- Erweiterung von C++ in Form einer Library
- Nebenläufigkeit
- Zeitnotation
- Reaktives Verhalten
- Kommunikation
- C++ ist weit verbreitet
- Informatikern wesentlich geläufiger als HDLs
- Software kann leicht integriert werden
- HW/SW co-Entwurf
- Schnellere Simulation, da Code bereits in C vorliegt und nicht erst übersetzt werden muss wie bei herkömmlichen HDLs

4.1.2 Vergleich VHDL und SystemC

4.1.2.1 Struktur und Hierarchie

- Ein vollständiger Entwurf besteht aus einer Hierarchie von miteinander verbundenen Modulen:
- SystemC: ‚SC_MODULE‘ - C++ Klassendefinition
- VHDL: ‚design entities‘
- Der Austausch von Daten erfolgt ausschließlich über die Schnittstellenbeschreibung.
- Module können mehrere funktionale Einheiten enthalten:
- SystemC: Prozesse - C++ Methoden
- VHDL: Prozesse, Blöcke, nebenläufige Anweisungen

4.1.2.2 Ports

- Ports sind die externen Schnittstellen eines Moduls (vgl. Abb. 4-5).
- Ein Port hat einen Modus (Datenrichtung: in, out, inout) und einen Datentyp.
- SystemC: sc_in< int > port1; sc_out< bool > port2;
- VHDL: port (port1: in INTEGER; port2: out BOOLEAN)
- Daten werde über Ports ausgetauscht
- SystemC: port1.read(); port2.write(TRUE);
- VHDL: port1 <= port2;

Abbildung in dieser Leseprobe nicht enthalten

Abb. 4-5 Portdeklaration unter VHDL bzw. SystemC

4.1.2.3 Signale

- Signale verbinden Ports von verschiedenen Modulen.
- Signale werden innerhalb eines Moduls deklariert und haben einen Datentyp.
- SystemC: sc_signal<bool> s1;
- VHDL: signal s1: BOOLEAN;
- Verbundene Ports und Signale müssen den gleichen Datentyp haben.

4.1.2.4 Kommunikation zwischen Modulen siehe Abb. 4-6

Abbildung in dieser Leseprobe nicht enthalten

Abb. 4-6 Einbindung von Modulen in VHDL bzw. SystemC

4.1.2.5 Nebenläufigkeit

Nebenläufiges Verhalten muss modelliert werden können.

Die Funktionalität in SystemC wird durch Prozesse modelliert:

- Prozesse sind spezielle Funktionen einer Klasse.
- Prozesse in sich werden sequentiell ausgeführt
- Prozesse werden zu einander nebenläufig ausgeführt
- Es gibt drei unterschiedliche Arten von Prozessen: Methods, Threads, und Clocked Threads.

[...]

Details

Seiten
Erscheinungsform
Originalausgabe
Jahr
2005
ISBN (eBook)
9783832491062
ISBN (Paperback)
9783838691060
DOI
10.3239/9783832491062
Dateigröße
6.4 MB
Sprache
Deutsch
Institution / Hochschule
Hochschule für Technik, Wirtschaft und Gestaltung Konstanz – Elektrotechnik und Informationstechnik
Erscheinungsdatum
2005 (November)
Note
1,0
Schlagworte
systembeschreibungssprache dsp-builder hdvl system
Zurück

Titel: Ansätze einer High-Level-Synthese in der Electronic Design Automation
book preview page numper 1
book preview page numper 2
book preview page numper 3
book preview page numper 4
book preview page numper 5
book preview page numper 6
book preview page numper 7
book preview page numper 8
book preview page numper 9
book preview page numper 10
book preview page numper 11
book preview page numper 12
book preview page numper 13
book preview page numper 14
book preview page numper 15
book preview page numper 16
book preview page numper 17
book preview page numper 18
book preview page numper 19
book preview page numper 20
book preview page numper 21
book preview page numper 22
book preview page numper 23
book preview page numper 24
book preview page numper 25
book preview page numper 26
book preview page numper 27
book preview page numper 28
book preview page numper 29
book preview page numper 30
book preview page numper 31
148 Seiten
Cookie-Einstellungen