8-Bit-Schieberegister
Übersicht
- Zweck: Das 8-Bit-Schieberegister ist eine sequenzielle digitale Schaltung, die 8 Bit binärer Daten speichert und nach links oder rechts verschiebt. Sie ermöglicht die Wandlung zwischen seriellen und parallelen Datenformaten, die temporäre Speicherung sowie die Bitmanipulation.
- Symbol: Üblicherweise als rechteckiger Block mit einem seriellen Eingang (SI), parallelen Dateneingängen (D0-D7), Steuereingängen (CLK, LOAD, SCLR), parallelen Ausgängen (Q0-Q7) und einem seriellen Ausgang (SO) dargestellt.
- DigiSim.io-Rolle: Dient als wesentlicher Baustein für Datenübertragung, Kommunikationsschnittstellen und sequenzielle digitale Operationen, bei denen Daten verschoben, gespeichert oder zwischen seriellen und parallelen Formaten umgewandelt werden müssen.

Funktionsbeschreibung
Logikverhalten
Das 8-Bit-Schieberegister führt drei Hauptoperationen aus: paralleles Laden (gleichzeitiges Erfassen von 8 Bit), serielles Schieben (Bewegen der Bits durch das Register) und Ausgabe (Bereitstellen der gespeicherten Daten in paralleler oder serieller Form). Sein Betrieb wird durch Takt-, Lade- und Löschsignale gesteuert.
Wahrheitstabelle (8-Bit-Universalschieberegister):
| CLK | DIR | S/L | SI | D7..D0 | Q7..Q0 (Nächster Zustand) | Anmerkungen |
|---|---|---|---|---|---|---|
| ↑ | X | 1 | X | d7..d0 | d7..d0 | Paralleles Laden |
| ↑ | 0 | 0 | si | X | si, Q7, Q6, Q5, Q4, Q3, Q2, Q1 | Rechtsschieben |
| ↑ | 1 | 0 | si | X | Q6, Q5, Q4, Q3, Q2, Q1, Q0, si | Linksschieben |
| ↓ | X | X | X | X | Q7..Q0 (keine Änderung) | Keine Änderung |
Hinweis: ↑ steht für eine steigende Taktflanke, ↓ für eine fallende Flanke, X für „don't care", si für den seriellen Eingang, d7..d0 für die parallelen Dateneingänge. Qn ist der aktuelle Zustand.
Eingänge und Ausgänge
Eingänge (12 insgesamt):
- SI (Serial Input): 1-Bit-Eingang für die serielle Dateneingabe.
- CLK (Clock): 1-Bit-Eingang; Operationen erfolgen an der steigenden Flanke.
- DIR (Direction): 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 = paralleles Laden).
- D0, D1, D2, D3, D4, D5, D6, D7: Acht 1-Bit-Paralleleingänge zum gleichzeitigen Laden von Daten, wenn S/L = 1 ist.
Ausgänge (9 insgesamt):
- Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7: Acht 1-Bit-Parallelausgänge, die die aktuell gespeicherten Bits des Registers darstellen.
- SO (Serial Output): 1-Bit-Ausgang. Das Verhalten hängt von der Schieberichtung ab:
- Beim Rechtsschieben (DIR=0): SO entspricht typischerweise Q0.
- Beim Linksschieben (DIR=1): SO entspricht typischerweise Q7.
Konfigurierbare Parameter
- Taktflanke: Ob Operationen durch die steigende oder fallende Taktflanke ausgelöst werden.
- Schieberichtung: Rechtsschieben, Linksschieben oder bidirektional (in einigen Implementierungen).
- Löschtyp: Synchrone (taktgesteuerte) oder asynchrone Löschfunktion.
- Steuersignal-Logik: Ob Steuersignale aktiv-HIGH oder aktiv-LOW sind.
- Serielle E/A-Konfiguration: Welches Ende des Registers als serieller Ein- bzw. Ausgang dient.
- Timing-Parameter: Setup-Zeit, Hold-Zeit und Signallaufzeiten.
Visuelle Darstellung in DigiSim.io
Das 8-Bit-Schieberegister wird als rechteckiger Block mit den Dateneingangs-Pins (D0-D7 und SI) auf der linken Seite, den Steuersignalen (CLK, DIR, S/L) unten und den Datenausgangs-Pins (Q0-Q7 und SO) auf der rechten Seite dargestellt. In einer Schaltung visualisiert die Komponente die gespeicherten Werte und Schiebeoperationen durch Farbänderungen auf den verbundenen Leitungen.
Pädagogischer Wert
Schlüsselkonzepte
- Sequenzielle Logik: Zeigt, wie Daten in digitalen Schaltungen über die Zeit gespeichert und manipuliert werden können.
- Datenverschiebung: Veranschaulicht Bitbewegung und Rotationsoperationen in digitalen Systemen.
- Formatumwandlung: Zeigt, wie Daten zwischen seriellen und parallelen Formaten konvertiert werden können.
- Taktgesteuerter Betrieb: Betont die Bedeutung von Timing und Synchronisation in sequenziellen Schaltungen.
- Temporäre Speicherung: Vermittelt das Konzept der Datenpufferung und stufenweisen Verarbeitung.
- Digitale Kommunikation: Führt grundlegende Konzepte der seriellen und parallelen Datenübertragung ein.
Lernziele
- Verstehen, wie Schieberegister zwischen seriellen und parallelen Datenformaten umwandeln.
- Lernen, wie taktgesteuerte sequenzielle Operationen in digitalen Systemen funktionieren.
- Erkennen der Bedeutung von Schieberegistern in Kommunikationsschnittstellen.
- Anwendung von Schieberegister-Konzepten beim Entwurf von Datenübertragungssystemen.
- Verständnis der Beziehung zwischen Steuersignalen und Registeroperationen.
- Entwicklung von Fähigkeiten zur Analyse und zum Entwurf sequenzieller Schaltungen mit mehreren Betriebsmodi.
- Beherrschen der Timing-Beziehungen bei seriellen Datenoperationen.
Anwendungsbeispiele/Szenarien
- Serielle Kommunikation: Implementierung von UART-, SPI- oder I²C-Schnittstellen für die Wandlung zwischen seriellen Protokollen und parallelen Datenbussen.
- LED-Anzeigesteuerung: Ansteuerung mehrerer LED-Anzeigen mit weniger Steuerleitungen durch serielles Schieben der Anzeigedaten.
- Datenerfassung: Erfassung serieller Sensordaten und Umwandlung in paralleles Format zur Verarbeitung.
- Digitale Filter: Erstellung von Verzögerungsleitungen für die digitale Signalverarbeitung.
- Tastaturabfrage: Abtasten von Matrixtastaturen durch Schieben eines einzelnen aktiven Bits.
- Mustererzeugung: Erzeugung sich wiederholender Bitmuster für Test- oder Steuerungsanwendungen.
- CRC-Berechnung: Implementierung der Polynomdivision zur Fehlerprüfung in Kommunikationssystemen.
- Parallel-Seriell-Wandlung: Übertragung paralleler Daten über serielle Kommunikationskanäle.
Technische Hinweise
- Die Implementierung verwendet typischerweise acht in Reihe geschaltete D-Flip-Flops mit zusätzlichen Multiplexern für das parallele Laden.
- Schieberegister können kaskadiert werden, um längere Bitlängen zu erzeugen, indem der serielle Ausgang eines Registers mit dem seriellen Eingang des nächsten verbunden wird.
- Wichtige Timing-Parameter sind die Setup-Zeit (5–15 ns vor der Taktflanke) und die Hold-Zeit (0–5 ns nach der Taktflanke).
- Verschiedene Konfigurationen umfassen SISO (Serial-In, Serial-Out), SIPO (Serial-In, Parallel-Out), PISO (Parallel-In, Serial-Out) und Universal (bidirektional mit parallelem Laden).
- Häufige IC-Implementierungen sind 74HC164 (SIPO), 74HC165 (PISO) und 74HC595 (SIPO mit Ausgangslatch).
- Die maximale Schiebefrequenz wird durch die Signallaufzeiten in der Flip-Flop-Kette begrenzt.
- In DigiSim.io modelliert die Schieberegister-Simulation die Timing-Abhängigkeiten und Bitbewegungen realer Schieberegisterkomponenten präzise.
Eigenschaften
Eingangskonfiguration:
- Acht parallele Dateneingänge (D0-D7)
- Serieller Eingang (SI) zum Hineinschieben von Daten
- Takteingang (CLK) – typischerweise flankengetriggert (steigende Flanke)
- Synchroner Lösch-Eingang (SCLR) zum Zurücksetzen des Registers
- Freigabe für paralleles Laden (LOAD) zum Laden paralleler Daten
- Kann bei bidirektionalen Typen eine Schieberichtungssteuerung enthalten
- Kompatibel mit standardmäßigen digitalen Logikpegeln
Ausgangskonfiguration:
- Acht parallele Datenausgänge (Q0-Q7)
- Serieller Ausgang (SO) – typischerweise Q0 bei Rechtsschieberegistern
- Jeder Ausgang stellt den aktuellen Zustand der entsprechenden Stufe dar
- Kann standardmäßige digitale Lasten treiben
- Kann in einigen Implementierungen komplementäre Ausgänge enthalten
- Wechselt seinen Zustand synchron mit Takttransitionen
Funktionalität:
- Speichert und schiebt 8 Bit binärer Daten
- Ermöglicht das parallele oder serielle Laden von Daten
- Bietet Zugriff auf Daten in parallelem oder seriellem Format
- Schiebt Daten nach rechts (oder links bei bidirektionalen Varianten)
- Wandelt zwischen seriellen und parallelen Datenformaten um
- Implementiert Operationen vom Typ SISO, SIPO, PISO oder PIPO
- Kann für größere Bitbreiten kaskadiert werden
Signallaufzeit:
- Takt-zu-Ausgang (tCO): typisch 10–25 ns
- Setup-Zeit (tS): 5–15 ns vor der Taktflanke
- Hold-Zeit (tH): 0–5 ns nach der Taktflanke
- Lösch-zu-Ausgang (tCLR): 5–20 ns
- Technologieabhängig (TTL, CMOS usw.)
- Kritische Parameter für serielle Hochgeschwindigkeitsoperationen
- Bei synchronen Designs konsistent über alle Bits
Fan-Out:
- Treibt typischerweise 10–20 Standardlasten
- Ausgangsbelastung beeinflusst die Signallaufzeit
- Kann für hohe Fan-Out-Anwendungen Pufferung erfordern
- Serieller Ausgang ist oft für die Ansteuerung nachfolgender Stufen ausgelegt
Leistungsaufnahme:
- Statische Leistung minimal in CMOS-Implementierungen
- Dynamische Leistung steigt mit der Taktfrequenz
- Leistungsaufnahme proportional zur Schiebeaktivität
- Stromspitzen bei mehrfachen Bitübergängen
- Energiemanagement durch Clock-Gating
- Technologieabhängig (CMOS hat die niedrigste statische Leistung)
Schaltungskomplexität:
- Mittlere Komplexität
- Erfordert acht Flip-Flops plus Steuerlogik
- Zusätzliche Multiplexer für paralleles Laden
- Eingangssteuerlogik zur Modusauswahl
- Komplexität steigt mit zusätzlichen Funktionen (bidirektional usw.)
- Integrierte Implementierungen reduzieren die Anzahl externer Bauteile
Implementierungsmethoden
D-Flip-Flop-Kette
- Acht kaskadierte D-Flip-Flops mit gemeinsamem Takt
- Einfachste Implementierung für Serial-In/Serial-Out
- Ausgang jedes Flip-Flops mit dem Eingang des nächsten verbunden
- Zusätzliche Multiplexer für paralleles Laden
- Modussteuerlogik zur Auswahl der Operation
- Klassisches Lehrbeispiel für die Schieberegister-Funktionsweise
Implementierung als integrierte Schaltung
- Dedizierte 8-Bit-Schieberegister-ICs
- Beispiele: 74HC164 (Serial-In/Parallel-Out), 74HC165 (Parallel-In/Serial-Out), 74HC595 (Serial-In/Parallel-Out mit Ausgangslatches)
- Verschiedene Funktionen: paralleles Laden, Tri-State-Ausgänge usw.
- Verfügbar in verschiedenen Logikfamilien (TTL, CMOS usw.)
- Reduzierte Bauteilanzahl und Platinenfläche
- Klar definierte Timing-Eigenschaften
Universalschieberegister
- Konfigurierbar für Linksschieben, Rechtsschieben, paralleles Laden
- Komplexere Steuerlogik und interne Pfade
- Maximale Flexibilität für unterschiedliche Operationen
- Beispiele sind 74HC194, 74HC299
- Modusauswahl-Eingänge bestimmen die Operation
- Komplexer, aber sehr vielseitig
Bidirektionales Schieberegister
- Kann Daten nach links oder rechts schieben
- Richtungssteuereingang wählt die Schieberichtung
- Zusätzliche Multiplexer für die Richtungssteuerung
- Häufig in arithmetischen Operationen (Multiplikation, Division)
- Oft mit Universalschieberegistern realisiert
- Erhöhte Komplexität für die bidirektionale Funktion
SIPO-Konfiguration (Serial-In/Parallel-Out)
- Daten werden seriell eingegeben, parallel ausgelesen
- Üblich für Seriell-Parallel-Wandlung
- Ermöglicht das Erfassen serieller Datenströme
- Wird in seriellen Kommunikationsschnittstellen verwendet
- Einfacher als ein Universalentwurf, wenn auf diese Funktion beschränkt
- Typisches Beispiel: 74HC164
PISO-Konfiguration (Parallel-In/Serial-Out)
- Daten werden parallel eingegeben, seriell ausgegeben
- Ermöglicht Parallel-Seriell-Wandlung
- Wird in Sendern und seriellen Schnittstellen verwendet
- Erfordert die Fähigkeit zum parallelen Laden
- Taktsteuerung für das serielle Schieben
- Typisches Beispiel: 74HC165
FPGA/ASIC-Implementierung
- Realisiert mit Flip-Flops und Multiplexern
- Hochgradig konfigurierbare Designoptionen
- Kann für spezifische Anforderungen optimiert werden
- Kann spezialisierte Funktionen der Zieltechnologie nutzen
- Wird oft aus HDL-Beschreibungen synthetisiert
- Benutzerdefinierte Funktionen leicht hinzuzufügen
Anwendungen
Seriell-zu-Parallel-Wandlung
- Anbindung serieller Peripheriegeräte an parallele Bussysteme
- Implementierung von UART/USART-Empfängern
- SPI-Slave-Schnittstellen
- I²C-Slave-Empfänger
- Erfassung serieller Sensordaten
- Serielle Daten-Deserialisierer
Parallel-zu-Seriell-Wandlung
- Anbindung paralleler Bussysteme an serielle Peripheriegeräte
- Implementierung von UART/USART-Sendern
- SPI-Master-Schnittstellen
- Serialisierung von Daten zur Übertragung
- Treiberschnittstellen für Anzeigen
- Serielle Daten-Serialisierer
Datenpufferung und temporäre Speicherung
- Pipeline-Register in Datenpfaden
- Erfassen und Halten von Eingangsdaten
- Anpassung der Datenraten zwischen Systemen
- Mehrstufige Puffer für Datenströme
- Temporäre Speicherung für die Verarbeitung
- Byteweise Datenpufferung
Digitale Signalverarbeitung
- Digitale Filter (FIR/IIR-Implementierung)
- Verzögerungsleitungen für Signalverarbeitung
- Korrelations- und Faltungsoperationen
- Erzeugung digitaler Wellenformen
- Mustererkennung in seriellen Strömen
- Sequenzerkennung
Arithmetische Operationen
- Binäre Multiplikation und Division
- Serielle Recheneinheiten
- Polynomdivision (CRC-Berechnung)
- Bitmanipulationsoperationen
- Hardware-Beschleuniger für spezifische Algorithmen
- Implementierungen von Linear-Feedback-Shift-Registern
Timing und Steuerung
- Sequenzgenerierung
- Zustandsautomaten mit festen Sequenzen
- Implementierung von Zeitverzögerungen
- Steuerung von Pulssequenzen
- Mustergeneratoren
- Pseudozufallssequenz-Generatoren
Datenkommunikation
- Rahmen-Synchronisation
- Protokollverkapselung
- Datenformatierung
- Bit Stuffing und Destuffing
- Datenpaketierung
- Erzeugung von Fehlererkennungscodes
Einschränkungen
Timing-Beschränkungen
- Anforderungen an Setup- und Hold-Zeiten
- Begrenzung der maximalen Taktfrequenz
- Datentransitions-Timing kritisch für serielle Ströme
- Empfindlichkeit gegenüber Taktversatz in kaskadierten Systemen
- Signallaufzeiten begrenzen die Maximalgeschwindigkeit
- Synchronisationsprobleme mit externen Systemen
Datenkapazität
- Ohne Kaskadierung auf 8 Bit begrenzt
- Mehrere Bausteine für breitere Datenpfade erforderlich
- Kaskadierung erhöht die Signallaufzeit
- Datenbreite nach Implementierung fest
- Geringere Speicherkapazität als dedizierte Speicher
- Aufwand für Steuerlogik bei Anwendungen mit kleinen Daten
Operationale Beschränkungen
- Feste Schieberichtung bei nicht-universellen Typen
- Datenverlust beim Schieben ohne externe Speicherung
- Anforderungen an das Modussteuerungs-Timing
- Sequenzieller Zugriff auf verschobene Daten
- Eingeschränkte Zugriffsmöglichkeiten auf interne Stufen
- Reset-/Preset-Möglichkeiten variieren je nach Implementierung
Leistungsaufnahme
- Kontinuierliches Takten erhöht den Stromverbrauch
- Hochfrequenter Betrieb erhöht die dynamische Leistung
- Aktive Leistung proportional zu den Bitübergängen
- Energiemanagement erfordert Taktsteuerung
- Batteriebetriebene Anwendungen erfordern sorgfältige Auslegung
- Hochgeschwindigkeits-Schieben erhöht die Leistungsanforderungen
Designkomplexität
- Komplexität der Kaskadierung für größere Bitbreiten
- Koordination der Steuersignale
- Aufwand für Modusauswahllogik
- Überlegungen zur Taktverteilung
- Herausforderungen bei Test und Verifikation
- Integration mit asynchronen Systemen
Schaltungsdetails
Grundlegendes 8-Bit-Schieberegister mit Serial-In/Parallel-Out
graph LR
SI[Serial In] --> FF0[D FF 0]
CLK[Clock] --> FF0
FF0 -->|Q0| OUT0[Q0]
FF0 --> FF1[D FF 1]
CLK --> FF1
FF1 -->|Q1| OUT1[Q1]
FF1 --> FF2[D FF 2]
CLK --> FF2
FF2 -->|Q2| OUT2[Q2]
FF2 --> FF7[D FF 7]
CLK --> FF7
FF7 -->|Q7| OUT7[Q7]
Funktionsweise: Daten werden bei jeder Taktflanke nach rechts geschoben; parallele Ausgänge stehen an allen Flip-Flops zur Verfügung.
74HC595 8-Bit-Schieberegister mit Serial-In/Parallel-Out und Ausgangslatches
Pinbelegung:
| Pin | Signal | Funktion |
|---|---|---|
| SER | Serieller Eingang | Dateneingang |
| SRCLK | Schiebetakt | Schiebt Daten an steigender Flanke |
| RCLK | Registertakt | Übernimmt Schieberegister auf Ausgang |
| /SRCLR | Löschen | Aktiv-LOW-Löschen |
| /OE | Ausgangsfreigabe | Aktiv-LOW-Ausgangsfreigabe |
| QA-QH | Ausgänge | Parallele Datenausgänge Q0-Q7 |
| QH' | Serieller Ausgang | Kaskadenausgang |
| VCC, GND | Versorgung | +5V und Masse |
Merkmale:
- Zweistufig: Schieberegister + Ausgangslatch
- Kaskadierung: QH' ermöglicht das Verketten mehrerer Bausteine
- Ausgangssteuerung: Tri-State-Ausgänge über /OE
74HC165 8-Bit-Schieberegister mit Parallel-In/Serial-Out
Pinbelegung:
| Pin | Signal | Funktion |
|---|---|---|
| A-H | Dateneingänge | Parallele Dateneingänge D0-D7 |
| SER | Serieller Eingang | Kaskadier-/serieller Dateneingang |
| CLK | Takt | Schiebetakt-Eingang |
| CLK INH | Taktsperre | Stoppt den Takt bei HIGH |
| SH//LD | Shift/Load | LOW=parallel laden, HIGH=schieben |
| QH | Serieller Ausgang | Serieller Datenausgang |
| QH' | Komplement-Ausgang | Invertierter serieller Ausgang |
| VCC, GND | Versorgung | +5V und Masse |
Funktionsweise:
- Lademodus (SH//LD=LOW): Parallele Daten werden geladen
- Schiebemodus (SH//LD=HIGH): Daten werden seriell ausgeschoben
CLK = Takt, CLK INH = Taktsperre, SH/LD = Shift/Load, SER = serieller Eingang, QH = serieller Ausgang, QH' = komplementärer serieller Ausgang
Verwandte Komponenten
- 4-Bit-Schieberegister: Kleinere Version für Operationen in Nibble-Größe
- 16-Bit-Schieberegister: Erweiterte Version für Operationen in Wortgröße
- Universalschieberegister: Flexibles Register mit mehreren Schiebemodi
- Bidirektionales Schieberegister: Kann Daten nach links oder rechts schieben
- SIPO-Register (Serial-In/Parallel-Out): Spezialisiert auf Seriell-Parallel-Wandlung
- PISO-Register (Parallel-In/Serial-Out): Spezialisiert auf Parallel-Seriell-Wandlung
- SISO-Register (Serial-In/Serial-Out): Einfaches Schieberegister mit seriellem Ein- und Ausgang
- PIPO-Register (Parallel-In/Parallel-Out): Einfaches Register ohne Schiebefunktion
- Johnson-Zähler: Schieberegister mit invertierter Rückkopplung zur Sequenzgenerierung
- Ringzähler: Schieberegister mit direkter Rückkopplung zur Sequenzgenerierung