18. Schieberegister - users.etech.haw
Transcrição
18. Schieberegister - users.etech.haw
Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz 18 Schieberegister • In Schieberegistern wird die Eingangsinformation am Schiebeeingang SE in einer Kette von Flipflops bei jeder Taktflanke eingelesen und weiter geschoben. Sie erscheint schließlich nach n-Takten am Schiebeausgang. • Die Schieberichtung ist durch die Wertigkeit der Bits gegeben: • Rechtsschieben: vom MSB zum LSB • Linksschieben: vom LSB zum MSB • Im 8-stufigen Schieberegister SN74xx91 ist der Schiebeeingang die logische Verknüpfung SE = A∧B. Der Schiebeausgang erscheint auch invertiert. Serieller Eingang 0 5 Stufen Serieller Ausgang 0 1 1 0 1. Takt 1 0 0 1 1 0 2. Takt 0 1 0 0 1 1 3. Takt 0 0 1 0 0 1 4. Takt DIGITALTECHNIK 18-1 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz 18.1 Entwurf eines 3-Bit Serien-Parallelumsetzers • Dient in der Datenkommunikation zur Parallelisierung eines seriellen Datenstroms ( 1 Bit→ n-Bit). Die Daten werden in den Schiebeeingang SE eingelesen und erscheinen an den Registerausgängen REG. • Das Signal X steuert, ob geschoben und die parallele Ausgabe gesperrt wird (X='0'), oder ob das Schieben gesperrt wird und dafür die Ausgabe freigegeben wird (X='1'). Für die Freigabe werden Torschaltungen aus UND-Gattern benötigt. DIGITALTECHNIK 18-2 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz VHDL-Beschreibung eines N-Bit Serien-Parallel Umsetzers • Parametrisierte Registerbreite durch eine generic-Anweisung. • 2 Prozesse: - Taktflankengesteuertes internes Schieberegister INTREG, - durch internes Register und Steuersignal X gesteuertes Schaltnetz. • Schieben innerhalb einer for-Schleife. Der Schleifenindex I muss nicht deklariert werden. • Es wird vom LSB zum MSB, also links geschoben: INTREG(I) <= INTREG(I-1) entity SRG_NBIT is generic(N : natural :=3); port( CLK, SE, RESET, X: in bit; REG: out bit_vector(N-1 downto 0)); end SRG_NBIT; -- Anzahl der Bits, voreingestellt: 3 -- N Register Flipflops DIGITALTECHNIK 18-3 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz architecture VERHALTEN of SRG_NBIT is signal INTREG: bit_vector(N-1 downto 0); begin P1: process(CLK, RESET) -- Schieberegister begin if RESET='1' then INTREG <= (others => '0') after 10 ns; elsif (CLK='1' and CLK'event) then -- ansteigende Flanke if X='0' then for I in N-1 downto 1 loop -- zum MSB (links) Schieben INTREG(I) <= INTREG(I-1) after 10 ns; end loop; INTREG(0) <= SE after 10 ns; -- Schiebeeingang als LSB end if; end if; end process P1; P2: process(X, INTREG) begin if X='1' then REG <= INTREG after 10 ns; else REG <= (others=>'0') after 10 ns; end if; end process P2; end VERHALTEN; -- Freigabe des Ausgangssignals DIGITALTECHNIK 18-4 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz Simulation des 3-Bit Serien-Parallel Umsetzers • Alle Flipflops werden zum gleichen Zeitpunkt getaktet. • Die Übernahme in die Flipflops erfolgt nur bei X='0'. • Eine korrekte Funktion des Schieberegisters ist nur dadurch gegeben, dass die Signalverzögerung tpLH länger ist, als das Entscheidungsintervall tE. DIGITALTECHNIK 18-5 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz 18.2 Entwurf eines Parallel-Serien Umsetzers Schieberegister werden auch als Parallel-Serien Umsetzer (n-Bit→ 1-Bit) eingesetzt. Dies erfordert einen Parallel-Ladeeingang E und einen Schiebeausgang (SA): • Die parallelen Daten liegen am Eingang E an. • Für X='0' sind die Dateneingänge gesperrt, für X='1' sind sie freigegeben. • Alle Stufen sind gleichartig aufgebaut . Daher muss nur eine Stufe entworfen werden. Entwurf der Stufe 1: Q0 E1 X Schaltnetz D1 X 0 0 0 0 1 1 1 1 Q0 0 0 1 1 0 0 1 1 E1 0 1 0 1 0 1 0 1 D1 DIGITALTECHNIK D1: ¬E1 E1 0 4 5 1 2 6 7 3 ¬X X ¬ Q0 Q0 ¬X 18-6 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz Schaltplan eines 3-Bit Parallel-Serien Umsetzers • Die Übergangsschaltnetze zwischen jeweils benachbarten Stufen sind identisch • In das niederwertigste Bit (LSB) wird eine '0' hineingeschoben. DIGITALTECHNIK 18-7 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz VHDL-Entwurf entity PAR_SER is generic(N : natural :=3); -- Anzahl der Bits, voreingestellt: 3 port( CLK, RESET, X: in bit; E: in bit_vector(N-1 downto 0); SA: out bit); -- Schiebeausgang end PAR_SER; architecture VERHALTEN of PAR_SER is signal INTREG: bit_vector(N-1 downto 0); begin P1: process(CLK, RESET) -- Schieberegister begin if RESET='1' then INTREG <= (others => '0') after 10 ns; elsif (CLK='1' and CLK'event) then -- ansteigende Flanke if X='0' then for I in N-1 downto 1 loop -- zum MSB (links) Schieben INTREG(I) <= INTREG(I-1) after 10 ns; INTREG(0) <= '0' after 10 ns; -- LSB auf '0' end loop; else INTREG <= E after 10 ns; -- Daten laden end if; end if; end process P1; SA <= INTREG(N-1); -- Schiebeausgang end VERHALTEN; DIGITALTECHNIK 18-8 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz Simulation des Parallel-Serien Umsetzers 1 0 1 DIGITALTECHNIK 0 1 1 18-9 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz 18.3 Rückgekoppelte Schieberegister • Wenn der Ausgang eines Schieberegisters auf dessen Eingang zurück gekoppelt wird so läßt sich das im Schieberegister gespeicherte Bitmuster zyklisch verschieben. Es kann an den Ausgängen abgegriffen werden. Zuvor muss das Bitmuster jedoch in das Schieberegister geladen werden. • Wenn die Rückkopplung über ein Schaltnetz erfolgt, so lassen sich spezielle Bitmuster generieren. Z.B. bewirken geeignet eingesetzte XOR-Gatter in n-Bit Schieberegistern eine bestimmte Reihenfolge von Pseudozufallszahlen. • Bei einem 4-Bit Pseudozufallsgenerator werden die Bitstellen 2 und 3 XOR verknüpft. Der auf diese Weise aufgebaute Pseudozufallsgenerator darf nicht mit "0000" initialisiert werden da sich in diesem Fall das Bitmuster nicht ändern würde. Bitlänge 4 6 7 8 9 10 11 12 XOR-verkn. 2,3 4,5 3,6 2,4 4,8 6,9 8,10 5,7 Augangsindices 6,7 10,11 DIGITALTECHNIK Q3 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 4-Bit Pseudozufallsmuster Q2 Q1 Q0 Q/h Y 0 0 1 1 0 0 1 0 2 0 1 0 0 4 1 0 0 1 9 1 0 1 1 3 0 1 1 0 6 1 1 0 1 D 0 0 1 0 A 1 1 0 1 5 1 0 1 1 B 1 1 1 1 7 1 1 1 1 F 0 1 1 0 E 0 1 0 0 C 0 0 0 0 8 1 0 0 1 1 0 18-10 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz Schaltung und Simulation eines 4-Bit Pseudozufallsgenerators DIGITALTECHNIK 18-11