fakultät für informatik - Lehrstuhl für Rechnertechnik und

FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN
Lehrstuhl für Rechnertechnik und Rechnerorganisation
Prof. Dr. Arndt Bode
Einführung in die Rechnerarchitektur
Wintersemester 2015/2016
Zentralübung 12
22.01.2016
Schaltungsentwurf (4)
Standardschaltnetze in graphischer und textueller Beschreibung
Inhalte: verschiedene Standardschaltnetze, mehr VHDL-Details
12.1
Standardschaltnetze
Benutzen wir mehr als zwei Eingänge bei einem Schaltnetz, so wächst die mögliche Funktionsvielfalt mit der Anzahl der Eingänge. Trotz der prinzipiell beliebig vielen Möglichkeiten gibt es
einige bekannte Standardschaltnetze, die im folgenden vorgestellt werden sollen. Im einzelnen
haben sie folgende Aufgaben:
• Kodieren des 1-aus-N -Codes in Binärdarstellung (Encoder),
• Dekodieren des 1-aus-N -Codes aus Binärdarstellung (Decoder),
• Zusammenführen bzw. Verteilen von Signalen (Mischer und Verteiler), sowie
• Datenwegschalter.
☞ Was für Standardschaltnetze könnte es eventuell noch geben?
12.1.1
Beispiel: Encoder und Decoder
Ein Encoder hat folgende Wahrheitstabelle und VHDL-Process-Darstellung mit case-when:
1
e0
1
0
0
0
0
e1
0
1
0
..
.
e2
0
0
1
...
...
...
...
eN −1
0
0
0
..
.
0
0
...
1
c0
. . . cM −1
C0
C1
C2
..
.
C N −1
process(e) -- e ist schon als Zusammenfassung
begin
-- von e0 bis eN −1 definiert
case e is
when "100...0" =>
c <= c0;
when "010...0" =>
c <= c1;
when "001...0" =>
c <= c2;
...
when "000...1" =>
c <= cn_1;
when others
=>
c <= c0;
end case;
end process;
Der 1-aus-N -Code (nur einer von N Eingängen hat den Wert 1) wird dabei in einen Code
der Wortlänge M umgewandelt, dessen einzelne Codeworte C i sind. Eine der häufigsten Encoderformen verwendet binäre Ganzzahlen als Code. Für VHDL muss die Zusammenfassung der
Eingangs- und Ausgangswerte bereits anderweitig als sogenannte Vektoren definiert sein (Datentyp std logic vector(n-1 downto 0)). Die Zeile when others“ ist notwendig, da case
”
laut Sprachdefinition alle Fälle abdecken muss.
☞ Stellen Sie die Wahrheitstabelle für einen 1-aus-4-Encoder auf, der Binärzahlen als Code
verwendet. Wie sieht die Gatter- und VHDL-Realisierung dieses Encoders aus?
✎ Ein Decoder implementiert die Umkehrfunktion zu einem Encoder. Seine Wahrheitstabelle
ergibt sich, indem man in der Wahrheitstabelle des Encoders Ein- und Ausgänge vertauscht.
☞ Wie sieht die allgemeine Wahrheitstabelle eines Decoders aus?
☞ Stellen Sie die Wahrheitstabelle für einen Binärdecoder auf, der 2-Bit-Worte am Eingang
verarbeitet. Wie sieht die Gatter- und VHDL-Realisierung dieses Decoders aus?
12.1.2
Datenwegschalter
Ordnet man die Wahrheitstabelle eines UND-Gatters um und bezeichnet die Eingänge als e
und s (wie Schalteingang“), so erhält man einen 1-Bit-Datenweg-Ein/Aus-Schalter:
”
e
0
1
0
1
s
0
0
1
1
a
0
0
0
1
e
&
a
s
a <= e and s;
oder:
a <= e when s=’1’ else ’0’;
oder nur in process-Umgebung:
a<=’0’;
if s=’1’ then a<=e; end if;
✎ Solange Eingang s mit logisch 0 vorbelegt wird, wird der Ausgang konstant auf 0 gehalten;
sobald s = 1 wird, reflektieren die Ausgangswerte an a die Werte an e. Ein UND-Gatter kann
somit als einfacher Datenwegschalter verwendet werden.
Mit Hilfe von ODER-Gattern erhält man dann einen Datenwegmischer:
2
e1
&
s1
e2
>=1
&
a
s2
e3
&
s3
a <= (e1 and s1) or (e2 and s2) or (e3 and s3);
Umgekehrt kann man die UND-Gatter auch zum Aufbauen eines Datenwegverteilers verwenden:
&
a1
&
a2
s1
e
s2
&
a3
s3
12.1.3
a1 <= e when s1=’1’ else ’0’;
a2 <= e when s2=’1’ else ’0’;
a3 <= e when s3=’1’ else ’0’;
oder in einem Prozess:
if s1=’1’ then a1<=e; else a1<=’0’;end if;
if s2=’1’ then a2<=e; else a2<=’0’;end if;
if s3=’1’ then a3<=e; else a3<=’0’;end if;
Multiplexer und Demultiplexer
Verwendet man nun einen Binär-Decoder zum Ansteuern der si -Eingänge eines Mischers,
so erhält man einen Multiplexer. Ein Multiplexer hat üblicherweise für 2n Eingänge n
Steuereingänge, die hier zur Unterscheidung von den Mischer-Steuereingängen si mit cj bezeichnet werden. Als Schaltsymbol für den Multiplexer verwendet man häufig folgendes Symbol:
0
ei
MUX
a
N−1
N = 2M
cj
0 M−1
3
Umgekehrt ergibt die Verwendung eines Binär-Decoders zusammen mit einem Verteiler einen
sogenannten Demultiplexer:
DEMUX
0
e
ai
N−1
N = 2M
c
j
0 M−1
☞ Wie kann man sich einen Multiplexer bzw. einen Demultiplexer aus einzelnen Gattern
zusammengesetzt vorstellen?
Aufgabe 12.1 – Demultiplexer
Entwerfen Sie einen Demultiplexer mit einem 1-Bit-Dateneingang, einem 3-Bit-WegeauswahlEingang und acht 1-Bit-Datenwegausgängen.
Stellen Sie dazu für jeden Ausgang jeweils eine Wahrheitstabelle auf. Aus dieser leiten Sie
algebraisch die passende Minimalform ab.
Versuchen Sie von der algebraischen Lösung unabhängig, eine einfache VHDL-Realisierung des
Demultiplexers.
Aufgabe 12.2 – Addierer
Als ein weiteres Beispiel für Standardschaltnetze wollen wir uns mit einem 2 Bit breiten Addierer befassen. Im Gegensatz zur Vorlesung, die diese Funktion mit Hilfe einer zweistufigen
Realisierung vorgestellt hat, soll der Addierer hier aus zwei einzelnen 1-Bit-Addierern zusammengesetzt sein.
☞ Wie lautet die Wahrheitstabelle eines 1-Bit-Volladdierers?
☞ Kann man den Volladdierer statt mit einer herkömmlichen DNF oder KNF auch geschickter
durch andere Gatterfunktionen darstellen? (Tip: XOR-Funktion!)
☞ Wie sieht das Blockschaltbild (also die Struktur) eines aus zwei 1-Bit-Addierern zusammengesetzten 2-Bit-Addierers aus?
Beschreiben Sie mit Hilfe der Hardwarebeschreibungssprache VHDL einen 2-Bit-Addierer auf
folgenden Arten:
4
• durch Beschreibung der inneren Struktur, also durch seine Gattergleichungen, und
• durch Beschreibung des nach außen sichtbaren Verhaltens.
Aufgabe 12.3 – The Return Of The Waschmaschine
a) Beschreiben Sie mit VHDL einen 7-Segment-Dekoder, der einen binären 4-Bit-Wert in
einen binären 7-Bit Wert für eine Stelle der 7-Segmentanzeige unserer Waschmaschine
von Aufgabe 2.2 umwandelt. Nutzen Sie dazu einen VHDL-Prozess und den case-Befehl,
die Ein- bzw. Ausgabewerte sind vom Typ STD LOGIC VECTOR (oder auch unsigned bzw.
signed) mit der passenden Länge.
b) Vergleichen Sie die VHDL-Beschreibung mit dem Schaltplan eines real erhältlichen Bausteins mit vergleichbarer Funktion auf
http://wwwi10.lrr.in.tum.de/~eti/Vorlesung/WS1516/Zentral/74ls48.pdf Achtung: Der 74LS48 hat aus technischen Gründen negierte Ausgänge, d. h. ein Segment
leuchtet bei einer logischen 0.
Aufgabe 12.4
In der Hardwarebeschreibungssprache VHDL ist ein 4-zu-1-Multiplexer zu entwerfen.
a) Leiten Sie zunächst die Schaltfunktionen als algebraische Ausdrücke her.
b) Beschreiben Sie den Multiplexer in gültiger VHDL-Syntax. Gehen Sie dabei von der
Funktion des Multiplers aus und nicht von der algebraischen Darstellung!
c) Was sind die Vorteile der VHDL-Beschreibung gegenüber algebraischer Darstellung bzw.
einem Schaltplan?
Falls Sie noch Fragen haben, wenden Sie sich bitte an Ihre Tutoren oder an Mathias Plichta,
E-Mail: [email protected]
5