Register-Transfer-Ebene - Register-transfer level

Beim Design digitaler Schaltungen ist Register-Transfer-Level ( RTL ) eine Entwurfsabstraktion, die eine synchrone digitale Schaltung in Bezug auf den Fluss digitaler Signale ( Daten ) zwischen Hardware-Registern und die an diesen Signalen durchgeführten logischen Operationen modelliert .

Die Abstraktion auf Registerübertragungsebene wird in Hardwarebeschreibungssprachen (HDLs) wie Verilog und VHDL verwendet , um Darstellungen einer Schaltung auf hoher Ebene zu erstellen, aus denen Darstellungen auf niedrigerer Ebene und letztendlich die tatsächliche Verdrahtung abgeleitet werden können. Design auf RTL-Niveau ist typische Praxis im modernen Digitaldesign.

Anders als beim Software-Compiler-Design, wo die Registerübertragungsebene eine Zwischendarstellung und auf der untersten Ebene ist, ist die RTL-Ebene die übliche Eingabe, mit der Schaltungsdesigner arbeiten. Tatsächlich wird bei der Schaltungssynthese manchmal eine Zwischensprache zwischen der Darstellung auf der Übertragungsebene des Eingangsregisters und der Zielnetzliste verwendet. Anders als in der Netzliste stehen Konstrukte wie Zellen, Funktionen und Multi-Bit-Register zur Verfügung. Beispiele sind FIRRTL und RTLIL.

RTL-Beschreibung

Beispiel für eine einfache Schaltung, bei der der Ausgang bei jeder steigenden Flanke des Eingangs umschaltet. Der Inverter bildet die kombinatorische Logik in dieser Schaltung, und das Register hält den Zustand.

Eine synchrone Schaltung besteht aus zwei Arten von Elementen: Registern (sequentielle Logik) und kombinatorische Logik . Register (normalerweise als D-Flip-Flops implementiert ) synchronisieren den Betrieb der Schaltung mit den Flanken des Taktsignals und sind die einzigen Elemente in der Schaltung, die Speichereigenschaften haben. Die kombinatorische Logik führt alle logischen Funktionen in der Schaltung aus und besteht typischerweise aus Logikgattern .

In der Abbildung ist beispielsweise eine sehr einfache synchrone Schaltung dargestellt. Der Inverter ist vom Ausgang Q eines Registers mit dem Eingang D des Registers verbunden, um eine Schaltung zu erzeugen, die ihren Zustand bei jeder steigenden Flanke des Taktes clk ändert. In dieser Schaltung besteht die kombinatorische Logik aus dem Wechselrichter.

Beim Entwerfen digitaler integrierter Schaltungen mit einer Hardwarebeschreibungssprache (HDL) werden die Designs normalerweise auf einer höheren Abstraktionsebene entwickelt als auf Transistorebene ( Logikfamilien ) oder Logikgatterebene. In HDLs deklariert der Designer die Register (die in etwa den Variablen in Programmiersprachen entsprechen) und beschreibt die kombinatorische Logik mit Hilfe von Konstrukten, die aus Programmiersprachen wie Wenn-dann-sonst und arithmetischen Operationen bekannt sind. Diese Ebene wird als Registerübertragungsebene bezeichnet . Der Begriff bezieht sich auf die Tatsache, dass sich RTL auf die Beschreibung des Signalflusses zwischen Registern konzentriert.

Als Beispiel kann die oben erwähnte Schaltung in VHDL wie folgt beschrieben werden:

D <= not Q;
 
process(clk)
begin
    if rising_edge(clk) then
        Q <= D;
    end if;
end process;

Unter Verwendung eines EDA- Tools für die Synthese kann diese Beschreibung normalerweise direkt in eine äquivalente Hardware-Implementierungsdatei für einen ASIC oder ein FPGA übersetzt werden . Das Synthesewerkzeug führt auch eine logische Optimierung durch .

