184 3 Arithmetische Schaltungen
Die Steuerung der Dividierer-Schaltung wird nun für die Wortbreite n = 4 wie folgt
implementiert:
Kombinatorische Logik
D0 C
lk
D2
Q0
Q2
D3
D4
Q3
Q4
2
2
clk_div clk_rest init/<<1 mux
neg
2
3
3
3
T c) In welchen Bits des Zustandsregisters wird der aktuelle Zustand und die Anzahl
der bisher durchgeführten Runden abgespeichert?
7 aistande Teogitl =3 Bits
↳ akeueeeer custard Qo ..
.. Qz
wegenn=4 → 4 Runden :
Tlogz47=2BEs↳ aktuelle Runde Q3,Q4
3.10 Division 185
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.
0
1
2
3
0
1
2
3
4
5
6
7
Zustand3
4Bit 3: clk_divBit 2: clk_restBit 1: init/<<1Bit 0: mux
T b) Geben Sie die Folgezustände für alle unbedingten Verzweigungen an.
0
1
2
3
0
1
2
3
4
5
6
7
Zustand3
3Folgezustand
( 0000 )
XXXX0000
1100
001 X
011 X
0001
0101
Ooxx
1 001
2 010.
3 011
4 100
6 110
7- 111
186 3 Arithmetische Schaltungen
T c) Geben Sie eine Multiplexer-Schaltung an, die mittels des Signals runde_n die
Folgezustände des Zustands 6 an ihrem Ausgang bereitstellt.
1runde_n
3 Folgezustand von Zustand 6
T d) Geben Sie eine Schaltung zur Bestimmung des Folgezustands von Zustands 6 an,
die ohne Multiplexer auskommt.
1runde_n
3 Folgezustand von Zustand 6
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.
1runde_n
1neg
3 Folgezustand von Zustand 4
runde -
n=O : Hestand 3 ± on
runde - n = 1 : Hestand 7 ± 111
:Qu
⇒ #
÷to:*
neg =O ⇒ custard 5
rundereon neg= 1 ⇒ custard 3
runde. n=n ^ neg
= n⇒ aestand 7
3.10 Division 187
T f) 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.
3
2
2
AktuellerZustand
AktuelleRunde
NächsteRunde
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.
2AktuelleRunde
1runde_n
3 ± 01 1
¥÷rE÷~ :. -
v.}
=D -gear
auch
- ⇒ -
man
; ¥ Yin E÷au÷
188 3 Arithmetische Schaltungen
Implementierung des Zustandsautomaten mit Speicherbausteinen
Im Folgenden wird anstelle der kombinatorischen Logik ein ROM-Speicher verwendet.
D0 C
lk
D1
Q0
Q1
Multiplexer Clk_Divisor Clk_Rest Init/<<1
neg
ROM-Speicher
Adress- Eingang
Datenaus- ausgang
D2
Q2
D3
Q3
D4
Q4 0 1 2 3 4 5
0 1 2 3 4 5 6 7 8
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.
j
3.10 Division 189
T b) Geben Sie den ROM-Inhalt an, der zur Implementierung der Zustände 1 und 2
benötigt wird.
Folgerunde Folgezust.
Zust. 1
neg Ausgang
Zust. 2
Runde Zustand
T c) Geben Sie den ROM-Inhalt an, der zur Implementierung des Zustands 3 benötigt
wird.
Runde Ausgang
Zust. 3
Folgerunde Folgezust.Zustandneg
|
Runde ^ 012
103
in
4 00
0 00 001 0000 00 010
^ 00 001000000 010
0 00 0100110 00 011
n 00 0^001^0 00 011
-Adresseingang daeenausgang
0 00
011×001
01 1001 00
011×00101 100
O On
0^1×00110 100
n On
0^1×0011.0 100
0 10
0^1×00111 ROC
1 100^1×00111 100
g ny011×00100 100
g yy0^1×00100 ROO
qincustard 3
wirdrunae
erhoht
190 3 Arithmetische Schaltungen
T d) Geben Sie den ROM-Inhalt an, der zur Implementierung des Zustands 4 benötigt
wird.
Runde Ausgang
Zust. 4
Folgerunde Folgezust.Zustandneg
heg-- 1 n runae . n=1
On 00 100 XOM 00 10100
100×01100 111
0 01
100×01101 101
1 01100×01101 011
0 10100×01110 101
10 011 .
1 10100×0110 11
100×0^111 101
1 ^^
100×01111 0^1
⇐gang aaeenausgangrunde
. n=Orneg=1Runde 1 01
2 no }runae-n=o3^1400in
4.2 Universalrechner: Schaltung unabhängig vom Problem 193
Auswahl der Rechenoperation
Die Auswahl der Rechenoperation (Addition, Subtraktion, ...) erfolgt durch Auswahl des
entsprechenden Ergebnisses mittels M2. Hat z.B. M2 den Wert 1 und M1 den Wert 3,
dann wird das von Addierer A2 berechnete Ergebnis an die Eingänge aller Register R0,
R1, ... R7 gleichzeitig angelegt.
Abspeichern des Ergebnisses, Register als Ziel-Operand
In welches Register das Additions-Ergebnis übernommen werden soll, wird durch den
Demultiplexer D festelegt. Hat z.B. D den Wert 4, so wird der invertierte Takt clk an den
Takteingang von Register R4 angelegt – und Register R4 übernimmt das Ergebnis. Alle
anderen Register werden nicht getaktet und behalten somit ihren ursprünglichen Wert.
SUBb
aa-b
MUL
ADD
DIVb
aa/b
0123
76543
0123
1234
210
0123
76543210
0123
0123
D11
3
D6D5 3
D3D2 3
A7
A0
…
D1D0 2
M1
M4
M3
M2
a
b
c
Add1 0
1
clk
reset
0123
76543210
D13D12
R7
R6
R5
R4
R3
R2
R1
R0
3
0
M1
M2
M3
M4
D10
BZ
pX
5
M3A2
A1
M4
M2
M1
M0
D4
D7D8
D10D9
D23
D14
D
R K…
0
MSB…
10 10
n-10
n
:§ .i. I→
on
Top Related