Altifigence Academy
Digitaler EntwurfKostenlos · Grundlagen

Grundlagen des RTL-Entwurfs

Beschreiben Sie digitale Schaltungen in SystemVerilog. Lernen Sie Typen, Bitbreiten, Vorzeichen, kombinatorische und sequenzielle Logik, Module, Parameter und generate kennen. Prüfen Sie Grenzfälle und Fehler mit unabhängigen Testbenches. Verbinden Sie abschließend einen periodischen Impulsgeber mit einem Akkumulator und halten Sie reproduzierbare Ergebnisse fest.

SystemVerilogModulentwurfTestbenches
Mein Lernbereich

Das wirst du lernen

  • Bitbreite, Vorzeichen, Treiber, Gültigkeitszeitpunkt und Resetwert jedes Signals festlegen.
  • Vollständige kombinatorische Zuweisungen von taktgesteuerten Zustandsänderungen trennen.
  • Mit Parametern und generate statische Strukturen erzeugen und Grenzkonfigurationen prüfen.
  • Module über benannte Portverbindungen und Funktionen zusammensetzen.
  • Stimuli ohne Wettlaufbedingungen und unabhängige Referenzmodelle schreiben.
  • Nachweise aus Kompilierung, Simulation, Synthese und DDS-Ausführung unterscheiden.

Bevor du beginnst

Diese Browserübungen verwenden Lehrmodelle und kompilieren oder starten kein HDL. Um den Quellcode separat auszuführen, folge der Digital Design Studio-Anleitung für dein Betriebssystem und melde dich an, wenn der Vorgang es erfordert.

Installation und erster Start ↗ · Downloads ↗