Auf der Registerübertragungsebene können einige Arten von Schaltungen erkannt werden. Wenn es einen zyklischen Logikpfad vom Ausgang eines Registers zu seinem Eingang gibt (oder von einem Satz von Registerausgängen zu seinen Eingängen), wird die Schaltung als Zustandsmaschine bezeichnet oder kann als sequentielle Logik bezeichnet werden . Gibt es logische Pfade von einem Register zu einem anderen ohne Zyklus, wird dies als Pipeline bezeichnet .

RTL im Schaltungsdesignzyklus

RTL wird in der Logikentwurfsphase des Entwurfszyklus für integrierte Schaltungen verwendet .

Eine RTL - Beschreibung ist in der Regel in einer umgewandeltes Gate-Level - Beschreibung der Schaltung durch ein Logiksynthesewerkzeug . Die Syntheseergebnisse werden dann von Platzierungs- und Routing- Tools verwendet, um ein physisches Layout zu erstellen .

Logiksimulationstools können die RTL-Beschreibung eines Designs verwenden, um seine Richtigkeit zu überprüfen.

Leistungsschätzungstechniken für RTL

Die genauesten Tools zur Leistungsanalyse sind für die Schaltungsebene verfügbar, aber leider haben Tools auf Schaltungsebene sogar bei der Modellierung auf Schalter- statt auf Geräteebene Nachteile, da sie entweder zu langsam sind oder zu viel Speicher benötigen, was die Handhabung großer Chips verhindert. Die meisten davon sind Simulatoren wie SPICE und werden von den Designern seit vielen Jahren als Leistungsanalysetools verwendet. Aufgrund dieser Nachteile haben Leistungsschätzungswerkzeuge auf Gate-Ebene begonnen, eine gewisse Akzeptanz zu gewinnen, wo schnellere, probabilistische Techniken begonnen haben, Fuß zu fassen. Aber es hat auch seinen Nachteil, da eine Beschleunigung auf Kosten der Genauigkeit erreicht wird, insbesondere bei Vorhandensein korrelierter Signale. Im Laufe der Jahre wurde erkannt, dass die größten Erfolge beim Design mit geringem Stromverbrauch nicht durch Optimierungen auf Schaltungs- und Gate-Ebene erzielt werden können, während Architektur-, System- und Algorithmusoptimierungen tendenziell den größten Einfluss auf den Stromverbrauch haben. Daher hat sich die Neigung der Werkzeugentwickler zu hochrangigen Analyse- und Optimierungswerkzeugen für Leistung verschoben.

Motivation

Es ist bekannt, dass signifikantere Leistungsreduzierungen möglich sind, wenn Optimierungen auf Abstraktionsebenen wie der Architektur- und Algorithmikebene vorgenommen werden, die höher sind als die Schaltungs- oder Gatterebene Dies liefert die erforderliche Motivation für die Entwickler, sich auf die Entwicklung von neue Leistungsanalysetools auf Architekturebene. Dies bedeutet keineswegs, dass Werkzeuge auf niedrigerer Ebene unwichtig sind. Stattdessen bietet jede Werkzeugebene eine Grundlage, auf der die nächste Ebene aufgebaut werden kann. Die Abstraktionen der Schätztechniken auf einer niedrigeren Ebene können mit geringfügigen Modifikationen auf einer höheren Ebene verwendet werden.

Vorteile der Leistungsschätzung auf RTL- oder Architekturebene

  • Designer verwenden eine RTL-Beschreibung (Register-Transfer Level) des Designs, um Optimierungen und Kompromisse sehr früh im Designfluss vorzunehmen.
  • Das Vorhandensein von Funktionsblöcken in einer RTL-Beschreibung macht die Komplexität des Architekturentwurfs selbst für große Chips viel besser handhabbar, da RTL eine ausreichend größere Granularität als Beschreibungen auf Gate- oder Schaltungsebene aufweist.

Gate-Äquivalente

