3.10 Division 167 Steuerung 0 1 Dividend 0 clk_rest init/<<1 n 0 n 1..n-1 Clk Init/<<1 Rest <<1 0..n-1 1 0..n-1 2n n..2n-1 n..2n-1 mux clk_div n neg n Clk 2n 0 1 a-b Rest und Quotient n 0 n Sub Divisor n b Divisor n a n 1 Init 2 Init 3 Schieben clk_div = clk_rest = ini/<<1 = mux = clk_div = clk_rest = ini/<<1 = mux = clk_div = clk_rest = ini/<<1 = mux = 6 Sub; Rest |= 1 5 Sub; Rest |= 1 clk_div = clk_rest = ini/<<1 = mux = clk_div = clk_rest = ini/<<1 = mux = 4 Schieben clk_div = clk_rest = ini/<<1 = mux = 7 Ende clk_div = clk_rest = ini/<<1 = mux = 168 3 Arithmetische Schaltungen Die Steuerung der Dividierer-Schaltung wird nun für die Wortbreite n = 4 wie folgt implementiert: clk_div clk_rest Kombinatorische Logik init/<<1 mux 3 2 D0 Q2 Q0 2 Clk D2 Q3 Q4 2 D3 D4 3 3 neg T c) In welchen Bits des Zustandsregisters wird der aktuelle Zustand und die Anzahl der bisher durchgeführten Runden abgespeichert? 3.10 Division 169 Implementierung des Zustandsautomaten mit Multiplexern T a) Geben Sie für die Eingänge des Multiplexers binär die Ausgangsworte an, mit denen sich die Ausgangsfunktion des Moore-Automaten ergibt. Zustand 3 00 11 22 33 4 4 Bit 3: clk_div Bit 2: clk_rest Bit 1: init/<<1 Bit 0: mux 5 6 7 T b) Geben Sie die Folgezustände für alle unbedingten Verzweigungen an. Zustand 3 00 11 22 33 4 5 6 7 3 Folgezustand 170 T c) 3 Arithmetische Schaltungen Geben Sie eine Multiplexer-Schaltung an, die mittels des Signals runde_n die Folgezustände des Zustands 6 an ihrem Ausgang bereitstellt. 1 runde_n T Folgezustand von Zustand 6 d) Geben Sie eine Schaltung zur Bestimmung des Folgezustands von Zustands 6 an, die ohne Multiplexer auskommt. 1 runde_n T 3 e) 3 Folgezustand von Zustand 6 Geben Sie eine Multiplexer-Schaltung an, die mittels der Signale runde_n und neg den Folgezustand des Zustands 4 an ihrem Ausgang bereitstellt. neg 1 3 runde_n 1 Folgezustand von Zustand 4 3.10 Division T f) 171 Geben Sie eine kombinatorische Schaltung für den Rundenzähler an, der jedesmal, wenn sich der Moore-Automat im Zustand 3 befindet, die in Bits 3 und 4 des Zustandsworts gespeicherte Rundenanzahl um Eins erhöht. Aktueller Zustand 3 2 Aktuelle Runde Nächste Runde 2 Der Rundenzähler zählt wie folgt: Runde 1 , 012 , Runde 1 , 102 , Runde 3 , 112 und Runde 4 , 002 . T g) Tragen Sie in nachfolgende Abbildung eine kombinatorische Schaltung ein, die in der 4. Runde, aus dem Rundenzähler das Signal runde_n erzeugt. Aktuelle Runde 2 1 runde_n 172 3 Arithmetische Schaltungen Implementierung des Zustandsautomaten mit Speicherbausteinen Im Folgenden wird anstelle der kombinatorischen Logik ein ROM-Speicher verwendet. Multiplexer Clk_Divisor Clk_Rest Init/<<1 Datenausausgang Q0 Clk D0 5 4 3 2 1 0 Q1 Q2 Q3 Q4 ROM-Speicher D1 D2 D3 D4 8 7 6 5 4 3 2 1 0 AdressEingang neg Der ROM-Speicher funktioniert wie folgt: Die Bitkombination, die am Adress-Eingang anliegt, wird als Adresse interpretiert. Am Datenausgang wird dann das Datenwort ausgegeben, das an der durch den Adress-Eingang spezifizierte Adresse liegt. Die sog. Speicherorganisation beschreibt den Speicheraufbau: • Wie breit (in Bit) sind die Datenworte? • Wieviele Datenworte können abgespeichert werden? T a) Geben Sie die Organisation des gezeigten ROM-Speichers an. 3.10 Division T 173 b) Geben Sie den ROM-Inhalt an, der zur Implementierung der Zustände 1 und 2 benötigt wird. neg Runde Zustand Ausgang Folgerunde Folgezust. Zust. 1 Zust. 2 T c) Geben Sie den ROM-Inhalt an, der zur Implementierung des Zustands 3 benötigt wird. neg Zust. 3 Runde Zustand Ausgang Folgerunde Folgezust. 174 T 3 Arithmetische Schaltungen d) Geben Sie den ROM-Inhalt an, der zur Implementierung des Zustands 4 benötigt wird. neg Zust. 4 Runde Zustand Ausgang Folgerunde Folgezust.
© Copyright 2024