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