3.10 Division 167
Transcription
3.10 Division 167
3.10 Division 167 Steuerung 0 1 Dividend 0 clk_rest init/<<1 n 0 1..n-1 Clk Init/<<1 Rest <<1 0..n-1 n 1 clk_div Rest und Quotient neg n Clk 2n 0 a-b n 0 n Sub b Divisor n immer a n n 0 0 0 0 2n n..2n-1 1 Divisor clk_div = clk_rest = ini/<<1 = mux = 0..n-1 n..2n-1 mux 1 Init n immer 2 Init 3 Schieben 1 1 0 0 clk_div = clk_rest = ini/<<1 = mux = 0 0 1 X clk_div = clk_rest = ini/<<1 = mux = 0 1 0 1 clk_div = clk_rest = ini/<<1 = mux = 0 0 0 1 4 Schieben clk_div = 0 clk_rest = 1 ini/<<1 = 1 mux = X 0 neg == 1 && = _n= runde_n == 0 de n ru 0 == g immer e n 6 5 7 Sub; Rest |= 1 Sub; Rest |= 1 Ende neg == 1 && runde_n == 1 clk_div = clk_rest = ini/<<1 = mux = immer runde_n == 1 clk_div = clk_rest = ini/<<1 = mux = 0 0 X X 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? • Runden: Insgesamt 4 Runden ) ld(4) = 2 Bits notwendig ) Q3 und Q4. • Zustand: 7 Zustande ) dld(4)e = 3 Bits notwendig ) Q0, Q1 und Q2. Prinzipiell trägt die Information über die bisher durchgeführten Runden auch zum aktuellen Zustand bei. Im Rahmen dieser Aufgabe ist die Information über die aktuelle Runde jedoch aus der Information über den aktuellen Zustand ausgegliedert und wird separat als ‘‘Rundenzähler’’ geführt. 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 T XXXX 00 0000 11 1100 22 001X 33 011X 4 0001 5 0101 6 00XX 7 4 Bit 3: clk_div Bit 2: clk_rest Bit 1: init/<<1 Bit 0: mux b) Geben Sie die Folgezustände für alle unbedingten Verzweigungen an. Zustand 3 (1) 00 2 11 3 22 4 33 4 6 5 6 7 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 3 0 7 1 3 Folgezustand von Zustand 6 d) Geben Sie eine Schaltung zur Bestimmung des Folgezustands von Zustands 6 an, die ohne Multiplexer auskommt. 1 runde_n 3 1 3 Folgezustand von Zustand 6 1 T e) 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 2 0 1 2 5 3 5 runde_n 1 7 0 3 3 3 1 2 3 3 3 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 3 0 1 2 Aktuelle Runde 1 1 1 0 1 2 2 Add 2 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 0 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. Der Speicher verfügt über 26 = 64 Datenworte zu je 9 Bit. 3.10 Division T b) Geben Sie den ROM-Inhalt an, der zur Implementierung der Zustände 1 und 2 benötigt wird. Zust. 1 Zust. 2 T 173 c) neg Runde Zustand Ausgang Folgerunde Folgezust. 0 00 001 0000 00 010 1 00 001 0000 00 010 0 00 010 0110 00 011 1 00 010 0110 00 011 Geben Sie den ROM-Inhalt an, der zur Implementierung des Zustands 3 benötigt wird. Zust. 3 neg Runde Zustand Ausgang Folgerunde Folgezust. 0 00 011 X001 01 100 0 01 011 X001 10 100 0 10 011 X001 11 100 0 11 011 X001 00 100 1 00 011 X001 01 100 1 01 011 X001 10 100 1 10 011 X001 11 100 1 11 011 X001 00 100 174 T 3 Arithmetische Schaltungen d) Geben Sie den ROM-Inhalt an, der zur Implementierung des Zustands 4 benötigt wird. Zust. 4 neg Runde Zustand Ausgang Folgerunde Folgezust. 0 00 100 X011 01 101 0 01 100 X011 10 101 0 10 100 X011 11 101 0 11 100 X011 00 101 1 00 100 X011 01 011 1 01 100 X011 10 011 1 10 100 X011 11 011 1 11 100 X011 00 111