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
© Copyright 2024 ExpyDoc