Verständnis der Funktionsweise von registerbasierter Datenverrabeitung durch Trennung in Daten- und Kontrollpfade
Verständnis von Syntheseverfahren auf RT Ebene, Unterscheidung von Struktur- und Verhaltensbeschreibung
Aufbau und Funktionsweise von Zustandsautomaten
Der Entwurfsprozeß gliedert sich in mehrere Stufen:
Systemebene
Algorithmische Ebene
Register-Transfer-Ebene
Mikroprogrammebene
Aufteilung des Entwurfs von Algorithmen in Daten- und Kontrollfluss bzw. -pfaden.
Einführung digitaler Komponenten:
Zeitmodell: zeitdiskret bei synchronen Systemen, der Kontrollfluss ist takt- und zustandsgesteuert; Deadlines bei asynchronen Systemen.
Festlegung von Größe und Anzahl von Registern und Verarbeitungswerken.
Logikebene
Schaltungsentwurf mit Makrobibliotheken von digitalen Komponenten, abhängig von der Zieltechnologie.
Boolesche Minimierung kombinatorischer Logik.
Sequenzielle Optimierung im Kontrollfluss (Z.B. Entfernung von nicht erreichbaren Zuständen eines Zustandsautomaten).
Festlegung des zeitlichen Verhaltens (noch diskret): Verzögerungszeiten, FAN-In / FAN-Out, d.h. das zeitliche Verhalten von Logikgattern und Registern wird von der Art und signifikant von der Anzahl an Senken (weitere Logikgatter und Register) bestimmt, die am Ausgang eines Logikgatters angeschlossen sind.
Schaltkreisebene (Transistorebene) → Logik
Schaltkreisebene (Physikalische Layoutebene)
Beim Systementwurf gibt es einen zweidimensionalen Entwurfsraum, der aus der Systemlaufzeit (kleinste Periodendauer des Taktsignals bei einem synchronen System) und der Chip-Fläche (Anzahl von Logikgattern und Registern) gebildet wird. Das Ziel beim Systementwurf ist i.A. ein Kompromiss aus Minimierung der Systemlaufzeit und Chip-Fläche.
Der Systementwurf wird durch Simulation und Verifikation rückgekoppelt.
Dem eigentlichen Syntheseprozess schließt sich das so genannte Technologieabbildung an, welches eine Netzliste mit Logikkomponenten auf die Zielhardware abbildet.
Simulation kann sowohl auf höheren Ebenen vor der Synthese durch Verhaltensmodellierung, aber auch nach der Synthese auf Logikebene stattfinden.
Fehlersuche im Testsystem
Bei der Beschreibung von Hardware unterscheidet man verhaltensbasierte und strukturelle Beschreibung bzw. Spezifikation.
Netzliste
| VHDL
|
Example 1.
VB mittels Funktionstabelle:
a b q
−−−−
0 0 1
0 1 1
1 0 1
1 1 0
⇒
IF a = 0 AND b = 0 THEN q = 1
ELSE IF a = 0 AND b = 1 THEN q = 1
ELSE IF a = 1 AND b = 0 THEN q = 1
ELSE q = 0;
⇒
SB mit der Netzliste:
AND(a,b,temp)
NOT(temp,q)
Übergang von algorithmischer Ebene auf RT-Beschreibung durch VB mit einem Daten- und Steuerfluss.
Erzeugung einer RTL bedeutet das Abbilden von Daten- und Steuerfluss in zwei Dimensionen:
Der Datenteil bearbeitet die Eingangsdaten eines Systems, so dass die gewünschten Ausgangsdaten erzeugt werden.
Der Steuerteil legt die Reihenfolge und Art der Datenoperationen fest.
Die Eigenschaften eines RTL-Systems werden durch Operationen (arithmetische, relationale, boolesche, logische) und den Transfer der Daten zwischen Registern charakterisiert.
Steuer- und Datenteil ”kommunizieren” über Steuersignale miteinander (bzw. sind verknüpft miteinander).
Der Datenteil besteht aus einer Menge von Modulen: Addierer, Komparatoren, Multiplizierer, weiterhin Speicherelemente (Register, adressierbarer Speicher) und Datenselektoren (Multiplexer).
Der Steuerteil (Controller) wird in Form einer Tabelle symbolischer Zustandsübergänge beschrieben.
Die Steuernetze aktivieren oder adressieren Speicher, schalten Datenmulitplexer und aktivieren Datenoperationen.
Die Bedingungsnetze liefern Ergebnisse von Test-Ausdrücken für daten- oder signalabhängige Verzweigungen der Zustandsübergänge.
RTL-Implementierung aus VB bedeutet:
Zuordnung von Operationen zu Zeitschritten. Optimierung: Minimierung der Zeitschritte.
Bestimmung von Typ und Anzahl der erforderlichen Hardware-Ressourcen wie Funktionselemente, Speicher, Busse. Optimierung: Minimierung der Funktionselemente, z.B. durch ALU-Blöcke, die über Multiplexer mit mehreren arithmetischen Operationen verwendet werden können (Ressource-Sharing).
Zuordnung von Funktionselementen zu einzelnen Instanzen und Operationen.
Starke Wechselwirkung zwischen Scheduling und Ressourcen-Allokation
Diese Register erfüllen also folgende Aufgaben:
Datenverarbeitung in einer Pipeline. Besteht der Datenpfad aus N Funktionseinheiten die durch Registerebenen getrennt sind, so werden wenigstens N Taktzyklen benötigt, bis ein Ergebnis am Ausgang des Datenpfades anliegt, d.h. die Latenz ist L ≥ NTclock.
Zwischenspeicher für Ressourcenteilung. Werden Ressourcen (Funktionseinheiten) in einer Schaltung geteilt, so bedarf es Zwischenspeicher (und Multiplexer).
Zu entwerfen ist eine Schaltung, die den grössten gemeinsamen Teiler zweier 8-bit unsigned integer Zahlen A und B berechnet.
START, DONE, CLK, RST
START=1
soll die Berechnung beginnen.
DONE=1
wird das Ende der Berechnung angezeigt.
Aus: Prof. Dr. Marco Platzner, Grundlagen der Technischen Informatik (GTI) / Digitaltechnik (DT)
Algorithm 1.
Welche Komponenten benötigen wir im Datenpfad?
LDA
(load register A), LDB
(load register B), SELL
(select left MUX), SELR
(select right MUX)
AGTB
(A greater than B), ALTB
(A less than B)
S0,S1,S2,ALTB,AGTB,STRT
} dienen als Zeilenselektor der Tabelle. Sie bestehen aus dem binärkodierten Zustandsvektor S und den Statussignalen.
S0,S1,S2,DONE,SWAP,LOAD,SELA,SELB
} ergeben binärkodiert die Zeilenwerte.
Implementiere den GGT Algorithmus in RTL unter Verwendung des RETRO Simulators.
Erstelle die Zustandsübergangstabelle und übertrage die Inhalte in den ROM
Teste die Schaltung exemplarisch