Register-Transfer Architektur (RTL)

Ziele

  • 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

Entwurfs- und Syntheseverfahren

Der Entwurfsprozeß gliedert sich in mehrere Stufen:

  1. Systemebene

    • Aufteilung des Gesamtsystems in Subsysteme. Man spricht von der Partitionierung in kooperierende Prozesse.
    • Es liegt noch kein Zeitmodell, sondern nur ein Kausalitätsschema vor (Abhängigkeitsmodell).
    • Spezifikation der Funktionalität
  2. Algorithmische Ebene

    • Verhaltensbeschreibung
    • Festlegung von Datenbreiten, globalen Speichergrössen und Befehlssätzen von Mikroprozessoren.
    • Hardware-Software-Co-Design, d.h. Partitionierung des Gesamtentwurfs in einen hardwareabhängigen Teil (Mikroprozessoresysteme) und Software (Assemblercode).
    • Einsatz von Hardwarebeschreibungssprachen zur Implementierung und Beschreibung der Algorithmik.
    • Zeitmodell: verfeinertes Kausalitätsmodell.

Entwurfs- und Syntheseverfahren

  1. Register-Transfer-Ebene

    • Mikroprogrammebene

    • Aufteilung des Entwurfs von Algorithmen in Daten- und Kontrollfluss bzw. -pfaden.

    • Einführung digitaler Komponenten:

      • Register/Speicher
      • Multiplexer
      • Arithmetische und logische Einheiten
    • 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.

Entwurfs- und Syntheseverfahren

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

      • Gegebenfalls Einfügen von Pufferstufen in den Signalweg zur Verbesserung des Schaltverhaltens.

Entwurfs- und Syntheseverfahren

  1. Schaltkreisebene (Transistorebene) → Logik

    • Netzwerke aus Transistoren
    • Zeitmodell: kontinuierlich, Signal-Wertverlauf: kontinuierlich
  2. Schaltkreisebene (Physikalische Layoutebene)

    • Konkretes Chip-Layout mit konkreten Abmessungen und Dimensionierung (nur bei ASICs).

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.

Entwurfs- und Syntheseverfahren

figsynth1


Abb. 1. Kriterien für den Systementwurf auf Logikebene

Entwurfs- und Syntheseverfahren

figsynth2


Abb. 2. Ebenen beim Schaltkreisentwurf [Lehmann, Wunderm Selz]

Entwurfs- und Syntheseverfahren

Entwurfsablauf

  1. Der Systementwurf wird durch Simulation und Verifikation rückgekoppelt.

  2. Dem eigentlichen Syntheseprozess schließt sich das so genannte Technologieabbildung an, welches eine Netzliste mit Logikkomponenten auf die Zielhardware abbildet.

  3. Simulation kann sowohl auf höheren Ebenen vor der Synthese durch Verhaltensmodellierung, aber auch nach der Synthese auf Logikebene stattfinden.

  4. Fehlersuche im Testsystem

Entwurfs- und Syntheseverfahren

figsynth3


Abb. 3. Entwurfsablauf mit VHDL

Modellierung

Bei der Beschreibung von Hardware unterscheidet man verhaltensbasierte und strukturelle Beschreibung bzw. Spezifikation.

Strukturelle Beschreibung (SB)
Hier findet die Systembeschreibung mittels einer Netzliste von Komponenten, wie Logikgattern, Registern sowie komplexeren Einheiten wie Addierern oder RAM-Komponenten statt. Die Netzliste bestimmt die Verbindungen der einzelnen Komponenten, vergleichbar mit einem Schaltplan auf Logikebene.
  • In der strukturellen Beschreibung gibt es keine Kenntnis über das Verhalten einzelner Komponenten Black Box Modell (Fehlen der logischen Schaltfunktionen, beschrieben z.B. mit einer Funktionstabelle)
  • Kontroll- und Datenpfad sind Strukturbeschreibungen

Modellierung

Beispiel Strukturbeschreibung eines Volladierers

Netzliste

comp1:ADDH2(a,b,sum:t1,cout:t2)
comp2:ADDH2(cin,t1,sum,cout:t3)
comp3:AND2(t2,t3,cout) 

figadd6

VHDL

port(a: in bit, b: in bit,
     cin: bit, sum: out bit,
     cout: out bit) ...
