Sie sind auf Seite 1von 6

TTIGKEITSBERICHT

1 Aufbau des CDFG (Control Data Flow Graph)


Im vorliegenden Berichtzeitraum wurde der VHDL Simulator FreeHDL um Programmmodule zur Generioerung von CDFG (Control Data Flow Graph) Informationen erweitet. Darauf aufbauend werden im folgenden Jahr Verfahren und Algorithmen zur effizienten Komprimierung von whrend VHDL-Simulationsdaten entworfen und implementiert. Im folgenden wird der CDFG und seine Erzeugung erlutert, danach folgt der Arbeitplan fr das nchsten Antragszeitraum. 1.1 CDFG

Ein CDFG ist eine Darstellungsform, die die Daten- und Kontrollflsse innerhalb einer Schaltungmodells (hier VHDL-Modells) beschreibt. Ein CDFG ist ein Graph, der aus folgenden Elementen besteht: Kanten: sie reprsentieren entweder Daten- oder Kontrollflsse zwischen Knoten. Knoten: sie stellen die arithmetische oder logische Operationen innerhalb der Schaltung dar.

Die Vorteile der CDFG Darstellung ist, da aus einem CDFG mit Hilfe von geeigneten Graphenalgorithmen eine Schaltung leicht in andere Darstellungsformen bertragen werden kann. Des weiteren wird ein CDFG auch oft als Basis fr Compileroptimierungen verwendet. Ziel dieses Teilprojektes ist daher der Entwurf und die Implementierung aller Komponenten, die zur Erzeugung eines CDFG aus einem VHDL-Modell erforderlich sind. 1.2 Aufbau des CDFG

Um den CDFG zwischen verschiedenen Programmodulen bertragen zu knnen, wurde ein Dateiformat entwickelt, unter dem ein CDFG gespeichert und bei Bedarf wieder eingelesen werden kann. Das Dateiformat is ASCII-basiert und besitzt eine LISP-hnliche Struktur. Die Datei enthlt im wesentlichen drei Gruppen von Informationen: Allgemeine Informationen ber das Modell, sowie eine Liste von Kanten und eine Liste von Knoten des Modells. Ein Kante ist definiert durch: Eine Indexnummer: das ist eine eindeutige Zahl, die zur Identifizierung der Kante benutzt wird.
1

Name: der Name der Kante. Er definiert im wesentlichen mit welchem VHDL-

Objekt die Kante assoziiert ist. Dabei ist zu beachten, da drei Sorten von Kanten existieren: Datenkanten, Kontrollkanten und Kanten die Konstanten reprsentieren. eine Liste aus Zahlenpaaren: die erste Zahl eines Paars ist die Indexnummer (SAID ???????) Ein Knoten ist definiert durch: Eine Indexnummer: das ist eine eindeutige ein Zahl, die den Knoten identifiziert. Type: ein String, der den Typ des Knoten beschreibt (SAID: was gibt es fr Eine Liste mit eingehenden Kanten des Knotens (die Katen werden ber ihre Eine Liste mit ausgehenden Kanten des Knotens (diese Kanten werden ebenfalls

Typen?) Indexnummer identifiziert). ber ihre Indexnummer identifiziert). Im Berichtszeitraum wurde der CDFG sowie das Dateiformat zur Speicherung des CDFG entwickelt.

Generierung des CDFG

Der CDFG wird mit Hilfe von zwei Dateien erzeugt: der DDB Datei und der CDFGGeneratordatei. Die DDB (Design Database) ist eine Datei, die allgemeine Informationen ber im VHDL Modell definierten Type, Signale, Variable, Prozesse und Architekturen enthlt. Eine CDFGGeneratordatei enthlt die im Modell enthaltenen Operationen. Die Erzeugung des CDFG findet in drei Stufen statt: Erster Teil: Generierung der CDFG-Generator Datei (.cdfg.lsp): whrend der Compilierung eines VHDL Modells wird eine automatisch eine CDFG-Generator Datei hergestellt. Eine CDFG-Generatordatei enthlt LISP-Funktionen die mit Hilfe eines LISP-Interpreters bzw. Compiler ausgefhrt werden knnen. Diese LISP-Funktionen beschreiben alle Anweisungen, Zuweisungen, Operationen, u.s.w. die verschiedenen VHDL-Prozesse im betrachteten Modell ausfhren. In der CDFG-Generator Datei sind dynamische

Informationen (das sind Informationen, die whrend der Simulation erzeugt werden) ber das VHDL-Modell kodiert. Zweiter Teil: Generierung der DDB (.ddb.lsp): whrend der Elaboration eines VHDL Modells wird eine DDB erzeugt. Eine DDB Datei ist ebenfalls ein LISP-Programm, das mit Hilfe von geeigneten LISP-Funktionen Typen, Signale, Variable, Prozesse, und Architekturen definiert. In der DDB sind im wesntlichen strukturelle Informationen enthalten. Dritte Teil: enthaltenen Die eigentliche Erzeugung des CDFG wird mit Hilfe eines LSIPStrukturen auswertet. Danach wird in Abhngigkeit von den Hauptprogramms durchgefhrt, welches zunchst die DDB einliest und alle darin Strukturinformationen alle CDFG-Generatordateien, die zur Erzeugung des CDFG notwendig sind, geladen und die darin enthaltenen Programmodule entsprechend der Ausgefhrt. Die Aufrufparameter fr die Module werden hierbei der DDB entnommen. Die Programmodule erzeugen die Knoten und Kanten des CDFG. Ein Ablaufdiagramm, das die Arbeitsschritte zur Erzeugung eines CDFG zeigt, ist in Abbildung 1 zu sehen. Im vorliegenden Berichtszeitraum wurde das LSIP-Hauptprogramm entworfen und implementiert.