Es ist eine Technik, die auf dem Konzept der Gate-Äquivalente basiert. Die Komplexität einer Chiparchitektur kann näherungsweise in Form von Gate-Äquivalenten beschrieben werden, wobei die Gate-Äquivalent- Zahl die durchschnittliche Anzahl von Referenz-Gates angibt, die erforderlich sind, um die bestimmte Funktion zu implementieren. Die für die jeweilige Funktion erforderliche Gesamtleistung wird durch Multiplizieren der angenäherten Anzahl von Gatteräquivalenten mit der durchschnittlich pro Gatter verbrauchten Leistung geschätzt. Das Referenzgatter kann ein beliebiges Gatter sein, zB ein NAND-Gatter mit 2 Eingängen.

Beispiele für Gate-Äquivalent-Technik

  • Klassenunabhängige Leistungsmodellierung: Dies ist eine Technik, die versucht, Chipfläche, Geschwindigkeit und Verlustleistung basierend auf Informationen über die Komplexität des Designs in Bezug auf Gate-Äquivalente zu schätzen. Die Funktionalität ist auf verschiedene Blöcke aufgeteilt, es wird jedoch keine Unterscheidung bezüglich der Funktionalität der Blöcke gemacht, dh sie ist grundsätzlich klassenunabhängig. Dies ist die Technik, die vom Chip Estimation System (CES) verwendet wird.
Schritte:
  1. Identifizieren Sie die Funktionsblöcke wie Zähler, Decoder, Multiplikatoren, Speicher usw.
  2. Weisen Sie eine Komplexität in Form von Gate-Äquivalenten zu. Die Anzahl der GEs für jeden Gerätetyp wird entweder direkt als Eingabe vom Benutzer übernommen oder aus einer Bibliothek gespeist.
Wobei E typ die angenommene durchschnittliche Verlustenergie durch ein Gate-Äquivalent im aktiven Zustand ist. Der Aktivitätsfaktor A int bezeichnet den durchschnittlichen Prozentsatz der Gatter-Umschaltung pro Taktzyklus und darf von Funktion zu Funktion variieren. Die kapazitive Last C L ist eine Kombination aus Fan-Out- Last und Verdrahtung. Eine Schätzung der durchschnittlichen Kabellänge kann verwendet werden, um die Kabelkapazität zu berechnen. Dies wird vom Benutzer bereitgestellt und mit einem Derivat von Rent's Rule gegengeprüft.
Annahmen:
  1. Ein einziges Referenzgatter wird als Grundlage für alle Leistungsschätzungen verwendet, wobei unterschiedliche Schaltungsstile, Taktstrategien oder Layouttechniken nicht berücksichtigt werden.
  2. Es wird angenommen, dass der durch Aktivitätsfaktoren bezeichnete Prozentsatz von Gattern, die pro Taktzyklus schalten, unabhängig von den Eingangsmustern fest ist.
  3. Eine typische Gate-Schaltenergie ist durch eine vollständig zufällige gleichmäßige weiße Rauschverteilung (UWN) der Eingangsdaten gekennzeichnet. Dies impliziert, dass die Leistungsschätzung unabhängig davon, ob sich die Schaltung im Leerlauf oder bei maximaler Last befindet, gleich ist, da dieses UWN-Modell ignoriert, wie sich unterschiedliche Eingangsverteilungen auf den Leistungsverbrauch von Gates und Modulen auswirken.
  • Klassenabhängige Leistungsmodellierung: Dieser Ansatz ist etwas besser als der vorherige Ansatz, da er angepasste Schätztechniken für die verschiedenen Arten von Funktionsblöcken berücksichtigt und so versucht, die Modellierungsgenauigkeit zu erhöhen, was bei der vorherigen Technik wie Logik nicht der Fall war , Speicher, Verbindung und Uhr daher der Name. Die Leistungsschätzung erfolgt auf sehr ähnliche Weise wie im unabhängigen Fall. Die Grundschaltenergie basiert auf einem UND-Gatter mit drei Eingängen und wird aus den vom Benutzer bereitgestellten Technologieparametern wie Gate-Breite, Tox und Metallbreite berechnet.
