Schieberegister
Überblick
- Zweck: Das Schieberegister ist eine sequentielle Logikschaltung, die binäre Daten speichert und ihren Inhalt mit jedem Taktimpuls um eine Bitposition verschiebt. Es kann Daten entweder nach links oder nach rechts verschieben und ermöglicht so sequentielle Datenmanipulation und -speicherung.
- Symbol: Das Schieberegister wird durch einen Rechteckblock mit Eingängen für Daten (seriell und manchmal parallel), Takt, Reset und Modussteuerung sowie Ausgängen für die gespeicherten/verschobenen Daten dargestellt.
- Rolle in DigiSim.io: Dient als wesentliche Komponente für die Datenkonvertierung zwischen seriellen und parallelen Formaten, Datenspeicherung und Signalverarbeitungsanwendungen in Designs digitaler Schaltungen.

Funktionale Beschreibung
Logikverhalten
Das Schieberegister speichert und manipuliert binäre Daten, indem es die gespeicherten Bits mit jedem Taktimpuls in eine festgelegte Richtung verschiebt. Je nach Typ kann es Daten seriell (Bit für Bit) oder parallel (alle Bits gleichzeitig) laden und Daten in entweder seriellem oder parallelem Format ausgeben.
Typische Betriebsmodi:
| Modussteuerung | Funktion | Beschreibung |
|---|---|---|
| 00 | Halten | Aktuellen Zustand beibehalten |
| 01 | Rechtsverschiebung | Bits nach rechts schieben, neues Bit kommt von links |
| 10 | Linksverschiebung | Bits nach links schieben, neues Bit kommt von rechts |
| 11 | Parallele Ladung | Lädt alle Bits gleichzeitig |
Beispiel-Wahrheitstabelle (4-Bit-Universalschieberegister):
| CLK | DIR | S/L | SI | D3 | D2 | D1 | D0 | Q3 (nächster) | Q2 (nächster) | Q1 (nächster) | Q0 (nächster) | Notizen |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ↑ | X | 1 | X | d3 | d2 | d1 | d0 | d3 | d2 | d1 | d0 | Parallele Ladung |
| ↑ | 0 | 0 | si | X | X | X | X | si | Q3 | Q2 | Q1 | Rechtsverschiebung |
| ↑ | 1 | 0 | si | X | X | X | X | Q2 | Q1 | Q0 | si | Linksverschiebung |
| ↓ | X | X | X | X | X | X | X | Q3 | Q2 | Q1 | Q0 | Keine Änderung |
Hinweis: ↑ stellt eine steigende Taktflanke dar, ↓ fallende Flanke, X Don't care, si serieller Eingang, dn paralleler Dateneingang. Qn ist der aktuelle Zustand.
Eingänge und Ausgänge
Eingänge (insgesamt 8):
- SI (Serial Input): 1-Bit-Eingang für serielle Dateneingabe.
- CLK (Takt): 1-Bit-Eingang; Operationen erfolgen bei steigender Flanke.
- DIR (Richtung): 1-Bit-Eingang; steuert die Schieberichtung (0 = rechts, 1 = links), wenn S/L 0 ist.
- S/L (Shift/Load): 1-Bit-Eingang; Modussteuerung (0 = Schieben, 1 = parallele Ladung).
- D0, D1, D2, D3: Vier 1-Bit-parallele Dateneingänge zum gleichzeitigen Laden von Daten, wenn S/L 1 ist.
Ausgänge (insgesamt 5):
- Q0, Q1, Q2, Q3: Vier 1-Bit-parallele Ausgänge, die die aktuell gespeicherten Bits des Registers darstellen.
- SO (Serial Output): 1-Bit-Ausgang. Verhalten hängt von der Schieberichtung ab:
- Bei Rechtsverschiebung (DIR=0): SO spiegelt typischerweise Q0 wider.
- Bei Linksverschiebung (DIR=1): SO spiegelt typischerweise Q3 wider.
Konfigurierbare Parameter
- Bitbreite: Die Anzahl der Bits, die das Schieberegister speichern kann (typischerweise 4, 8, 16 usw.).
- Schieberichtung: Ob das Register nach links, rechts oder bidirektional verschiebt.
- Typ: Die Konfiguration des Registers (SISO, SIPO, PISO, PIPO oder Universal).
- Taktflankenempfindlichkeit: Ob das Register auf steigende oder fallende Taktflanken reagiert.
- Laufzeitverzögerung: Die Zeit, bis sich Ausgänge nach einem Auslösereignis ändern.
Visuelle Darstellung in DigiSim.io
Das Schieberegister wird als Rechteckblock mit beschrifteten Eingängen auf der linken Seite (SI, D0–D3, CLK, DIR, S/L) und Ausgängen (Q0–Q3, SO) auf der rechten Seite angezeigt. Der Takteingang ist typischerweise mit einem Dreieckssymbol markiert, das die Flankenempfindlichkeit anzeigt. Wenn die Komponente in einer Schaltung verbunden ist, zeigt sie ihren aktuellen Zustand visuell durch die an ihren Ausgängen angezeigten Werte und Farbänderungen auf den verbindenden Leitungen an.
Pädagogischer Wert
Schlüsselkonzepte
- Sequentielle Datenverarbeitung: Demonstriert, wie Daten nacheinander Bit für Bit verarbeitet werden können.
- Seriell-Parallel-Umwandlung: Veranschaulicht die Transformation zwischen sequentiellen und gleichzeitigen Datenformaten.
- Zeitliche Speicherung: Zeigt, wie digitale Systeme Daten über die Zeit speichern und verzögern können.
- Getakteter Betrieb: Verstärkt das Verständnis synchroner digitaler Systeme.
- Digitale Kommunikation: Führt grundlegende Konzepte der digitalen Datenübertragung ein.
Lernziele
- Die Prinzipien sequentieller Datenspeicherung und -manipulation verstehen.
- Lernen, wie digitale Systeme zwischen seriellen und parallelen Datenformaten konvertieren.
- Verschiedene Arten von Schieberegistern und ihre Anwendungen erkennen.
- Konzepte von Schieberegistern zur Lösung von Datenverarbeitungsproblemen in digitalen Schaltungen anwenden.
- Die Rolle von Schieberegistern in digitalen Kommunikationsprotokollen begreifen.
Anwendungsbeispiele/Szenarien
- Serielle Kommunikation: Umwandlung zwischen parallelen Daten in einem Mikroprozessor und seriellen Daten zur Übertragung.
- Verzögerungsleitungen: Erstellung präziser digitaler Verzögerungen für Signalverarbeitungsanwendungen.
- Datenpufferung: Temporäres Speichern von Datenbits, bevor sie verarbeitet werden.
- Mustererzeugung: Erstellung sich wiederholender Bitmuster zu Test- oder Anzeigezwecken.
- Digitale Filter: Implementierung von Finite-Impulse-Response-Filtern (FIR) zur Signalverarbeitung.
- Anzeigetreiber: Steuerung von LED-/LCD-Matrixanzeigen mit begrenzten Steuerleitungen.
Technische Hinweise
- Schieberegister werden typischerweise mit D-Flipflops implementiert, mit einem Flipflop pro Speicherbit.
- Die maximale Betriebsfrequenz ist durch die Laufzeitverzögerung durch die Flipflop-Kette begrenzt.
- Universalschieberegister bieten die größte Flexibilität, erfordern aber mehr Steuereingänge und interne Logik.
- Linear Feedback Shift Registers (LFSRs) sind spezielle Konfigurationen, die zur Erzeugung pseudozufälliger Zahlen und für CRC-Berechnungen verwendet werden.
- In DigiSim.io modellieren Schieberegister typisches flankengesteuertes Verhalten mit klarer visueller Rückmeldung von Schiebeoperationen.
- Mehrere Schieberegister können kaskadiert werden, um größere Datenbreiten zu verarbeiten, als eine einzelne Komponente bereitstellt.
Arten von Schieberegistern
Serial-In, Serial-Out (SISO)
- Daten gehen Bit für Bit ein und Bit für Bit aus
- Fungiert als Verzögerungsleitung oder digitales Speicherelement
Serial-In, Parallel-Out (SIPO)
- Daten gehen seriell ein, können aber parallel abgerufen werden
- Wird zur Seriell-zu-Parallel-Umwandlung verwendet
- Üblich in Kommunikationsschnittstellen (UART, SPI)
Parallel-In, Serial-Out (PISO)
- Daten werden parallel geladen, aber seriell ausgeschoben
- Wird zur Parallel-zu-Seriell-Umwandlung verwendet
- Wesentlich in Datenübertragungssystemen
Parallel-In, Parallel-Out (PIPO)
- Daten gehen parallel ein und parallel aus
- Bietet temporäre Speicherung und kann Daten verschieben
- Wird zur Datenpufferung zwischen Systemen verwendet
Bidirektionale Schieberegister
- Können Daten nach links oder rechts verschieben
- Ermöglichen flexible Datenmanipulation
Universalschieberegister
- Unterstützen mehrere Betriebsmodi (alle der oben genannten)
- Konfigurierbar über Steuereingänge
- Bieten maximale Flexibilität
Betriebsmodi
| Modussteuerung (S/L, DIR) | Funktion | Beschreibung |
|---|---|---|
| 1, X | Parallele Ladung | Q[3:0] = D[3:0] |
| 0, 0 | Rechtsverschiebung | SI → Q3, Q3 → Q2, Q2 → Q1, Q1 → Q0 |
| 0, 1 | Linksverschiebung | Q2 → Q3, Q1 → Q2, Q0 → Q1, SI → Q0 |
Wahrheitstabelle (4-Bit-Universalschieberegister)
| CLK | DIR | S/L | SI | D3 | D2 | D1 | D0 | Q3 (nächster) | Q2 (nächster) | Q1 (nächster) | Q0 (nächster) | Notizen |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ↑ | X | 1 | X | d3 | d2 | d1 | d0 | d3 | d2 | d1 | d0 | Parallele Ladung |
| ↑ | 0 | 0 | si | X | X | X | X | si | Q3 | Q2 | Q1 | Rechtsverschiebung |
| ↑ | 1 | 0 | si | X | X | X | X | Q2 | Q1 | Q0 | si | Linksverschiebung |
| ↓ | X | X | X | X | X | X | X | Q3 | Q2 | Q1 | Q0 | Keine Änderung |
Hinweis: ↑ stellt eine steigende Taktflanke dar, ↓ fallende Flanke, X Don't care, si serieller Eingang, dn paralleler Dateneingang. Qn ist der aktuelle Zustand.
Eigenschaften
- Bitkapazität: Typischerweise 4, 8 oder 16 Bit (kann eine beliebige Länge haben)
- Schieberichtung: Links/rechts/bidirektional je nach Konfiguration
- Taktanforderungen: Synchroner Betrieb an Taktflanken
- Timing: Laufzeitverzögerung begrenzt die maximale Schiebefrequenz
- Abtastung: Eingangsdaten werden an aktiver Taktflanke abgetastet
- Reset-Verhalten: Setzt typischerweise alle Bits auf null
- Preset-Optionen: Manche Register erlauben das Setzen auf Anfangswerte
- Datenflusskontrolle: Kann Enable-/Disable-Funktionen enthalten
- Stromanforderungen: Proportional zur Anzahl der Flipflops und Taktfrequenz
Anwendungen
Datenkonvertierung
- Seriell-zu-Parallel- und Parallel-zu-Seriell-Umwandlung
- Schnittstelle zwischen seriellen Bussen und parallelen Prozessoren
Digitale Kommunikation
- UART-, SPI-, I2C-Schnittstellen
- Codier-/Decodieroperationen
- Bit-Framing und Datenformatierung
Signalverarbeitung
- Digitale Filter (FIR-Filter)
- Verzögerungsleitungen für digitale Signalverarbeitung
- Korrelations- und Faltungsoperationen
Datenspeicherung
- Temporäre Pufferspeicherung
- Bitmustererzeugung und -erkennung
Computersysteme
- CPU-Schiebe-/Rotationsoperationen
- CRC-Erzeugung und -Prüfung
- Pseudozufallssequenzerzeugung
Anzeigesysteme
- LED-/LCD-Anzeigemultiplexing
- Laufschriftanzeigen
- Anzeigedatenverteilung
Timing und Steuerung
- Sequenzerzeugung
- Ereignis-Timing und -Steuerung
Implementierung
Schieberegister können implementiert werden mit:
Flipflop-Ketten:
- D-Flipflops (am häufigsten)
- JK-Flipflops
- Master-Slave-Konfigurationen
Integrierte Schaltkreise:
- 74xx-Serie:
- 7491: 8-Bit-SISO
- 74164: 8-Bit-SIPO
- 74165: 8-Bit-PISO
- 74194/74195: 4-Bit-Universal/4-Bit-Parallelzugriff
- 74299: 8-Bit-Universal
- 74xx-Serie:
Speicherbasiert:
- FIFO-Speicherkonfigurationen
- Ringpuffer-Implementierungen
- Schieberegister-LUTs in FPGAs
Schaltungsimplementierung
Ein grundlegendes 4-Bit-Serial-In-Serial-Out-Schieberegister:
### Serial-In Serial-Out (SISO) Shift Register
```mermaid
graph LR
SIN[Serial In] --> FF0[D FF0]
CLK[Clock CLK] --> FF0
FF0 -->|Q0| FF1[D FF1]
CLK --> FF1
FF1 -->|Q1| FF2[D FF2]
CLK --> FF2
FF2 -->|Q2| FF3[D FF3]
CLK --> FF3
FF3 -->|Q3| SOUT[Serial Out]
Verwandte Komponenten
- Register: Allzweck-Datenspeicherung
- Zähler: Sequentielle Schaltungen, die Pulse zählen
- Flipflops: Grundlegende Bausteine für Schieberegister (D, JK)
- Multiplexer: Werden oft in Designs von Universalschieberegistern verwendet
- Serielle Kommunikationsschnittstellen: UART, SPI, I2C
- Linear Feedback Shift Registers: Zur Erzeugung pseudozufälliger Sequenzen
- Barrel-Shifter: Für Mehrbitverschiebungen in einem einzigen Zyklus
- FIFO/LIFO-Puffer: Fortgeschrittene Datenspeicherstrukturen
- Digitale Filter: Verwenden Schieberegister zur Implementierung von Verzögerungsleitungen
- Sequenzdetektoren: Mustererkennungsschaltungen