o d e

o m

p i l e r

i m

u l a t o r

l a b o r a t o r

. c d f g . l s p

. d d b . l s p

e n e r a t o r

. c d f g . d a t

Abbildung 1. CDFG Aufbau

Programmodul zum Einlesen des CDFG

Nachdem alle Module zur Erzeugung eines CDFG erstellt worden sind, mssen als nchstes Programmodule entworfen werden, die ein in Datei-Form vorliegenden CDFG wieder in den Hauptspeicher eines Computers einlesen knnen. Das ist notwendig um programmgesteuert geeignete Operationen bzw. Optimierungen auf dem CDFG durchfhren zu knnen. Das Modul wird im folgenden Beschreiben. Das Programm besteht aus zwei Untermodulen: Einem mit Hilfe des Tools Lex erstellten Scanner und einem mit Yacc implementierten Parser. Der Scanner liet die CDFG Datei ein und erkennt und markiert darin enthaltenen Schlsselwrter CDFG. Der Scanner ist ein Lex Programm. Er besteht aus: einer Routine, die Eingabedeteien nach vorgegebenen Mustern durchsucht und Die zum Modell gehrige DDB Datei. Die eigentliche CDFG Datei. entsprechende Informationen ber die gefundenen Muster zurckliefert. Der Scanner mu hierbei insgesamt zwei Arten von Datei lesen: Muster. Der Parser hat die Aufgabe die Syntax der Datei zu berprfen und erzeugt dann die Knoten und Kanten des

Der Parser ist ein Yacc Programm, das die vom Scanner gefundenen Textmuster nach vorgegebenen Regeln analysiert und daraus schlielich die Kanten und Knoten des CDFG im Speicher des Computer generiert. 4 Waveform Komprimierung basierend auf einem CDFG

Whrend einer VHDL-Simulation groer Designs fallen viele Ergebnisse an, die auf der Festplattte gespeichert werden mssen. Das erlaubt dem Designer bei Bedarf das zeitliche Verhalten des Modells zu analysieren. Die Simulationsergebnisse liegen als Liste von Elementen vor, wobei jedes Element aus Signal, Zeit und Wert besteht. Jedes Element beschreibt den Wechsel eines Signals Signal zum Zeitpunkt Zeit. Wert ist der Wert, den das Signals nach dem Wechsel einnimmt. Leider sind die erzeugten Simulationsdaten sehr gro, so da sie sehr viele Platz auf der Festplatte beanspruchen (mehrere Gbyte). Zudem verbraucht die Speicherung der Daten einen erheblich Anteil an der gesamten Simulationszeit. Daher sind Verfahren erforderlich, diese Daten mglichst effizient zu erzeugen und zu speichern. Im nchsten Arbeitsabschnitt sollen hierzu Verfahren und Algorithmen entwickelt werden, die auf dem CDFG basieren und die daraus ermittelten Signalabhngigkeiten ausnutzen, um die Ausgabe der Simulationsdaten zu beschleunigen und das Datenaufkommen insgesamt zu verringern. Im Rahmen der Arbeiten sollen Komprimierungsverfahren basierend auf den folgenden Anstzen untersucht werden: Zeit-Werte Trennung: diese Komprimierungstechnik versucht Zeit und Werte der Signalwechsel mit Hilfe von unterschiedlichen Verfahren zu komprimieren. Fr diese Komprimierungstechnik ist die Kenntnisse der Abhngigkeit von Signale und Variablen sehr wichtig. Hier findet der CDFG seine Anwendung. Zeit Komprimierungstechniken: Hier wird ein Ansatz verfolgt, der versucht aus der Schaltung ein Modell zu ermitteln, das eine mglichst genaue Vorhersage der Zeiten der Signalwechsel erlaubt. Weil die beide Komprimierungsmethoden Kenntnisse ber die Abhngigkeiten der Signale innerhalb des Modells bentigen, ist die Benutzung des CDFG notwendig.

ZEITPLAN FR DEN BEANTRAGEN ZEITRAUM

Projektplan fr den folgenden Antragenszeitraum (12 Monate): Implementierung von Verfahren zur Extraktion der Signalabhngigkeiten aus dem CDFG (2 Monate) Entwurf und Implementation von Verfahren zur Werte-Komprimierung basierend auf den Signalabhngigkeiten (2 Monate) Entwurf und Implementation von Verfahren zur Komprimierung der Signalwechselzeiten basierend auf den Signalabhngigkeiten (3 Monate) Einwurf und Implementierung von Verfahren zur Dekomprimierung der Simulationsdaten (2 Monate) Erweiterung des VHDL-Simulators FreeHDL um Mechanismen zur Laufzeitoptimierten Ausgabe der Simulationsergebnisse. (2 Monate) Dokumentation der Ergebnisse und Vergleich mit anderen Verfahren (1 Monat)