Digitalelektronik
Kapitel 1: Logik
1.4: Flip-Flops und Speicher
Grundelement: Basis-Flip-Flop (FF)
● Zustand zunächst E1=1
E2=0
● Q1=0 Q2=1
● Ändere in E2=1
● Zustand für Q bleibt!
E1
Q1
E2
Q2
1
0 1
1 0
0 1
E1=E2=0 vermeiden, dann gilt:
Q1= ¬Q2 (Q, Q)
● Nenne Eingänge
▪ S (Set)
▪ R (Reset)
● Negierte Logik
● Schaltzeichen (als “Black Box”) Grundelement: Flip-Flop (Basis-FF)
S Q
R Q
S R
Q Q
¬S
¬R Q
¬Q
Zeitverhalten
● Bei ¬S=¬R=1 Anfangszustand undefiniert (z.B.
nach Bauteiltoleranz)
¬S=1
=0
¬R=1
=0 Q=1
=0
¬Q=1
=0
Zeit
Asynchrone vs. synchrone Schaltungen
● Basis-FF kann jederzeit sein Zustand ändern
● Diskussion: Ist das sinnvoll?
a=1
=0 b=1
=0 e=1
=0 y=1
=0
Zeit
Exkurs: „Timing-Diagramme“
● Zeitliche Darstellung des Schaltungsverhaltens
▪ Hier: Eingänge a,b,e zeitlich variabel ea y
b Mögliche Laufzeiten
Artefakte, „Glitche“
Elektrische Laufzeiten
● Analog: Laufzeiten von
Buspassagieren… ea y
b Mögliche Laufzeiten
Bilderquelle: Wikipedia, Iw ouldstay, CC BY-SA 3.0
Taktgeber
● Takt muss länger als der langsamste Teilnehmer sein
Bilderquelle: Wikipedia, CC BY-SA 3.0
Asynchrone vs. synchrone Schaltungen
● Basis-FF kann jederzeit sein Zustand ändern
● Diskussion: Ist das sinnvoll?
● Asynchrone Schaltungen
▪ Vorteil: Schnell
▪ Nachteil: In Kombination mit weiteren
Schaltungselementen Verhalten schwer bestimmbar
● Synchrone Schaltungen
▪ Taktgeber
▪ Takt bestimmt durch langsamste Bauteilgruppe
● Flip-Flop: Braucht Takteingang
Getaktetes Flip-Flop (RS-FF), engl. “latch”
● Falls C=0
▪ Ausgänge der NAND- Gatter =1
▪ Keine Änderung,
● Falls C=1
▪ Änderung des Basis-FF- Zustandes
▪ Aber: während
„C=1-Zustandes“ weitere Änderung möglich Q
¬Q S
C
C R
Clock-(C)- Verarbeitung und Inverter
Basis-FF S
C R
Q
¬Q
D-Latch
● Sonderform des RS-FF
● D = delay
● Hält Informationen ein Taktzyklus
S C R
Q
¬Q
Getaktetes Flip-Flop (FF), engl. “latch”
● Taktzustandsgesteuert
● Welche Probleme könnten sich in Schaltungen ergeben, wenn latches verwendet werden?
Q
¬Q S
C
C R
Clock-(C)- Verarbeitung und Inverter
Basis-FF
Laufzeiten
● Analog: Laufzeiten von
Buspassagieren… ea y
b Mögliche Laufzeiten
Bilderquelle: Wikipedia, Iw ouldstay, CC BY-SA 3.0
Master-Slave-Flip-Flop
● Master übernimmt Zustand bei C=1
● Slave übernimmt Zustand bei C=(1→0)
▪ Analogie: Schiffsschleuse
S C R
Q
¬Q 1
1 0
1
0
S C R
Q
¬Q X
0 X 0
1
1
0 X
X
Master Slave
S C R
Q
¬Q
Master-Slave-Flip-Flop
● Flip-Flop übernimmt Zustand bei C=(1→0)
● Änderungen während Takt C=1 kommen am Slave- Ausgang nicht an (Nur „Tor“ am Master offen)
S=1
=0 R=1
=0 C=1
=0 Q=1
=0
Zeit
Master-Slave-JK-Flip-Flop
1
0 S
C R
Q
¬Q J
K 1 0
0 1
0
0 1
0
1
0
1
J=1
=0 K=1
=0 C=1
=0 Q=1
=0
1 1
0 1
0
0 1
Master-Slave-JK-Flip-Flop
● Eigenschaften:
● JK-Eingänge beide =0
▪ Q bleibt gleich (Verhalten wie MS-FF)
● JK-Eingänge entsprechend zu Q
▪ Q bleibt gleich (Verhalten wie MS-FF)
● JK-Eingänge gegenteilig zu Q
▪ Q ändert sich (Verhalten wie MS-FF)
● J=K=1
▪ Q toggelt bei fallender Taktflanke
J C K
Q
¬Q
Master-Slave-JK-FF mit direkten Eingängen
● Zwei weitere Eingänge üblich
● R=Reset
▪ Bewirkt asynchrones Löschen (Q=0)
● P=Preset
▪ Asynchrones Setzen (Q=1)
J C K
Q
¬Q P
R
Beispiel für kommerziellen Speicher
● Speicher-Baustein von Cypress
▪ Adress- und Datenleitungen
▪ Steuerleitungen: CS (Chip Select), WE (Write Enable)
Bilderquellen: Cypress, Datasheet CY62256N
1-Bit-Speicher
▪ Kombiniere die beiden Eingänge (D=data)
▪ Zusätzlich ein Schreibeingang (WE=write enable)
▪ Synchroner 1-Bit-Speicher (D-Flip-Flop)
J C K
Q
¬Q C
WE D
1-Bit-Speicher
● Schreibvorgang bei fallender Taktflanke und W=1
C WE D
Q
D=1
=0 WE=1
=0 C=1
=0 Q=1
=0
1-Bit-Schreib-Lese-Speicher
● Ziel: Speicherzelle soll ein- bzw.
ausgeschaltet werden
▪ Auch Ausschalten der Ausgabe mit WE (0=read)
▪ Ausgang mit CS („Chip Select“)
C WE D
Q R
Q‘
WE
D
CS
CS WE D
Q
Q
Mehr-Bit-Speicher
● Bsp: 4-Bit- Speicher, ein Bit soll gewählt werden
● WE und D gemeinsamer Eingang
● Adressbus A[0-1]
selektiert Bit
CS WE D
Q
CS WE D
Q
CS WE D
Q
CS WE D
Q
Dout Din
WE
A0 A1
CS
Speicherbausteine
● Auswahl der Reihe durch Adressleitung
▪ RAM (=„random access memory“)
● Verliert keine Informationen, solange Gatter arbeiten
▪ Statisch (=static)
● SRAM
A[0-1]
CS WE
D0 D1 D2 D3 D4 D5 D6 D7
D1 D2 D3 D4 D5 D6 D7 D0
D[0-7]
D[0-7]
Speicherbausteine
● Bidirektionale Datenleitungen?
▪ Sender hat entweder eine 0 oder eine 1
▪ Speicher hat ebenfalls eine 0 oder eine 1
▪ Beide auf der gleichen Leitung gleicher Wert -> kein Problem
▪ Beide auf gleicher Leitung ungleicher Wert 0 bzw 1
• Ergebnis? 1 überschreibt 0? 0 löscht 1?
• 0 und 1 gleichwertig: d.h. boolsche Algebra erlaubt keine Lösung A[0-1]
CS WE
D0 D1 D2 D3 D4 D5 D6 D7 D[0-7]
Echte bidirektionale Kommunikation kann mit boolscher Algebra nicht realisiert werden.
Digitalelektronik
Kapitel 1: Logik 1.5: Schieberegister und
Zähler
Schieberegister (SR)
● Reihenschaltung von FF‘s
● Serielle Eingabe Dserwird parallelisiert (Q-Ausgänge der einzelnen FF‘s)
● Seriell-Parallelumsetzer
J C K
Q
¬Q J C K
Q
¬Q J C K
Q
¬Q Dser C
1 0
1
0 0
0
0 1
1 0
0 10 1
Dser C Q0Q1Qn-1
Q
Zeitverhalten SR Zeit T0 T1 T2 T3 T4
Dser 1 0 0 1 0
Q0 0 1 0 0 1
Q1 0 0 1 0 0
Q2 0 0 0 1 0
Q3 0 0 0 0 1
● 4-Stufiges SR: Setzt serielle Information in 4 Taktzyklen in parallele Information um
● Rechendauer vs. Parallelisierung
Synchrone Logikkette
● Analogie: Fließband, Busfahrplan
J C K
Q
¬Q
J C K
Q
¬Q
J C K
Q
¬Q C
Takt 1
+ Laufzeit Takt 2
Laufzeitunterschiede hier…
…werden hier wieder
„glattgezogen“
J C K
Q
¬Q
J C K
Q
¬Q
J C K
Q
¬Q
● Benutzen direkte Setz- und Löscheingänge
● Ersetze jedes FF (x) in SR durch obige Schaltung
● Einfach aber nicht synchron Parallele Eingabe
J C K
Q
¬Q P
Ppar R Dx
D0D1 Dn Ppar Dser C Q0Q1 Qn
Q
Synchroner Paralleleingang mit MUX
● JK-Eingänge werden jeweils mit P und MUX umgeschaltet
J C K
Q
¬Q Dser
J C K
Q
¬Q J
C K
Q
¬Q
P P P
D0 D1 D2
Links-Rechts-Schieberegister (LR-SR)
● Reihenschaltung von FF‘s
● JK-Eingänge werden jeweils mit LR und MUX umgeschaltet
● Analog: Schieberegister mit Enable
J C K
Q
¬Q Dser
J C K
Q
¬Q J
C K
Q
¬Q
LR LR LR
Links-Rechts-Schieberegister (LR-SR)
J C K
Q
¬Q Dser
J C K
Q
¬Q J
C K
Q
¬Q
LR LR LR
Kombinatorische Logik
Speicher