component ADDH2 port (
  a: in bit,  b: in bit,
  cin: in bit, sum: out bit,
  cout: out bit
  );
component AND2 port(...);
signal t1,t2,t3: bit;
comp1: ADDH2 port map (...)
comp2: ADDH2 port map (...)
comp3: AND2 port map (...)  

Modellierung

Verhaltensbeschreibung (VB)
Hier wird explizit die Abbildung von Eingangs- auf Ausgangssignalen beschrieben, implizit logisches und zeitliches Verhalten bestimmt, aber nicht die technologische Umsetzung und die Verknüpfung von logischen Einheiten.
  • Z.B. ist eine logische Funktionstabelle die VB, die abgeleitete boolesche Normalform und die daraus folgende Gatterliste die SB!
  • VB lässt sich mittels imperativer und funktionaler Sprachkonstrukte ausdrücken.

Modellierung

Example 1. (Beispiel eines Übergangs von VB zur SB)

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)

Modellierung

  • Neben VB und SB des hardwareverhaltens unterscheidet man noch die Technologiebeschreibung (TB)

figsynth4


Abb. 4. Hierarchische Modellierung mit VB, SB, und TB.

Modellierung

figsynth5


Abb. 5. Hierarchische Systemmodellierung von Hardwarekomponenten in VHDL mit Entity, Architecture und Configuration [Lehmann, Wudner, Selz]

Register-Transfer Ebene

  • Ü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:

    • Zeit
    • Fläche ≡ Hardware ≡ Logik.
  • 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).

Register-Transfer Ebene

RT-Implementierung: Aufteilung

  1. Der Datenteil besteht aus einer Menge von Modulen: Addierer, Komparatoren, Multiplizierer, weiterhin Speicherelemente (Register, adressierbarer Speicher) und Datenselektoren (Multiplexer).

  2. Der Steuerteil (Controller) wird in Form einer Tabelle symbolischer Zustandsübergänge beschrieben.

  3. Die Steuernetze aktivieren oder adressieren Speicher, schalten Datenmulitplexer und aktivieren Datenoperationen.

  4. Die Bedingungsnetze liefern Ergebnisse von Test-Ausdrücken für daten- oder signalabhängige Verzweigungen der Zustandsübergänge.

Register-Transfer Ebene

figrtlmod1


Abb. 6. Beispiel (A) Umsetzung einer VB ab-cd+f mit RTL durch Scheduling und Ressourcenallokation. Die Register R zwischen den einzelnen Stufen bilden eine Pipeline.

Register-Transfer Ebene

figrtlmod2


Abb. 7. Beispiel (B) Umsetzung einer VB mit RTL durch Scheduling und Ressourcenallokation mit veränderten Parametern.

Register-Transfer Ebene

RTL-Implementierung aus VB bedeutet:

Scheduling

Zuordnung von Operationen zu Zeitschritten. Optimierung: Minimierung der Zeitschritte.

Ressourcen-Allokation

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

Ressourcen-Zuweisung

Zuordnung von Funktionselementen zu einzelnen Instanzen und Operationen.

Starke Wechselwirkung zwischen Scheduling und Ressourcen-Allokation

Register-Transfer Ebene

Pipeline-Architektur
Eine Pipeline-Architektur ergibt sich ebenfalls durch Einfügen von Registern zwischen den einzelnen Funktionseinheiten des Datenpfades.


Diese Register erfüllen also folgende Aufgaben:

  1. Barrieren für Metastablilität und Hazards. Nur zu definierten und diskreten Zeitpunkten liegen neue Daten am Eingang einer folgenden Funktionseinheit an.
    • Zwischen zwei Zeitpunkten t0 und t1 sind die Datensignale stabil.
    • Aufgrund von verschiedenen Laufzeiten einzelner Signale in einer vorherigen Funktionseinheit sind die Ausgangsdatensignale für eine bestimmte Zeit Δt als metastabil anzusehen, d.h. in diesem Zeitraum können einzelne Signalleitungen mehrfach ihren Logikzustand ändern.
    • Diese Metastabilität würde sich ohne Register (Puffer) durch alle folgenden Funktionseinheiten fortpflanzen, was sich nachteilig auf die Leistungsaufnahme und das elektrische Verhalten der Digitallogik auswirken kann