Dabei bezeichnet C- Draht die Bitleitungs-Verdrahtungskapazität pro Längeneinheit und C- Zelle bezeichnet die Belastung aufgrund einer einzelnen Zelle, die von der Bitleitung hängt. Die Taktkapazität basiert auf der Annahme eines H-Baum- Verteilungsnetzwerks. Die Aktivität wird unter Verwendung eines UWN-Modells modelliert. Wie aus der Gleichung ersichtlich ist, hängt der Stromverbrauch jeder Komponente mit der Anzahl von Spalten (N col ) und Zeilen (N row ) in dem Speicherarray zusammen.
Nachteile:
  1. Die Schaltkreisaktivitäten werden nicht genau modelliert, da ein Gesamtaktivitätsfaktor für den gesamten Chip angenommen wird, der auch nicht vertrauenswürdig ist, wie er vom Benutzer bereitgestellt wird. Tatsächlich variieren die Aktivitätsfaktoren über den gesamten Chip, daher ist dies nicht sehr genau und fehleranfällig. Dies führt zu dem Problem, dass selbst wenn das Modell eine korrekte Schätzung für den Gesamtstromverbrauch des Chips liefert, die modulweise Stromverteilung ziemlich ungenau ist.
  2. Der gewählte Aktivitätsfaktor ergibt die korrekte Gesamtleistung, aber die Aufteilung der Leistung in Logik, Takt, Speicher usw. ist weniger genau. Daher ist dieses Tool im Vergleich zur CES nicht viel anders oder verbessert.

Vorcharakterisierte Zellbibliotheken

Diese Technik passt die Leistungsschätzung verschiedener Funktionsblöcke weiter an, indem sie ein separates Leistungsmodell für Logik, Speicher und Verbindung hat, was stattdessen ein Leistungsfaktor- Approximationsverfahren (PFA) zur individuellen Charakterisierung einer ganzen Bibliothek von Funktionsblöcken wie Multiplizierern, Addierern usw. vorschlägt eines einzelnen Gate-Äquivalent-Modells für „Logik“-Blöcke.
Die Leistung über den gesamten Chip wird durch den Ausdruck angenähert:

Wobei K i die PFA-Proportionalitätskonstante ist, die das i- te Funktionselement charakterisiert, ist das Maß der Hardwarekomplexität und bezeichnet die Aktivierungsfrequenz.

Beispiel

G i , das die Hardware-Komplexität des Multiplikators bezeichnet, bezieht sich auf das Quadrat der Eingangswortlänge, dh N 2 , wobei N die Wortlänge ist. Die Aktivierungsfrequenz ist die Rate, mit der Multiplikationen durch den mit bezeichneten Algorithmus durchgeführt werden, und die PFA-Konstante wird empirisch aus früheren Multiplizierer-Designs extrahiert und beträgt ungefähr 15 fW/bit 2 Hz für eine 1,2 &mgr;m-Technologie bei 5 V. Das resultierende Potenzmodell für den Multiplikator auf Basis der obigen Annahmen lautet:

Vorteile:

  • Eine Anpassung ist in Bezug auf beliebige Komplexitätsparameter möglich, die für diesen Block geeignet sind. Für einen Multiplikator war zB das Quadrat der Wortlänge angemessen. Für den Speicher wird die Speicherkapazität in Bits verwendet und für die I/O-Treiber reicht allein die Wortlänge aus.

Die Schwäche:

  • Es besteht die implizite Annahme, dass die Eingaben die Multiplikatoraktivität nicht beeinflussen, was der Tatsache widerspricht, dass die PFA-Konstante die mit der Multiplikationsoperation verbundene intrinsische interne Aktivität erfassen soll, da sie als Konstante angenommen wird.

Der Schätzfehler (relativ zur Simulation auf Schalterebene) für einen 16x16-Multiplikator wird untersucht und es wird beobachtet, dass das UWN-Modell extrem ungenau wird, wenn der Dynamikbereich der Eingänge die Wortlänge des Multiplikators nicht vollständig einnimmt. Zugegeben, gute Designer versuchen, die Nutzung der Wortlänge zu maximieren. Trotzdem sind Fehler im Bereich von 50-100% keine Seltenheit. Die Abbildung deutet eindeutig auf einen Fehler im UWN-Modell hin.

Siehe auch

Leistungsschätzung

Verweise