Lehrplan

  1. RTL und Modulverträge
    • RTL: gleichzeitig arbeitende Schaltungen beschreibenKonzept

      Trennen Sie Softwareabläufe von parallelen Hardwarestrukturen und definieren Sie Zustand, Folgezustand und Beobachtungszeitpunkt.

    • Signale und Ports: Vertrag über Breite, Richtung und ZeitKonzept

      Schnittstellen lesen und Prüfkriterien für kombinatorische und Zustandsausgänge trennen.

    • Module, Ports und Instanzen: Verbindungen als VerträgeKonzept

      Verbinden Sie kombinatorische Module über benannte Ports und prüfen Sie einzelne Treiber und Hierarchiegrenzen.

    • Verständnisprüfung: kombinatorischer und gespeicherter AusgangWissensprüfung

      Unterscheiden Sie Eingangsänderung und Registerbeobachtung.

  2. Typen, Bitbreiten, Vorzeichen und Ausdrücke
    • logic, wire, X/Z und ausdrückliche BitbreitenKonzept

      Unterscheiden Sie Typ, Treiber und Speicher und prüfen Sie Literale, Vergleiche, Erweiterungen und unbekannte Werte.

    • Vektorindizes, Bitreihenfolge und VorzeichenKonzept

      Bitnummern, serielle Reihenfolge und arithmetische Interpretation beim Lesen des Datenpfads trennen.

    • Breiten von Slices, Konkatenation und WiederholungKonzept

      Datenpfade durch Berechnung der Gesamtbreite und Werterhaltungsbedingungen aufbauen.

    • Zweierkomplement, Vorzeichenerweiterung und OverflowKonzept

      Signed-Interpretation und Additionsoverflow durch Gleichungen und Gegenbeispiele unterscheiden.

    • Verständnisprüfung: Wertebereich und ErweiterungWissensprüfung

      Prüfen Sie Ein- und Ausgangsbreiten gemeinsam.

  3. Vollständiges kombinatorisches RTL und Prüfung
    • Kombinatorisches RTL und vollständige ZuweisungenKonzept

      Dieselbe Funktion mit bedingtem Operator und always_comb ausdrücken und Latch-verursachende Auslassungen finden.

    • Encoder und Priorität: Eine von mehreren Anforderungen wählenKonzept

      Die Eingangsannahme eines One-hot-Encoders von valid und Auswahl eines Prioritätsencoders unterscheiden.

    • MUX-Verifikation: Vollprüfung und EigenschaftenKonzept

      Kombinatorische Eingabeabdeckung und Speicherverhalten getrennt prüfen und Gegenbeispiele minimieren.

    • Entwurfsprüfung: Auswahläquivalenz und BeobachtungszeitWissensprüfung

      Prüfungen allein anhand der Wahrheitstabelle von solchen mit Taktbeobachtung unterscheiden.

  4. Zustand, Zuweisungen und Resetpriorität
    • Flipflops, Enable und SteuerprioritätenKonzept

      Halten, Laden und Reset als Folgezustandsfunktion definieren und unbeabsichtigtes Clock-Gating vermeiden.

    • Nichtblockierende Zuweisung und gleichzeitige ZustandsaktualisierungKonzept

      Alten und neuen Zustand für korrektes Lesen von Pipeline- und Zähler-RTL trennen.

    • Modulo- und Sättigungszähler mit EndimpulsKonzept

      Verhalten am Maximum und exakten Zyklus des Terminal-count-Signals festlegen.

    • Labor: Reset, Umlauf und Invarianten eines Zählers prüfenÜbung

      Jede steigende Flanke mit einer Referenz vergleichen und Einflüsse von Initialwert, Reset und Breite trennen.

    • Entwurfsprüfung: Breite, Priorität und UmlaufgrenzenWissensprüfung

      Grenzwerte und gleichzeitige Steuerungen anhand der Zustandsübergangsspezifikation beurteilen.

  5. Parameter und statische Strukturerzeugung
    • parameter, localparam, $clog2 und GrenzkonfigurationenKonzept

      Trennen Sie Laufzeiteingänge von Konfigurationen und entwerfen Sie Breite und Abschluss für N=1 und andere Werte als Zweierpotenzen.

    • generate: mit Schleifen statische Schaltungen aufbauenKonzept

      Erzeugen Sie mit genvar und generate-if benannte Hierarchien und prüfen Sie die Lane-Anordnung.

    • function automatic und wiederverwendbare AusdrückeKonzept

      Schreiben Sie zeitlose Funktionen und prüfen Sie Rückgabebreite, Vorzeichen und unabhängige Referenzen.

    • Verständnisprüfung: N=1 und BreiteWissensprüfung

      Trennen Sie Mindestbreite und gültige Zustände.

  6. Testbenches und unabhängige Prüfung
    • Abtastzeitpunkte und Kausalität im ZeitdiagrammKonzept

      Zeitdiagramme unter Trennung von kombinatorischem Einschwingen, Taktabtastung und Ereignisfolge lesen.

    • Übung: eine Testbench, die Fehler selbst meldetÜbung

      Trennen Sie DUT, Stimuli, Referenz und Prüfungen für Reset, enable und Überlauf ohne Wettlaufbedingungen.

    • Prüfplanung, Coverage und unabhängige ReferenzenKonzept

      Testbestehen von Spezifikationserfüllung trennen und Grenzen, Kreuzbedingungen und Gegenbeispiele planen.

    • Zähler debuggen und Gegenbeispiele minimierenKonzept

      Kurze Tests entwerfen, die Reset-, Enable- und Umlauffehler unterscheiden.

    • Verständnisprüfung: Referenzen und WettläufeWissensprüfung

      Wählen Sie unabhängige Erwartungen und Beobachtung nach Aktualisierung.

  7. Modulverbindungen und integrierte Übung
    • Zustandsautomaten: Zustand, Transition und Ausgabe trennenKonzept

      FSM aus Tabellen entwerfen und Moore/Mealy, illegale Zustände und Anforderungsregeln vergleichen.

    • Abschlussentwurf: Überlappende 101-Muster erkennenKonzept

      Zustandsminimierung, gültige Eingaben, registrierte Ausgänge und unabhängige Prüfung verbinden.

    • Ready/valid und ein elastischer EinplatzpufferKonzept

      Verlust- und duplikatfreie Übergabe sowie gleichzeitige Ein-/Ausgabe bei Stopps entwerfen.

    • Multiply-add-Pipeline und DatenausrichtungKonzept

      Berechnungen an Registergrenzen teilen und Daten, valid sowie Nebenoperanden derselben Transaktion zuordnen.

    • Integrierte Übung: periodische Impulse und freigegebener AkkumulatorÜbung

      Beschreiben Sie Übertragungen mit alten Werten und prüfen Sie Pausen, aufeinanderfolgende Impulse und gleichzeitigen Reset.

  8. Werkzeugdiagnosen und Aussagekraft der Ergebnisse
    • Setup, Hold und ZeitbudgetKonzept

      Maximale und minimale Pfade trennen und frequenzunabhängige Hold-Bedingungen berechnen.

    • Taktdomänengrenzen und MetastabilitätKonzept

      Den Geltungsbereich zweistufiger Synchronisation verstehen und Einzelbits, kurze Pulse und Busse unterscheiden.

    • Kompilierung, lint und Synthese: Aussagekraft der DiagnosenKonzept

      Fixieren Sie Quellen, Top und Sprachmodus und unterscheiden Sie Syntax, Breiten, Latches und Funktion.

    • Ausführungsprotokolle und Weiterarbeit im DDSKonzept

      Bündeln Sie Quellen, Eingänge, Erwartungen, Fehler und Versionen für reproduzierbare Übungen.

    • Abschlussprüfung: Funktion und AusführungsnachweiseWissensprüfung

      Unterscheiden Sie lokale Ergebnisse von kostenloser DDS-Abnahme.

Deine Auswahl gilt für diesen Browser. Du kannst sie jederzeit in der Fußzeile ändern.