Register-Transfer Ebene

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

    • Da die einzelnen Funktionseinheiten durch Register getrennt sind, können vorherige Funktionseinheiten schon früher neue Daten aufnehmen und verarbeiten, d.h. die sog. Restart-Periode ist R < L.
  2. Zwischenspeicher für Ressourcenteilung. Werden Ressourcen (Funktionseinheiten) in einer Schaltung geteilt, so bedarf es Zwischenspeicher (und Multiplexer).

Register-Transfer Ebene: Beispiel und Entwurf

figrtlex2

Zu entwerfen ist eine Schaltung, die den grössten gemeinsamen Teiler zweier 8-bit unsigned integer Zahlen A und B berechnet.

  • Schnittstellensignale: START, DONE, CLK, RST
  • Ablauf: Bei START=1 soll die Berechnung beginnen.
  • Mit DONE=1 wird das Ende der Berechnung angezeigt.

Aus: Prof. Dr. Marco Platzner, Grundlagen der Technischen Informatik (GTI) / Digitaltechnik (DT)

Register-Transfer Ebene: Beispiel und Entwurf

Spezifikation

Algorithm 1. (GGT(a,b) - Algorithmus)

\[\begin{mdmathpre}%mdk
\mathid{done}~:=~\mathid{FALSE};\\
\mathkw{repeat}~\\
\mdmathindent{2}\mathkw{if}~(\mathid{a}>\mathid{b})~\mathkw{then}~\mathid{a}~:=~\mathid{a}-\mathid{b};\\
\mdmathindent{2}\mathkw{else}~\mathkw{if}~(\mathid{b}>\mathid{a})~\mathkw{then}~\mathid{b}~:=~\mathid{b}-\mathid{a};\\
\mdmathindent{2}\mathkw{else}~\mathid{done}~:=~\mathid{TRUE};\\
\mathkw{until}~\mathid{done}=\mathid{TRUE};
\end{mdmathpre}%mdk
\]

Welche Komponenten benötigen wir im Datenpfad?

  • Register für a und b
  • Komparator: Schaltung zum Vergleichen von a und b: a > b, a < b, a=b
  • Subtrahierer
  • Multiplexer an den Subtrahierereingängen zum “Vertauschen” von a und b, damit wir a-b und auch b-a berechnen können

Register-Transfer Ebene: Beispiel und Entwurf

figrtlex3

Signale

  • Steuersignale (Operationen): LDA (load register A), LDB (load register B), SELL (select left MUX), SELR (select right MUX)
  • Statussignale (Bedingungen): AGTB (A greater than B), ALTB (A less than B)

Register-Transfer Ebene: Beispiel und Entwurf

Zustandsdiagramm

  • Der sequenzielle Ablauf der GGT Berechnung wird in fünf Zustände {S0,S1,S2,S3, S4} unterteilt.

figrtlfsm1

Register-Transfer Ebene: Beispiel und Entwurf

Daten- und Kontrollpfad

figrtlex4

Register-Transfer Ebene: Beispiel und Entwurf

  • Der Zustandsautomat kann mit Hilfe eines ROM/RAM Baustein und einer Zustandsübergangstabelle implementiert werden.
    • Die Eingabesignale {S0,S1,S2,ALTB,AGTB,STRT} dienen als Zeilenselektor der Tabelle. Sie bestehen aus dem binärkodierten Zustandsvektor S und den Statussignalen.
    • Die Ausgangssignale {S0,S1,S2,DONE,SWAP,LOAD,SELA,SELB} ergeben binärkodiert die Zeilenwerte.

figrtlfsm2

Register-Transfer Ebene: Beispiel und Entwurf

Aufgabe

  1. Implementiere den GGT Algorithmus in RTL unter Verwendung des RETRO Simulators.

    • Der Zustandsautomat wird durch eine Tabelle in einem ROM Baustein ersetzt.
  2. Erstelle die Zustandsübergangstabelle und übertrage die Inhalte in den ROM

  3. Teste die Schaltung exemplarisch

Zusammenfassung

Taxonomie der Register-Transfer Architektur

figrtltaxo


Abb. 8. (a) Abstraktes Architekturmodell (b) Datenpfad (c) Kontroll- und Datenpfad